Skip to content

Latest commit

 

History

91 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

geoBIM.app

BIM x GIS = Geospatial Intelligence

Live Demo

License: BSL 1.1 CesiumJS 1.141


What is geoBIM.app?

geoBIM.app is a web-native application for streaming massive 3D BIM and geospatial data directly in the browser, powered by CesiumJS and OGC 3D Tiles. It places your BIM models in their real geographic context — embedded in terrain, imagery, and existing urban structures rather than viewed in isolation.

geoBIM.app streams all formats supported by CesiumJS. IFC and Revit files can be converted to 3D Tiles via the Cesium Ion design tiler. It targets architects, engineers, contractors, authorities, operators, and project managers — all stakeholders involved in the lifecycle of a built asset.


Features

  • Asset Management — Load and manage 3D Tiles from Cesium Ion and Bentley iTwin
  • Layer Management — Switch basemaps, terrain providers, Google 3D Tiles, OSM Buildings
  • IFC & Revit Filtering — Show/hide by entity class or category with color-coded visualization
  • Measurements — Distance, area, height, vertical distance, and coordinate tools with Firestore persistence
  • Clipping — Polygon, rectangle, and per-asset axis-aligned section planes
  • Construction Sequencing — 4D BIM stage animation via IFC properties
  • Annotations — Point and area comments with Firestore persistence
  • SensorThings API — Live bridge monitoring via FROST-Server with MQTT, sparkline charts, and damage event detection
  • IoT Live Module — Real-time water level monitoring via Pegelonline with threshold alerts
  • Geoid Module — EGM96 undulation lookup for orthometric height display in coordinate picker
  • NRW LoD2 Buildings — Open Data 3D building models (Geobasis NRW) as toggleable layer
  • Walk Mode — First-person navigation with WASD, mouse or Xbox controller, wall collision against 3D Tiles
  • Third-Person Mode — Animated character with Unreal Engine-style controls, Player Start on any surface
  • WEA Shadow Analysis — Wind turbine shadow flicker simulation with parametric turbines
  • Lighting — Dynamic sun/shadows, IBL (spherical harmonics), HBAO ambient occlusion, time-of-day control
  • Point Clouds — Eye Dome Lighting, color modes (RGB, height, classification), rendering presets
  • 3D Gaussian Splatting — Photorealistic splat reconstructions as native Cesium 3D Tiles (KHR_gaussian_splatting), self-hosted or via Ion, with an interactive move/scale/rotate gizmo (gizmo applies to self-hosted splats only; Ion-loaded splats carry their georeference in the tile content — reposition those via the normal asset pipeline)
  • Saved Views — Capture and restore camera positions with scene state
  • Split-Screen — Side-by-side comparison mode
  • Asset Placement — Move & rotate any 3D Tiles asset (IFC/Revit/iTwin/CityGML/local) or GLB model in place via an Ion-style gizmo (colored axis arrows + heading ring). Toggle Transform mode with the toolbar button or X; height stays in sync with the Z-Offset slider (live only, like the GLB gizmo)
  • Z-Offset — Vertical repositioning of assets (-70m to +70m), shared with the placement gizmo's height handle
  • Performance Presets — 4 levels from Performance to Ultra with tileset-level tuning
  • Cesium Ion Connect — Link your own Cesium Ion account via OAuth2, load your private assets
  • Post-Processing Effects — Bloom, lens flare, vignette, color grading with Cinematic preset
  • Demo Mode — 30-minute full access at geobim.app/demo, no login required

For a complete feature reference see FEATURES.md.


Prerequisites

A Cesium Ion account is required. The Community plan (free) includes:

  • 5 GB asset storage
  • 15 GB streaming per month
  • 1,000 Google Photorealistic 3D Tiles sessions per month

The free plan covers personal projects and exploratory commercial evaluation. A paid plan is required if your organization exceeds $50K annual revenue or raised funds, works on government projects, or exceeds usage limits. See Cesium Ion Pricing for details.


