mago3D is a web-based GeoBIM platform that allows for visualization of massive 3D objects like BIM models directly in web browsers. It integrates BIM and 3D GIS data in a single space through key algorithms that reduce data size and optimize rendering speed. These include a model-reference system, level-of-detail mesh generation, and culling techniques using visibility and spatial indexes. The open source platform supports standard formats and provides APIs for developing applications involving tasks like 3D navigation, attribute viewing, and issue monitoring.
6. 6
Introduction – mago3D
mago3D is a platform for …
Visualizing massive and complex 3D objects including BIM
on a web browser
1
Seamless integration of BIM/AEC and 3D GIS in a single space2
Web based collaborative issue/process management4
‘Digital Twin’ that can create parallel worlds in a virtual reality
with numerous IoT, sensor data
3
= GIS + BIM + Open Source
7. 7
Introduction – Architecture of mago3D
mago3D.JS
Cesium/WWW
Client
internet
Web Server WAS
F4DStorage
mago
Content
Management
DataBase
F4D Converter
2 main cores of mago3D
8. 8
Introduction – Overall System Components
DB Postgresql 9.6 + PostGIS
Web Server Nginx 1.12.1 / Apache 2.4
Language Java8
Framework Spring(Springboot) + Mybatis
Build
Gradle
Log
Logback/Log4j
2
Security
ESAPI
Report
Jasper/POI
View
JSP/JSTL
UI/UX
Jquery
Chart
Jqplot/Axisj
Template
Thymeleaf
Handlebars
Web Map Server GeoServer
OS Centos 7.2
3D Viewer Cesium, WorldWind
Cache EhCache, Redis
Container Docker
WAS Tomcat 8.5
9. 9
Introduction – Core parts of mago3D
F4D Converter mago3D.js
mago3D.js
3D GIS Engines
Cesium
Web World Wind
API
API
service html
F4D Converter converts 3D formats(IFC, 3DS, OBJ, DAE, JT)
to 3D internet service format F4D. It carries out data size
reducing and pre-processing for fast rendering
A plug-in composed of pure javascript which enables 3D GIS
engines to handle large-sized and highly detailed AEC data
F4D Converter
F4D
.ifc
.3ds
.obj
.dae
10. Key Algorithms
GeoBIM is too heavy due to so many vertices and triangles in so many objects.
This causes two major issues in handling GeoBIM in web browsers.
!
Network Traffic Rendering Speed
11. Key Algorithms
So we introduced 2 concepts to solve these issues.
reducing size preprocessing
for speed
building rougher LOD
making indices
used in culling
removing duplication
12. Key Algorithms
step what is this? used for
Model/Reference
A concept of writing 3D data that only one
geometry among multiple geometries
congruent with each other is written.
reducing data size of semantic
data(ex. BIM/CAD, 3D data by
modeling)
NSM(Net Surface Mesh)
This is composed of 2 steps.
1. building meshes with regularly gridded
vertices on surfaces of raw 3D model.
2. triangle reduction.
making rougher LOD
※ 2nd step is separately applied in
simplifying targets in case of
triangular meshes such like TIN or
random-shaped 3D data
Visibility/Spatial index
Visibility index is for occlusion culling and
spatial index is for frustum culling in indoor
camera working.
carrying out a serial combination
of 2 cullings for fast determination
of targets to be shown
Let’s look into more concretely.
13. Key Algorithms : F4D, lightweight service format
Model is 3D geometry info, while Reference is real instance of this model
10
14. with 4 geometric meshes - 4 models 23 objects are created. - 23 references
Image source : www.vecteezy.com
Key Algorithms : F4D, lightweight service format
Example of Model-Reference
11
15. 12
1. Build a triangular mesh based on the grid structure from the original three-dimensional data.
Key Algorithms : F4D, lightweight service format
16. 12
1. Build a triangular mesh based on the grid structure from the original three-dimensional data.
Key Algorithms : F4D, lightweight service format
17. 13
2. Triangle reduction (edge collapse)
Inner edge collapse frontier edge collapse
Key Algorithms : F4D, lightweight service format
20. These are made from original data by adjusting details.
15
LOD 0
(Original data)
LOD 2 LOD 3
LOD 4 LOD 5
Key Algorithms : F4D, lightweight service format
21. Key Algorithms : Culling for performance enhancement
Do not render things not necessarily to be shown.
before rotating a camera
around a target
during rotating after rotating
Do not render if not necessary.
16
22. Visibility Index
An index describing which inner objects
can be seen from selected positions in AEC.
This index is used in occlusion culling in
run-time visualization of mago3D.
17
Key Algorithms : F4D, lightweight service format
23. Spatial Index
An index describing which inner objects are
in cubes, spatial sub-divisions of AEC.
This index is used in frustum culling in
run-time visualization of mago3D.
18
Key Algorithms : F4D, lightweight service format
24. 1. When a camera position and
2. the viewing direction of it are setup,
3. mago3D does frustum culling on spatial indices
4. and do occlusion culling on the result of the
frustum culling.
5. Finally mago3d finds targets to be rendered.
(intersection between two indices)
→ It possible to select targets to be rendered
without any complicated geometric operation in
run-time.
How to use both indices
19
Key Algorithms : F4D, lightweight service format
25. 3D Tiles and F4D
※ image source
https://cesium.com/blog/2015/08/10/introducing-3d-tiles/
www.zionfriedheim.org
zoomed in
『3D Tiles』 is an aggregation of various 3D data
invented for better request/response in web service
and applying LOD in rendering.
3D Tiles
F4D is, conceptually, exactly matched to
a component in a 『3D Tiles』 dataset.
26. 3D Tiles and F4D
Why new format was devised instead of 3D Tiles?
- GeoBIM data is too heavy to be handled as a 3D Tiles component in Cesium.
- So more processes are necessary to handle GeoBIM well such like
‘indoor/outdoor separation’, ‘frustum culling with occlusion culling’, and etc.
- This means that we have to expand 3D Tiles to support ‘indoor or microscopic stuff’ and
modify Cesium to support necessary processes.
- But we have no idea about how to insert indoor things into 3D Tiles and
structure of Cesium as a rendering engine is so rigid that we can’t modify it.
So we introduced a new format and made a rendering pipeline for it
separate with Cesium rendering loop.
27. 3D Tiles and F4D
initialization
target
determination
render/request
targets
rendering loop
in Cesium
trigger target determination
indoor checking
look up cache render/request
28. 20
mago3D runs on any device
Accessible from any device, anytime, anywhere
29. Results: BIM(Indoor/Outdoor) Integration
Seamless integration of indoor and outdoor space
on the same platform
Scene from indoor to outdoor through windows Scene from outdoor to indoor through windows
21
32. Results: Various API supported (OpenAPIs)
APIs are supported for developing application
systems(currently 29 APIs) moving/rotating
a full building
moving objects &
viewing attributes registration/monitoring/search of issues
24
37. Summary
Key Features
• BIM/AEC and 3D GIS integration in a single space
• Web based – no need to install additional program
• Massive and complex 3D objects rendering
• Open source – Apache and AGPL license
• Supports industry standard formats(ifc, 3ds, dae, kml, gltf…)
• In-Browser 3D objects moving/rotation/heading adjustment
• Highly extensible architecture
32
38. For more information, please visit http://mago3d.com
All the source codes are here: https://github.com/Gaia3D/mago3d
Thank you!
33
This project is funded by Ministry of Land, Infrastructure and Transport, Korea,
through R&D project(number:18NSIP-B080778-05)
Sanghee Shin shshin@gaia3d.com