Supported File Formats

F3D supports the following file formats:

Name File Extension(s) Full scene Animation Support Plugin Reader Name
Legacy VTK .vtk No NONE native VTKLegacy
VTK XML .vtp, .vtu, .vtr, .vti, .vts, .vtm No NONE native VTKXMLVT<P,U,R,I,S,M>
VTKHDF .vtkhdf No UNIQUE hdf VTKHDF
EXODUS II .e, .ex2, .exo, .g No UNIQUE hdf ExodusII
NetCDF .nc, .cdf, .ncdf No UNIQUE hdf NetCDF
Polygon File Format .ply No NONE native PLYReader
Standard Triangle Language .stl No NONE native STL
DICOM .dcm No NONE native DICOM
NRRD (“nearly raw raster data”) .nrrd, .nhdr No NONE native Nrrd
MetaHeader MetaIO .mhd, .mha No NONE native MetaImage
Tag Image File Format 2D/3D .tif, .tiff No NONE native TIFF
QuakeMDL .mdl Yes SINGLE native QuakeMDL
CityGML .gml No NONE native CityGML
Point Cloud .pts No NONE native PTS
Standard for the Exchange of Product Data .step, .stp, .stpnc, .p21, .210 No NONE occt STEP
Initial Graphics Exchange Specification .iges, .igs No NONE occt IGES
Open CASCADE Technology BRep format .brep No NONE occt BREP
Open CASCADE Technology XBF format .xbf No NONE occt XBF
Alembic .abc No UNIQUE alembic Alembic
Wavefront OBJ .obj Yes NONE native OBJ
GL Transmission Format .gltf, .glb Yes MULTI native GLTF, GLTFDraco
Draco .drc No NONE draco Draco
Autodesk 3D Studio .3ds Yes NONE native 3DS
Virtual Reality Modeling Language .wrl, .vrml Yes NONE native VRMLReader
Autodesk Filmbox .fbx Yes SINGLE assimp FBX
COLLADA .dae Yes SINGLE assimp COLLADA
Object File Format .off Yes NONE assimp OFF
Drawing Exchange Format .dxf Yes NONE assimp DXF
DirectX .x Yes SINGLE assimp DirectX
3D Manufacturing Format .3mf Yes NONE assimp 3MF
Universal Scene Description .usd, .usda, .usdc, .usdz Yes SINGLE usd USD
VDB .vdb No NONE vdb VDB
3D Gaussian splatting .splat No NONE native Splat
Compressed 3D Gaussian splatting .spz No NONE native SPZ

Reader options

Readers can provide option that can be set using the -D/--define command line option. eg: -DVDB.downsampling_factor=0.5.

For booleans, 0 means false, not 0 means true. Unsigned int will interpret anything that is not a non-negative integer as the default value.

File extension Option Name Argument Type Description
vdb VDB.downsampling_factor double Control the level of downsampling when reading a volume, default is 0.1.
occt STEP.linear_deflection double Control the distance between a curve and the resulting tessellation, default is 0.1.
occt STEP.angular_deflection double Control the angle between two subsequent segments, default is 0.5.
occt STEP.relative_deflection bool Control if the deflection values are relative to object size, default is false.
occt STEP.read_wire bool Control if lines should be read, default is true.
occt IGES.linear_deflection double Control the distance between a curve and the resulting tessellation, default is 0.1.
occt IGES.angular_deflection double Control the angle between two subsequent segments, default is 0.5.
occt IGES.relative_deflection bool Control if the deflection values are relative to object size, default is false.
occt IGES.read_wire bool Control if lines should be read, default is true.
occt BREP.linear_deflection double Control the distance between a curve and the resulting tessellation, default is 0.1.
occt BREP.angular_deflection double Control the angle between two subsequent segments, default is 0.5.
occt BREP.relative_deflection bool Control if the deflection values are relative to object size, default is false.
occt BREP.read_wire bool Control if lines should be read, default is true.
occt XBF.linear_deflection double Control the distance between a curve and the resulting tessellation, default is 0.1.
occt XBF.angular_deflection double Control the angle between two subsequent segments, default is 0.5.
occt XBF.relative_deflection bool Control if the deflection values are relative to object size, default is false.
occt XBF.read_wire bool Control if lines should be read, default is true.
mdl QuakeMDL.skin_index unsigned int Select a particular skin from a mdl file. Uses 0-indexing, default is 0.

Format details

QuakeMDL

  • Models texture are loaded with a simple PBR lighting (diffuse color only, no specular, index of refraction set to 1.0).
  • Selecting skin is not supported.
  • Loading groupskin is not supported.
  • Animation frames are split based on their names, eg: stand1, stand2, stand3, run1, run2, run3.

3D Gaussian splatting

Currently, 3 different formats are supported by F3D:

  • .ply: Original 3DGS format
  • .splat: Format specified by https://github.com/antimatter15/splat. Does not support spherical harmonics.
  • .spz: Niantic’s format specified by https://github.com/nianticlabs/spz

Note that no config files come with the .ply format because this format isn’t dedicated to 3DGS only so we cannot generalize. If you are using .ply for 3DGS only, you can set up a config file similar to what is done for .splat or .spz. See configuration file documentation