Babylon.js icon indicating copy to clipboard operation
Babylon.js copied to clipboard

Geospatial Features (Large World Rendering, Geospatial Camera, 3D Tile Loader)

Open georginahalpern opened this issue 2 months ago • 0 comments

This issue tracks progress on 9.0 features related to geospatial support in Babylon.js

This includes

  • Large world rendering (internally offsetting world to be camera-centric to avoid jittering caused by floating point imprecision with large coordinates)
  • Geospatial camera (designed to orbit a globe in 3D)
  • Base 3D Tile Loader (supporting explicit tileset.jsons holding gltf data)

Large World Rendering (floating origin)

  • [x] Basic offset support
  • [x] Instances
  • [x] Shadow Generator/Cascader
  • [x] WebGPU
  • [x] Particle
  • [x] Water/Sky materials
  • [x] Node material blocks
  • [x] Sprites
  • [x] Reflection Probes
  • [x] Utility Layer
  • [x] Multi-Scene
  • [ ] Physics / Havok support
  • [ ] Documentation

Geospatial Camera

  • [x] Basic camera implementation
  • [x] Pan/Drag
  • [x] Rotate (yaw/pitch)
  • [x] Wheel zoom to cursor / center
  • [x] API changes to support setting yaw/pitch/radius/center directly
  • [x] Double tap zoom to cursor
  • [x] Limits / Speed / Inertia
  • [x] Touch input (multi-finger pan / zoom)
  • [x] Keyboard input (pan/rotate/zoom)
  • [x] FlyTo (animation/interpolation) - linear and arced
  • [ ] Collision Detection
  • [x] Pole-specific clamping
  • [ ] Documentation
  • [ ] ------ Below are nice to haves -----
  • [ ] Support multi-planet systems (globe not centered at origin)
  • [ ] Support additional movement patterns (ex: straight-line movement via vector, zoom by fov, zoom by scaling target)
  • [ ] Separate checkInputs to not be nested
  • [ ] ZoomLevel API (complementary to radius)
  • [ ] Reconciling base camera improvement ideas, genericized inputs ( see https://forum.babylonjs.com/t/geospatialcamera-and-genericized-camera-inputs/61291/5)

3D Tile Loader

  • [ ] Explicit tileset.json url parser/validator
  • [ ] Math.geo converters between wgs84 and ECEF coordinate systems
  • [ ] TileRenderer (takes tileset.json and uses gltf loader to load meshes based on what is in camera view)
  • [ ] Documentation
  • [ ] ------ Below are nice to haves -----
  • [ ] Extension mechanism to load other tilesets, ex: implicit tileset

georginahalpern avatar Nov 14 '25 15:11 georginahalpern