https://github.com/Gaia3D/mago-3d-tiler
This is the official repository of mago-3d-tiler.
https://github.com/Gaia3D/mago-3d-tiler
3d-tiles 3dtiles assimp bim citygml4j digital-twin geospatial geotools gis gltf ifc jgltf joml laszip4 laz lwjgl3 mago mago3d opengl proj4j
Last synced: about 2 months ago
JSON representation
This is the official repository of mago-3d-tiler.
- Host: GitHub
- URL: https://github.com/Gaia3D/mago-3d-tiler
- Owner: Gaia3D
- License: mpl-2.0
- Created: 2023-11-30T01:59:44.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-10-25T01:47:11.000Z (8 months ago)
- Last Synced: 2024-10-25T02:46:12.934Z (8 months ago)
- Topics: 3d-tiles, 3dtiles, assimp, bim, citygml4j, digital-twin, geospatial, geotools, gis, gltf, ifc, jgltf, joml, laszip4, laz, lwjgl3, mago, mago3d, opengl, proj4j
- Language: Java
- Homepage: https://seoul.gaia3d.com:10903/
- Size: 332 MB
- Stars: 162
- Watchers: 15
- Forks: 19
- Open Issues: 12
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-3d-tiles - mago 3DTiler - mago 3DTiler converts various spatial data into OGC 3D Tiles. (Tile creation (Community))
README

===## Overview
### The Premier OGC 3D Tiles Solution!
mago 3DTiler is an open source-based OGC 3DTiles generator.
It converts various spatial information data into OGC 3D Tiles, the basis of the Digital Twin service.
Based on Java, mago 3DTiler is highly portable, flexible, and fast.




