OBJ, glTF, and GLB Import
Importing OBJ, glTF, and GLB Data
Introduction
FRI3D supports importing OBJ, glTF, and GLB file formats to enable visualization and integration of lightweight 3D assets such as architectural context models, scanned geometries, or external meshes from modeling tools like Blender, SketchUp, or 3ds Max.
These formats are primarily geometry- and material-centric, intended for rendering and visualization rather than
engineering or BIM semantics.
They contain meshes, materials, textures, and scene hierarchies but generally lack classification or physical metadata
such as fire resistance, materials, or structural roles.
For simulation purposes, FRI3D treats these imports as generic geometry containers, allowing users to manually tag them for fire, space, or structural classification.
⚠️ Important Note:
GLB and glTF import functionality is currently limited in FRI3D. While basic geometry import is supported, advanced features such as animations, complex material properties, and some glTF extensions may not be fully supported. For production workflows requiring rich 3D assets, consider using OBJ format or converting glTF/GLB files to OBJ before import.
Format Overview
| Format | Description | Typical Use | Standard |
|---|---|---|---|
| OBJ (.obj) | Legacy mesh format storing vertices, normals, UVs, and material references (.mtl). | Geometry export from 3D modeling and scanning tools. | Wavefront OBJ (Alias/Wavefront, 1990s) |
| glTF (.gltf) | JSON-based open format for 3D scenes and assets with PBR materials and textures. | Real-time visualization and web integration. | Khronos glTF 2.0 (2017) |
| GLB (.glb) | Binary version of glTF with embedded geometry, textures, and materials. | Compact web/VR streaming. | Khronos glTF 2.0 |
Structure and Entities
| Component | OBJ | glTF / GLB | Description |
|---|---|---|---|
| Geometry | v, vn, vt, f | Mesh primitives (POSITION, NORMAL, TEXCOORD) | Vertex-based mesh geometry |
| Materials | .mtl file | materials array with PBR attributes | Diffuse, roughness, metallic, and texture references |
| Hierarchy / Nodes | Group/object lines (g, o) | nodes, scenes | Scene organization and transforms |
| Textures | External images | Embedded or external | Albedo, normal, roughness maps |
| Animations | — | Optional (for glTF/GLB only) | Transform or skeletal animation data |
| Metadata | — | Optional custom extensions | Non-standard user attributes |
⚠️ Note:
These formats are not BIM- or CAD-native.
They do not include IFC-like entity classes or engineering semantics such asIfcWallorIfcSpace.
As such, FRI3D’s classification relies on naming conventions or user-defined tags.
Import Workflow in FRI3D
-
File Detection
FRI3D automatically identifies.obj,.stl,.gltf, and.glbextensions. -
Parsing
OBJ, STL, glTF and GLB files are read through the same Open Cascade (OCCT) engine as STEP files, so nested parts, repeated parts, names and positions come through. glTF and GLB files follow the Khronos glTF 2.0 specification. -
Scene Assembly
Node hierarchies, transformations, and mesh instancing are reconstructed for unified scene representation. -
Tagging and Classification
Since no schema metadata exists, FRI3D infers element categories from naming patterns (e.g., group/object names) or manual user input. -
Conversion and Simplification
Meshes are converted to internal FRI3D geometry primitives (triangular meshes or bounding boxes).
Materials are optionally used for visualization, but simulation attributes (e.g., emissivity, fuel type) must be assigned separately.
Tip:
For OBJ files, group names (g) For glTF/GLB, use node names or metadata in theextrasfield.
Import options
File → Import → BIM/CAD opens the import dialog. Below the file list is a CAD import options group. It shows only the options that apply to the file type you select:
| Option | Applies to | Default | What it does |
|---|---|---|---|
| Zone | all CAD files | the current zone | The zone (compartment) that receives the imported geometry. |
| File unit | OBJ, STL | Metres | OBJ and STL files do not record their unit. Choose the unit they were exported in: metres, centimetres, millimetres, inches or feet. |
| Up axis | OBJ, STL | Format default (OBJ Y-up, STL Z-up) | OBJ and STL files do not record which axis is up. Most OBJ files come from 3D tools (Y up) and most STL files from CAD tools (Z up). Change it if the model comes in lying on its side. |
| Mesh tolerance | STEP, IGES | 5 mm | How closely the triangles follow curved surfaces. Smaller is smoother but heavier to display. Simulations use the items' bounding boxes, so they are unaffected. |
STEP, IGES and glTF/GLB files record their own unit and orientation, so FRI3D converts them to metres itself. If an imported model looks implausibly large or small, the import log says so; check the file unit.
The file filters list only the formats FRI3D reads: BIM/IFC, 3D CAD (STEP/IGES) and 3D mesh (glTF/GLB/OBJ/STL). FBX, DAE, USD, PLY and DXF files are refused with a message saying which format to convert them to.
Command line: Import_CAD
The same options are available from the command line:
Import_CAD.exe <cad file> <project> [zone] [T] [-unit m|cm|mm|in|ft] [-upAxis y|z] [-meshTolerance <metres>]
zoneis the zone for the geometry;Tcreates a new project at<project>first.-unitand-upAxisapply to OBJ and STL only.-meshToleranceis in metres (for example-meshTolerance 0.005for 5 mm) and applies to STEP and IGES.
Import_CAD.exe C:\Models\layout.glb C:\Projects\plant.fri3d Room101
Import_CAD.exe C:\Models\scan.stl C:\Projects\plant.fri3d Room101 -unit mm -upAxis z
Reliability and Limitations
While OBJ and glTF/GLB imports are well-supported for visualization, they have limited semantic fidelity compared to IFC.
FRI3D treats them as geometry-only sources, so manual classification and property assignment are often required.
- No physical properties (e.g., density, emissivity, fire resistance) are preserved.
- No topology or adjacency information (walls, doors, spaces) is encoded.
- Coordinate systems may differ depending on the source tool (Y-up vs. Z-up). OBJ and STL record neither their unit nor their up axis: set them in the import options.
- Precision may vary; OBJ uses text-based coordinates, leading to rounding errors for large-scale scenes.
- Material data is optimized for visualization, not simulation.
⚠️ Recommendation:
Use these formats for contextual geometry, visualization, or simplified environments.
For detailed building data and automated classification, prefer IFC imports.
Supported Versions
| Format | Supported Specification | Notes |
|---|---|---|
| OBJ | Wavefront OBJ + MTL | ASCII only (binary variants not supported) |
| glTF | glTF 2.0 JSON | External or embedded textures supported |
| GLB | glTF 2.0 Binary | Full embedded scene; preferred for compact assets |
| STL | ASCII or binary STL | Geometry only; read Z-up by default |
Example
OBJ Example
o FireDoor_Main
v 0.0 0.0 0.0
v 1.0 0.0 0.0
v 1.0 2.0 0.0
v 0.0 2.0 0.0
f 1 2 3 4
usemtl DoorMaterial