Let’s Integrate BIM and 3D GIS
on top of FOSS4G!
Sanghee Shin(shshin@gaia3d.com)
Seongdo Son(sdson@gaia3d.com)
Hakjoon Kim(hjkim@gaia3d.com)
Jengdae Cheon(jdcheon@gaia3d.com)
BJ Jang(bjjang@gaia3d.com)
MAGO
Goddess of earth
in Korean old myth
Paradigm Shift
Current Future
Concept Object Information Context Awareness
Data Consumer Prosumer/DIY
User Person Things
Visualization Real World Cyber-Physical Space
Application Base Map Key Factor for Fusion
Driving Entity Public Sector Private Sector
Space Outdoor Indoor + Outdoor +
Update Cycle Static Dynamic
<Source: Sakong, Hosang(2016), ‘Policy Directions of Spatial Information for Hyper-connected Society’ modified>
Bottle Neck! Point
Cloud
Drone
Image IoT
BIM
Live
Data
AEC Self-Driving
Cars
mago3D is a platform for …
Indoor and outdoor space integration on a single web browser1
Management/providing various type of GIS data
including vector, raster, point cloud and AEC/BIM/3D …
2
Web based collaborative issue management4
Processing/visualization of real-time massive data
such as weather/climate, IoT, sensor data …
3
Open source projects
Base Lineup
Base Lineup packaging
Base Lineup
GeoSHAPE GeoGig
?
Open source based mago3D
3D2D
operation & analysis
IoT Interface
Base Lineup
Enhancement
server
service
functionality
Base Lineup 3D Functionality
Overall System Architecture
Overall System Components
And then,
What’s been newly
developed?
2 Main Cores of mago3D…
F4D Format as a service formatC01.
Mago3d.js as a improved rendererC02.
F4D: Why We Devised New Format?
Increase
rendering
speed
Optimize
web
service
Make
service data
lightweight
F4D: Service Format Optimized for Web Service
VS
F4D: Lego Style Service for LOD
Detailed Resolution
Coarse Resolution
F4D: Pre-Processed Occlusion Culling
 Increase rendering speed by not rendering occluded geometry
If we pre-record visible objects, we can identify the rendering objects very quickly.
<Occlusion culling using visibility indices>
Identify the visible objects by carrying out visibility test at every vision cell
F4D: Model-Instance Concept
 Model is 3D geometry info, while Reference is real instance of this model
mago3D.js: Let’s Piggyback!!
Cesium World Wind WebGL
1. A plug-in to any web 3D engines based on WebGL.
2. A set of JavaScript for web developments.
3. NOT an engine, BUT a plug-in.
ismago3D.js
mago3D.js: Components
1. maog3D.js has been designed
and developed as an independent
plug-in to the existing WebGL
Globe.
2. mago3D.js added new
functionalities and enhanced
performance of existing WebGL
Globle.
Mago3D
Cesium/NASA World Wind
WebGL Globe Core
Mago3D Connector
Mago3D.JS
Mago3D Renderer
Shader
Mago3D Accelerator
Performance Enhancer
Mago3D
REST API
request, response
Mago3D
Process
Manager
Mago3D
Data
Container
mago3D.js: Components
1. mago3D Connector that interacts with WebGL Globe such as
Cesium, World Wind.
2. mago3D Renderer that shades and renders 3D data.
3. mago3D Accelerator that enhance performance such as frustum &
occlusion culling, indexing, LOD(Level Of Detail) handing.
4. mago3D Data Container that contains and manages 3D data.
5. mago3D Process Manager that manages whole process from data
receiving to rendering.
6. mago3D REST API that provides API for 3D data sending and
receiving.
mago3D.js: Screen Space Ambient Occlusion
<Before>
<After>
mago3D.js: Screen Space Ambient Occlusion
<Before>
<After>
mago3D.js on Cesium
3D visualization with MAGO3D
on Cesium
mago3D.js on NASA World Wind
3D visualization with mago3D
on NASA World Wind
BIM 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
MEP Integration
Integration of large size MEP
on a web browser
Future Plan – Support New Data Types
meteorological/weather data
real-time data
(IOT, sensor/observation data)
point cloud
 mago3D will be capable of handling more types of data in near future!
Future Plan – Support Data Hierarchy
Node
Geometry
Node
Geometry
Node
Geometry
Node
Geometry
Node
Geometry
Node
Geometry
Node
Geometry
Node
Geometry
Node
Geometry
Node
Geometry
Node
Geometry
Node
Geometry
Node
Geometry
Node
Geometry
Node
Geometry
Node
Geometry
Node
Geometry
Node
Geometry
Node
Geometry
Node
Geometry
Node
Geometry
Node
Geometry
Spatial structure.
Geometry data.
Future Plan – Functionality Enhancements
Type Items
Analysis
Density map, Standard ellipse, Cost surface data, Whisker analysis, Detection
abnormality from IOT data, etc
Operation Raster operation(filtering, smoothing…), Coverage rebuild, etc
Styling Volume rendering, 3D vector/streamline, Cubing, etc
UI Different view controlling at indoor/outdoor space, etc
 mago3D will also leverage existing open source projects
Wrapping-up
• Open source – Apache and AGPL license
• Web based – no need to install additional program
• Supports industry standard formats(ifc, 3ds, dae, kml, gltf…)
• Massive 3D data rendering
• Realtime 3D transformation on web browser
• Highly extensible architecture
• BIM/AEC and 3D GIS integration
Seeing is Believing – Indoor & Outdoor Integration
Live Demonstration – http://www.mago3d.com
Let’s look into it technically
mago3D integrates AEC(Architecture, Engineering, Construction) and 3D GIS
in web browser using Cesium or Web World Wind.
To achieve this goal we created a 3D data format named F4D.
Objectives of F4D are:
1- Reduce size of data for network traffic.
2- Create LOD (Level Of Detail) on service data.
3- Make visibility indices for occlusion culling.
4- Divide and group data into spatial octree.
TODAY
1- How to reduce size of data
1 model & multi-instance
→ During processing, detection for geometrical congruence over raw data is carried out.
→ As result, 1 model and transformation matrices for each instance are built up for each congruence case.
With 4 geometric meshes - 4 models 23 objects are created. - 23 instances
Image source : www.vecteezy.com
2- How to make LOD
We want to make simplified data of
Eiffel Tower.
First, divide the Bounding Box into
enough small cubes for each LOD
Third, merge
collected cubes
as much as possible
Second, collect
cubes which
intersects with
original data
Last, apply newly created textures
on result geometries
Creation of textures for rougher LODs from original textures
taking captures from original texture rendering
rougher LOD meshes with created texture
created texture
Example of mapping original and created textures
3- How to make visibility indices for occlusion culling(OC)
First, enclose the 3d model with
an octree of enough size and depth
※ Size affects to OC range
※ Depth affects to visibility
index data size
360°
Second,
detect IDs of all visible objects
from each leaf octree cell
by rendering with color coding
Example of detection for all visible objects on each leaf octree cell
Example of detection for all visible objects on each leaf octree cell
Assign target meshes into
each spatially divided octree
How we use created visibility indices for occlusion culling??
Perform frustum culling on
spatially divided octree
before occlusion culling
octree for visibility indexing
(for occlusion culling)
octree for spatial division
(for frustum culling)
survived spatial octree
from frustum culling
IDs of survived objects from frustum culling
are obtained .
At last, intersection between
visibility indices and object IDs
makes finally visible objects.
How occlusion culling and frustum culling are performed in mago3d.
For more information, please visit http://www.mago3d.com
Thank you!
Acknowledgement : This project is funded by Ministry of Land, Transport and Maritime Affairs, Korea, through R&D project(number:16NSIP-B080778-04)

mago3D: Let's integrate BIM and 3D GIS on top of FOSS4G

  • 1.
    Let’s Integrate BIMand 3D GIS on top of FOSS4G! Sanghee Shin(shshin@gaia3d.com) Seongdo Son(sdson@gaia3d.com) Hakjoon Kim(hjkim@gaia3d.com) Jengdae Cheon(jdcheon@gaia3d.com) BJ Jang(bjjang@gaia3d.com)
  • 2.
    MAGO Goddess of earth inKorean old myth
  • 3.
    Paradigm Shift Current Future ConceptObject Information Context Awareness Data Consumer Prosumer/DIY User Person Things Visualization Real World Cyber-Physical Space Application Base Map Key Factor for Fusion Driving Entity Public Sector Private Sector Space Outdoor Indoor + Outdoor + Update Cycle Static Dynamic <Source: Sakong, Hosang(2016), ‘Policy Directions of Spatial Information for Hyper-connected Society’ modified>
  • 4.
    Bottle Neck! Point Cloud Drone ImageIoT BIM Live Data AEC Self-Driving Cars
  • 5.
    mago3D is aplatform for … Indoor and outdoor space integration on a single web browser1 Management/providing various type of GIS data including vector, raster, point cloud and AEC/BIM/3D … 2 Web based collaborative issue management4 Processing/visualization of real-time massive data such as weather/climate, IoT, sensor data … 3
  • 6.
    Open source projects BaseLineup Base Lineup packaging Base Lineup GeoSHAPE GeoGig ?
  • 7.
    Open source basedmago3D 3D2D operation & analysis IoT Interface Base Lineup Enhancement server service functionality Base Lineup 3D Functionality
  • 8.
  • 9.
  • 10.
    And then, What’s beennewly developed?
  • 11.
    2 Main Coresof mago3D… F4D Format as a service formatC01. Mago3d.js as a improved rendererC02.
  • 12.
    F4D: Why WeDevised New Format? Increase rendering speed Optimize web service Make service data lightweight
  • 13.
    F4D: Service FormatOptimized for Web Service VS
  • 14.
    F4D: Lego StyleService for LOD Detailed Resolution Coarse Resolution
  • 15.
    F4D: Pre-Processed OcclusionCulling  Increase rendering speed by not rendering occluded geometry If we pre-record visible objects, we can identify the rendering objects very quickly. <Occlusion culling using visibility indices> Identify the visible objects by carrying out visibility test at every vision cell
  • 16.
    F4D: Model-Instance Concept Model is 3D geometry info, while Reference is real instance of this model
  • 17.
    mago3D.js: Let’s Piggyback!! CesiumWorld Wind WebGL 1. A plug-in to any web 3D engines based on WebGL. 2. A set of JavaScript for web developments. 3. NOT an engine, BUT a plug-in. ismago3D.js
  • 18.
    mago3D.js: Components 1. maog3D.jshas been designed and developed as an independent plug-in to the existing WebGL Globe. 2. mago3D.js added new functionalities and enhanced performance of existing WebGL Globle. Mago3D Cesium/NASA World Wind WebGL Globe Core Mago3D Connector Mago3D.JS Mago3D Renderer Shader Mago3D Accelerator Performance Enhancer Mago3D REST API request, response Mago3D Process Manager Mago3D Data Container
  • 19.
    mago3D.js: Components 1. mago3DConnector that interacts with WebGL Globe such as Cesium, World Wind. 2. mago3D Renderer that shades and renders 3D data. 3. mago3D Accelerator that enhance performance such as frustum & occlusion culling, indexing, LOD(Level Of Detail) handing. 4. mago3D Data Container that contains and manages 3D data. 5. mago3D Process Manager that manages whole process from data receiving to rendering. 6. mago3D REST API that provides API for 3D data sending and receiving.
  • 20.
    mago3D.js: Screen SpaceAmbient Occlusion <Before> <After>
  • 21.
    mago3D.js: Screen SpaceAmbient Occlusion <Before> <After>
  • 22.
    mago3D.js on Cesium 3Dvisualization with MAGO3D on Cesium
  • 23.
    mago3D.js on NASAWorld Wind 3D visualization with mago3D on NASA World Wind
  • 24.
    BIM Integration Seamless integrationof indoor and outdoor space on the same platform scene from indoor to outdoor through windows Scene from outdoor to indoor through windows
  • 25.
    MEP Integration Integration oflarge size MEP on a web browser
  • 26.
    Future Plan –Support New Data Types meteorological/weather data real-time data (IOT, sensor/observation data) point cloud  mago3D will be capable of handling more types of data in near future!
  • 27.
    Future Plan –Support Data Hierarchy Node Geometry Node Geometry Node Geometry Node Geometry Node Geometry Node Geometry Node Geometry Node Geometry Node Geometry Node Geometry Node Geometry Node Geometry Node Geometry Node Geometry Node Geometry Node Geometry Node Geometry Node Geometry Node Geometry Node Geometry Node Geometry Node Geometry Spatial structure. Geometry data.
  • 28.
    Future Plan –Functionality Enhancements Type Items Analysis Density map, Standard ellipse, Cost surface data, Whisker analysis, Detection abnormality from IOT data, etc Operation Raster operation(filtering, smoothing…), Coverage rebuild, etc Styling Volume rendering, 3D vector/streamline, Cubing, etc UI Different view controlling at indoor/outdoor space, etc  mago3D will also leverage existing open source projects
  • 29.
    Wrapping-up • Open source– Apache and AGPL license • Web based – no need to install additional program • Supports industry standard formats(ifc, 3ds, dae, kml, gltf…) • Massive 3D data rendering • Realtime 3D transformation on web browser • Highly extensible architecture • BIM/AEC and 3D GIS integration
  • 30.
    Seeing is Believing– Indoor & Outdoor Integration
  • 31.
    Live Demonstration –http://www.mago3d.com
  • 32.
    Let’s look intoit technically
  • 33.
    mago3D integrates AEC(Architecture,Engineering, Construction) and 3D GIS in web browser using Cesium or Web World Wind. To achieve this goal we created a 3D data format named F4D. Objectives of F4D are: 1- Reduce size of data for network traffic. 2- Create LOD (Level Of Detail) on service data. 3- Make visibility indices for occlusion culling. 4- Divide and group data into spatial octree. TODAY
  • 34.
    1- How toreduce size of data 1 model & multi-instance → During processing, detection for geometrical congruence over raw data is carried out. → As result, 1 model and transformation matrices for each instance are built up for each congruence case. With 4 geometric meshes - 4 models 23 objects are created. - 23 instances Image source : www.vecteezy.com
  • 35.
    2- How tomake LOD We want to make simplified data of Eiffel Tower.
  • 36.
    First, divide theBounding Box into enough small cubes for each LOD
  • 37.
    Third, merge collected cubes asmuch as possible Second, collect cubes which intersects with original data
  • 38.
    Last, apply newlycreated textures on result geometries
  • 39.
    Creation of texturesfor rougher LODs from original textures taking captures from original texture rendering rougher LOD meshes with created texture created texture
  • 40.
    Example of mappingoriginal and created textures
  • 41.
    3- How tomake visibility indices for occlusion culling(OC) First, enclose the 3d model with an octree of enough size and depth ※ Size affects to OC range ※ Depth affects to visibility index data size
  • 42.
    360° Second, detect IDs ofall visible objects from each leaf octree cell by rendering with color coding
  • 43.
    Example of detectionfor all visible objects on each leaf octree cell
  • 44.
    Example of detectionfor all visible objects on each leaf octree cell
  • 45.
    Assign target meshesinto each spatially divided octree How we use created visibility indices for occlusion culling??
  • 46.
    Perform frustum cullingon spatially divided octree before occlusion culling octree for visibility indexing (for occlusion culling) octree for spatial division (for frustum culling)
  • 47.
  • 48.
    IDs of survivedobjects from frustum culling are obtained .
  • 49.
    At last, intersectionbetween visibility indices and object IDs makes finally visible objects.
  • 50.
    How occlusion cullingand frustum culling are performed in mago3d.
  • 51.
    For more information,please visit http://www.mago3d.com Thank you! Acknowledgement : This project is funded by Ministry of Land, Transport and Maritime Affairs, Korea, through R&D project(number:16NSIP-B080778-04)