Getting Started

  1. Clone the repository:

    git clone https://github.com/geobim-app/geobim.git
    cd geobim
  2. Create your configuration file:

    cp config.example.js config.js

    Edit config.js and fill in your Firebase credentials. The Cesium Ion token is entered at runtime in the app.

  3. Serve locally:

    npx serve .

    Or open index.html directly in a browser.


Architecture

Technology Stack

Layer Technology
3D Rendering CesiumJS 1.141
Code Style Vanilla JavaScript, IIFE modules
BIM Conversion Cesium Ion (IFC / Revit → 3D Tiles)
Backend / Auth Firebase (Firestore, Email/Password Auth)
Hosting Static (no build step)

Modules

Module Description
core.js Viewer initialization, asset loading, performance presets, Google/OSM, globe controls
features.js IFC/Revit filtering, element selection, property display, saved views
hideFeatures.js Click-to-hide individual BIM elements
comments.js Point and area annotations with Firestore persistence
measurement.js Distance, area, height, vertical distance, coordinate tools
clipping.js Polygon and rectangle clipping masks
pointcloud.js Point cloud detection, Eye Dome Lighting, color modes
z-offset.js Per-asset vertical offset system
layerManager.js Basemap switching and terrain provider management
lighting.js Dynamic sun/shadows, atmosphere, time-based positioning
ibl.js Image-based lighting via spherical harmonics and KTX2 cubemaps
ui.js Collapsible sidebar toolbar with 12 sections
ui-helpers-modern.js List rendering helpers for UI components
measurement-store.js Measurement persistence in Firestore
clipping-planes.js Per-asset axis-aligned clipping planes (X/Y/Z)
sequencing.js Construction sequencing (4D BIM) — stage animation
sensorthings.js OGC SensorThings API module — live bridge monitoring with MQTT and damage detection
iot.js Pegelonline IoT live module — water level and temperature markers
geoid.js EGM96 geoid undulation lookup for coordinate picker
auth.js Demo mode authentication and Ion token management
config.js Firebase credentials (gitignored)

Data Sources & References

The bridge monitoring module (sensorthings.js) simulates a structural health monitoring (SHM) scenario based on real sensor typologies used in civil engineering practice.

Sensor Types

Sensor Observed Property Threshold
Accelerometer (MEMS) Vertical Acceleration (g) |a| > 0.08 g
Inclinometer (biaxial) Inclination Angle (deg) |angle| > 0.25 deg
Thermocouple (Type K) Temperature (°C)
Strain Gauge (foil) Strain (microstrain) < -65 µε

OGC SensorThings API

Live sensor data is served via FROST-Server (Fraunhofer IOSB), an open-source implementation of the OGC SensorThings API Part 1: Sensing (v1.1). Data is consumed via REST and MQTT over WebSocket.

Academic Reference

The SHM scenario draws on sensor configurations described in:

Retze, U. Beispielhafte Untersuchung zum Einsatz von Monitoringmethoden an einer Brücke. Dissertation, Universität der Bundeswehr München, Institut für Konstruktiven Ingenieurbau. athene-forschung

3D Model

The bridge Reality Mesh was generated from UAV photogrammetry by the Geomatics Research Group at KU Leuven:

INSPIRE & API4INSPIRE

The SensorThings API is one of the download services recommended by the INSPIRE Maintenance and Implementation Group for environmental monitoring data (INSPIRE theme EF — Environmental Monitoring Facilities). The API4INSPIRE project provides guidance on deploying STA as an INSPIRE-compliant download service.


License

Licensed under the Business Source License 1.1. Non-commercial use, research, and education permitted. Commercial use requires written permission — info@geobim.app. Converts to MIT on 2030-03-01.


Consulting

geoBIM.app is developed and maintained by Christof Lorenz.

For T&M consulting on geospatial BIM integration, digital twins, or CesiumJS-based applications, reach out via geobim.app, LinkedIn, or email at info@geobim.app.

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages