Skip to main content
Version: 1.3

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

FormatDescriptionTypical UseStandard
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

ComponentOBJglTF / GLBDescription
Geometryv, vn, vt, fMesh primitives (POSITION, NORMAL, TEXCOORD)Vertex-based mesh geometry
Materials.mtl filematerials array with PBR attributesDiffuse, roughness, metallic, and texture references
Hierarchy / NodesGroup/object lines (g, o)nodes, scenesScene organization and transforms
TexturesExternal imagesEmbedded or externalAlbedo, normal, roughness maps
Animations—Optional (for glTF/GLB only)Transform or skeletal animation data
Metadata—Optional custom extensionsNon-standard user attributes

⚠️ Note:
These formats are not BIM- or CAD-native.
They do not include IFC-like entity classes or engineering semantics such as IfcWall or IfcSpace.
As such, FRI3D’s classification relies on naming conventions or user-defined tags.


Import Workflow in FRI3D

  1. File Detection
    FRI3D automatically identifies .obj, .stl, .gltf, and .glb extensions.

  2. 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.

  3. Scene Assembly
    Node hierarchies, transformations, and mesh instancing are reconstructed for unified scene representation.

  4. Tagging and Classification
    Since no schema metadata exists, FRI3D infers element categories from naming patterns (e.g., group/object names) or manual user input.

  5. 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 the extras field.


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:

OptionApplies toDefaultWhat it does
Zoneall CAD filesthe current zoneThe zone (compartment) that receives the imported geometry.
File unitOBJ, STLMetresOBJ and STL files do not record their unit. Choose the unit they were exported in: metres, centimetres, millimetres, inches or feet.
Up axisOBJ, STLFormat 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 toleranceSTEP, IGES5 mmHow 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>]
  • zone is the zone for the geometry; T creates a new project at <project> first.
  • -unit and -upAxis apply to OBJ and STL only.
  • -meshTolerance is in metres (for example -meshTolerance 0.005 for 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

FormatSupported SpecificationNotes
OBJWavefront OBJ + MTLASCII only (binary variants not supported)
glTFglTF 2.0 JSONExternal or embedded textures supported
GLBglTF 2.0 BinaryFull embedded scene; preferred for compact assets
STLASCII or binary STLGeometry 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

Reach out

If you need help after reading this doc, email us [email protected] for an answer.