### Why mago 3DTiler?
mago 3DTiler isn’t just a converter;
developed with Java, this open-source marvel stands as a beacon for flexibility and performance in the world of 3D data conversion.## Key Features
- **Multi-Format Mastery**: Effortlessly convert an array of 3D formats, including ***3DS, OBJ, FBX, Collada DAE, GlTF, GLB , IFC*** and more.
- **Point Cloud Precision**: Bring your detailed point cloud data (***LAS, LAZ***) into the fold with pinpoint accuracy.
- **2D to 3D Extrusion**: Turn 2D geospatial data (***ESRI SHP, GeoJSON***) into detailed 3D extrusion models, breathing life into flat representations.
- **On-The-Fly CRS Conversion**: Leverage the power of multi-threading and on-the-fly coordinate conversion with comprehensive PCS and GCS support via the Proj4 library.## Usage
You can download the released jar file or build the jar yourself via the mago-3d-tiler project gradle script.
The built jar is created in the ```/dist``` directory.```
gradlew jar
```
###### The java version used in the release is openjdk 17.## Example help command
```
java -jar mago-3d-tiler-x.x.x-natives-windows.jar -help
```
console output:
```
┳┳┓┏┓┏┓┏┓ ┏┓┳┓ ┏┳┓┳┓ ┏┓┳┓
┃┃┃┣┫┃┓┃┃ ┫┃┃ ┃ ┃┃ ┣ ┣┫
┛ ┗┛┗┗┛┗┛ ┗┛┻┛ ┻ ┻┗┛┗┛┛┗
3d-tiler(dev) by Gaia3D, Inc.
----------------------------------------
usage: mago 3DTiler help
-aa,--absoluteAltitude Absolute altitude value for extrusion model
-ac,--altitudeColumn Altitude Column setting for extrusion model ((Default Column: altitude)
-c,--crs Coordinate Reference Systems, EPSG Code(4326, 3857, 32652, 5186...)
-d,--debug More detailed log output and stops on Multi-Thread bugs.
-dc,--diameterColumn Diameter column setting for extrusion model, Specify a length unit for Diameter in millimeters(mm) (Default Column: diameter)
-f4,--force4ByteRGB Force 4Byte RGB for pointscloud tile.
-fc,--flipCoordinate Flip x, y coordinate for 2D Original Data. (Default: false)
-glb,--glb Create glb file with B3DM.
-h,--help Print Gelp
-hc,--heightColumn Height column setting for extrusion model ((Default Column: height)
-hd,--headingColumn Heading column setting for I3DM converting (Default Column: heading)
-i,--input Input directory path
-if,--instance Instance file path for I3DM (Default: {OUTPUT}/instance.dae)
-igtx,--ignoreTextures Ignore diffuse textures.
-it,--inputType Input files type (kml, 3ds, fbx, obj, gltf, glb, las, laz, citygml, indoorgml, shp, geojson)(Default: kml)
-l,--log Output log file path.
-lm,--largeMesh [Experimental] Large Mesh Splitting Mode (Default: false)
-mc,--multiThreadCount set Multi-Thread count
-mg,--maxGeometricError Maximum geometric error (Default: Integer max value)
-mh,--minimumHeight Minimum height value for extrusion model (Default: 1.0)
-mp,--maxPoints Maximum number of points per a tile (Default: 100000)
-mx,--maxCount Maximum number of triangles per node.
-nc,--nameColumn Name column setting for extrusion model (Default Column: name)
-ng,--minGeometricError Minimum geometric error (Default: 16.0)
-nl,--minLod min level of detail (Default: 0)
-o,--output Output directory file path
-ot,--outputType Output 3DTiles Type (b3dm, i3dm, pnts)(Default : b3dm)
-p,--proj Proj4 parameters (ex: +proj=tmerc +la...)
-pcr,--pointRatio Percentage of points from original data (Default: 50)
-pr,--photorealistic [Experimental] Photorealistic mode for b3dm (Default: false)
-q,--quiet Quiet mode/Silent mode
-r,--recursive Tree directory deep navigation.
-ra,--refineAdd Set 3D Tiles Refine 'ADD' mode
-ru,--flipUpAxis Rotate the matrix 180 degrees about the X-axis. (Default: false)
-rx,--rotateXAxis Rotate the X-Axis in degrees (Unit: degrees)(Default: 0.0)
-sh,--skirtHeight Building Skirt height setting for extrusion model (Default: 4.0)
-sp,--sourcePrecision Create pointscloud tile with original precision. (Slow)
-su,--swapUpAxis Rotate the matrix -90 degrees about the X-axis. (Default: false)
-te,--terrain GeoTiff Terrain file path, 3D Object applied as clampToGround (Supports geotiff format)
-v,--version Print Version Info
-vl,--voxelLod [Experimental] Voxel Level Of Detail setting for i3dm (Default: false)
-xl,--maxLod Max Level of detail (Default: 3)
-xo,--xOffset X Offset value for coordinate transformation
-yo,--yOffset Y Offset value for coordinate transformation
-zo,--zeroOrigin [Experimental] fix 3d root transformed matrix origin to zero point.
```
This is a simple kml/collada -> 3dTiles conversion code with the mandatory argument values.
```
java -jar mago-3d-tiler-x.x.x-natives-windows.jar -input C:\data\kml-input-dir -inputType kml -output C:\data\kml-output-dir
```
or
```
java -jar mago-3d-tiler-x.x.x-natives-windows.jar -i C:\data\kml-input-dir -o C:\data\kml-output-dir
```## Using Docker Versions
Alternatively, you can easily use mago-3d-tiler with docker.#### Installation command:
```
docker pull gaia3d/mago-3d-tiler
```
#### Running command:
```
docker run --rm -v "/workspace:/workspace" gaia3d/mago-3d-tiler -inputType 3ds -input /workspace/3ds-samples -output /workspace/sample-3d-tiles -crs 5186
```## Supported Java versions:
Supports long-term support (LTS) versions of the JDK, including ***JDK17*** and ***JDK21***.## Experience the mago 3DTiler:
## Explore and Experience:
- **Community and Code**: Join our vibrant community on GitHub and contribute to the future of 3D data conversion.
- **Freedom to Innovate**: Embrace the flexibility of MPL2.0 licensing(),
ensuring your freedom to use, modify, and distribute without hindrance.
- **License**: If you prefer not to share your modified or improved code under the MPL2.0 license, you can opt for a commercial license instead.
In this case, please contact us at [email protected]## Library Dependencies:
- **LWJGL3** (Lightweight Java Game Library 3 Opengl, Assimp):
- **JOML** (Java OpenGL Math Library):
- **jgltf** (Java libraries for glTF):
- **laszip4j** (The LASzip library ported to Java):
- **geotools** (Geospatial data tools library):
- **proj4j** (Converting coordinate reference systems):
- **citygml4j** (The Open Source Java API for CityGML):