1How is it built?
On CesiumJS — real Esri terrain and satellite imagery, with your data reprojected from your survey grid so collars, claim corners and a magnetics grid all land in the same place.
- A chapter walkthrough. Each chapter frames one idea with the camera on rails. The last one unlocks it, so a reader can go looking.
- The viewer is a static page — no login, and it keeps working offline once loaded.
- The console is where you upload data, edit decks, issue links and see engagement.
- Devices without 3D still see it. Every chapter is pre-rendered, so a laptop that can't run WebGL gets a slide deck, not an error page.
0 t @ 0 g/t.
An absence of a measurement is not a measurement of zero.
2What data do you need?
Whatever you already have. Nothing here is required — we build from the slots you can fill, and standard database exports are fine.
| Layer | Formats | Columns / notes |
|---|---|---|
| Drill holes | .csv .txt .tsv |
collars — hole_id, easting, northing, elevation, total_depth_m, azimuth, dip surveys — hole_id, depth_m, azimuth, dip assays — hole_id, from_m, to_m, length_m, au_gpt |
| Geochemistry | .csv .txt .tsv | east, north + one element column (e.g. au_ppb). Soil, till, stream sediment or rock chip. Below-detection values such as "<5" are handled explicitly. |
| Geophysics | .tif .asc .png .jpg + .tfw |
Magnetics, radiometrics, gravity. A GeoTIFF or ASCII grid places itself; an image needs its world file beside it. Product type read from the filename — TMI, RTP, 1VD, analytic signal. |
| Property & claims | .geojson .kml | Tenure polygons in your grid or WGS84. In BC we can pull these live from the Mineral Titles register instead, including your neighbours. |
| Topography | .tif .asc .obj .ts .dxf | Your own ground at your own resolution. Global terrain is ~30 m and smoothed; flown LiDAR is the difference between a generic hillside and yours. |
| Surfaces | .obj .dxf .ts .omf | Vein wireframes or grade shells as a triangulated mesh. An OMF project carries every surface in it under its own name. |
| Block model Resource stage | .csv .omf | Only if a resource has been estimated. Skip this entirely for an exploration property. |
A recent client's data room for a BC exploration property, sent exactly as it stood:
- Drill holes
- 45 drilled · 13,056 m
- Assay intervals
- 5,234
- Soil samples
- 4,503
- Rock samples
- 1,023
- Magnetics
- TMI · RTP · CVG
- Induced polarisation
- CHG + RES slices
- Mineral tenure
- 11 claims
- Resulting deck
- 12 chapters
3How long does it take to build?
About a week from a complete data room to a deck you can present, and faster without a block model. The biggest variable is whether your coordinate system is declared — guessing at it puts the property in the wrong valley.
4Will we have edit access?
Yes. Your own workspace, with owner, admin and member roles you manage yourself. One company can't read another's projects or figures — enforced at the database, not in the app.
What you can change
- The camera on any slide. Fly the view by hand, press Lock, and the deck flies exactly there from then on.
- The words — eyebrow, title and body on every chapter.
- Chapter order, and which zones a deck spans.
- New data. Upload a new drill programme or an updated grid without coming back to us.
- Who can open it. Passcode, expiry, embedding on or off, and revoke any link immediately.
5Where is it hosted?
We host it — the viewer on Vercel's CDN, your data in Supabase with a private storage bucket. Nothing for your IT group to run, patch or back up.
- Files stay private. Opening a share link checks the token first, then hands back short-lived signed URLs. A revoked link answers exactly like one that never existed.
- Your own domain —
geology.yourcompany.comis a DNS record and a certificate. Worth doing before a deck goes in a news release. - Analytics without tracking. No cookies, no IP addresses, no cross-site identifiers, and nothing at all from a browser that sends Do Not Track or Global Privacy Control. You see which chapters held attention and for how long. The privacy policy lists every field.
6How do we get it on our website?
The console generates it for you. Every deck has an Embed button that hands you the right thing for your platform — they don't all take the same one.
Paste into a Custom HTML block, an Elementor HTML widget, or a Squarespace code block. If it vanishes when you save, your host is stripping HTML — use the URL with an Embed block instead.
These take a link, not markup. Wix: Embed → Embed a Site. Notion: paste and choose Embed. Confluence: the iframe macro.
Live on the slide via the Web Viewer add-in, which needs a connection at the moment you present. Or export to PPTX — one slide per chapter, each linking back to the live deck. That is the version that survives a room with no wifi.
Google Slides cannot embed live web content — no iframe, no add-in, nothing that changes it. Import the PPTX instead and every slide keeps its link back to the 3D. If you need the model moving inside Slides, record a flythrough and insert it as video.