@font-face{font-display:swap;font-family:'Manrope';font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/manrope/v15/xn7_YHE41ni1AdIRqAuZuw1Bx9mbZk79FN_P-bnBeA.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-display:swap;font-family:'Manrope';font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/manrope/v15/xn7_YHE41ni1AdIRqAuZuw1Bx9mbZk79FN_G-bnBeA.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-display:swap;font-family:'Manrope';font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/manrope/v15/xn7_YHE41ni1AdIRqAuZuw1Bx9mbZk79FN_B-bnBeA.woff2) format("woff2");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-display:swap;font-family:'Manrope';font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/manrope/v15/xn7_YHE41ni1AdIRqAuZuw1Bx9mbZk79FN_N-bnBeA.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-display:swap;font-family:'Manrope';font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/manrope/v15/xn7_YHE41ni1AdIRqAuZuw1Bx9mbZk79FN_M-bnBeA.woff2) format("woff2");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-display:swap;font-family:'Manrope';font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/manrope/v15/xn7_YHE41ni1AdIRqAuZuw1Bx9mbZk79FN_C-bk.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-display:swap;font-family:'Manrope';font-style:normal;font-weight:700;src:url(https://fonts.gstatic.com/s/manrope/v15/xn7_YHE41ni1AdIRqAuZuw1Bx9mbZk4aE9_P-bnBeA.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-display:swap;font-family:'Manrope';font-style:normal;font-weight:700;src:url(https://fonts.gstatic.com/s/manrope/v15/xn7_YHE41ni1AdIRqAuZuw1Bx9mbZk4aE9_G-bnBeA.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-display:swap;font-family:'Manrope';font-style:normal;font-weight:700;src:url(https://fonts.gstatic.com/s/manrope/v15/xn7_YHE41ni1AdIRqAuZuw1Bx9mbZk4aE9_B-bnBeA.woff2) format("woff2");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-display:swap;font-family:'Manrope';font-style:normal;font-weight:700;src:url(https://fonts.gstatic.com/s/manrope/v15/xn7_YHE41ni1AdIRqAuZuw1Bx9mbZk4aE9_N-bnBeA.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-display:swap;font-family:'Manrope';font-style:normal;font-weight:700;src:url(https://fonts.gstatic.com/s/manrope/v15/xn7_YHE41ni1AdIRqAuZuw1Bx9mbZk4aE9_M-bnBeA.woff2) format("woff2");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-display:swap;font-family:'Manrope';font-style:normal;font-weight:700;src:url(https://fonts.gstatic.com/s/manrope/v15/xn7_YHE41ni1AdIRqAuZuw1Bx9mbZk4aE9_C-bk.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD} @font-face{font-display:swap;font-family:'Volkhov';font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/volkhov/v17/SlGQmQieoJcKemNecTUEhQ.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
Cave Database – Community maintained database of all things cave and cave diving

Cave Planner file format

The cave planner file format is for use with Bombimi Cave Planner and is used to describe a cave schematic suitable for loading in to the application and calculating dive routes. It uses YAML1 as the file format and this document describes the elements that are supported.

The format is broadly separated into three sections that provide information about the cave it describes and a graph that describes its geometry. The metadata describes information about the cave. Nodes are navigation points normally associated with tags or waypoints and edges connect two nodes. These sections are described below.

Metadata

name: Tank cave
description: Tank Cave, South Australia
home-node: "ac02cd13-ad18-491a-b0f2-be28c86970bf"
release-notes:
    - date: 2024/03/28
      text: Added tag for K7
contributors:
    - Bob Marley
    - Frank Sinatra
PropertyTypeDescription
namestringName of the cave to display to users
descriptionstringExtended information about the cave
home-nodeguidGUID of the node to consider the base for planning. This will be where the map zooms to when the user clicks the home button
release-notesarray(release-note)Array of release notes
contributorsarray(string)Array of contributor names

Release note

PropertyTypeDescription
dateYYYY/MM/DDDate the release note was issued
textstringDescription of change

Nodes

Nodes are either navigation points that the user can select to create their dive route or items of information such as direction markers or text.

nodes:
  - guid: "66dd16fe-5c2f-4a97-90a3-6a3de9e2eb7b"
    id: "n0"
    type: "tag"
    name: "R8"
    depth: 11
    x: 3971.187183527988
    y: 1523.992453214622
PropertyTypeDescription
guidGUIDUnique identifier of the node
idstringUser friendly text ID for the node, must be unique (deprecated)
typeTagType (see below)What type this node is
namestringUser friendly display name for this node
depthfloatDepth of the node in meters
xfloatX coordinate of the node
yfloatY coordinate of the node

TagType

TypeDescription
labelGeneral label to display
tagA name tag within the cave the user can visibly use to assist with navigation
direction_markerA marker physically present in the cave that indicates the nearest exit and distance
waypointA non physically visible marker that it is used to display the direction of the passage

Edges

An edge connects two nodes with 0 or more points along the route.

  - guid: "bacb15f2-1d69-4f44-8d0b-021efc4717d0"
    from: "64b1c89d-b991-426e-8612-0aaeb71d8805"
    to: "95c39511-aa0c-4a96-bc4f-3773117b687b"
    color: "#FF6666"
    type: "line"
    id: "e796"
    waypoints:
      - x: 7284.074913808728
        y: 2856.2121518283266
      - x: 7255.802930063977
        y: 2850.0
      - x: 7230.0
        y: 2863.490088237866
      - x: 7230.0
        y: 2884.2042149419403
PropertyTypeDescription
guidGUIDUnique identifier of the edge
fromGUIDNode this edges runs from
toGUIDNode this edge runs to
colorHTML Hex ARGBColor to render this edge
typeEdge type (see below)What type this edge is
idstringUser friendly text ID for the node, must be unique (deprecated)
waypointsarray(position)Array of points along this edge

EdgeType

TypeDescription
fixedFixed line within cave
jumpNo fixed line but indicates accessible route

Position

TypeDescription
xX coordinate
yY coordinate