Skip to main content
Version: 🚧 Nightly

Supported File Formats

F3D supports the following file formats:

NameFile Extension(s)Full sceneAnimation SupportPluginReader Name
Legacy VTK.vtkNoNONEnativeVTKLegacy
VTK XML.vtp, .vtu, .vtr, .vti, .vts, .vtmNoNONEnativeVTKXMLVT<P,U,R,I,S,M>
VTKHDF.vtkhdfNoUNIQUEhdfVTKHDF
EXODUS II.e, .ex2, .exo, .gNoUNIQUEhdfExodusII
NetCDF.nc, .cdf, .ncdfNoUNIQUEhdfNetCDF
Polygon File Format.plyNoNONEnativePLYReader
Standard Triangle Language.stlNoNONEnativeSTL
DICOM.dcmNoNONEnativeDICOM
NRRD ("nearly raw raster data").nrrd, .nhdrNoNONEnativeNrrd
MetaHeader MetaIO.mhd, .mhaNoNONEnativeMetaImage
Tag Image File Format 2D/3D.tif, .tiffNoNONEnativeTIFF
QuakeMDL.mdlYesSINGLEnativeQuakeMDL
CityGML.gmlNoNONEnativeCityGML
Point Cloud.ptsNoNONEnativePTS
Standard for the Exchange of Product Data.step, .stp, .stpnc, .p21, .210NoNONEocctSTEP
Initial Graphics Exchange Specification.iges, .igsNoNONEocctIGES
Open CASCADE Technology BRep format.brepNoNONEocctBREP
Open CASCADE Technology XBF format.xbfNoNONEocctXBF
Alembic.abcNoUNIQUEalembicAlembic
Wavefront OBJ.objYesNONEnativeOBJ
GL Transmission Format.gltf, .glbYesMULTInativeGLTF, GLTFDraco
Draco.drcNoNONEdracoDraco
Autodesk 3D Studio.3dsYesNONEnative3DS
Virtual Reality Modeling Language.wrl, .vrmlYesNONEnativeVRMLReader
Autodesk Filmbox.fbxYesSINGLEassimpFBX
COLLADA.daeYesSINGLEassimpCOLLADA
Object File Format.offYesNONEassimpOFF
Drawing Exchange Format.dxfYesNONEassimpDXF
DirectX.xYesSINGLEassimpDirectX
3D Manufacturing Format.3mfYesNONEassimp3MF
Universal Scene Description.usd, .usda, .usdc, .usdzYesSINGLEusdUSD
VDB.vdbNoNONEvdbVDB
3D Gaussian splatting.splatNoNONEnativeSplat
Compressed 3D Gaussian splatting.spzNoNONEnativeSPZ

Reader options

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

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 extensionOption NameArgument TypeDescription
vdbVDB.downsampling_factordoubleControl the level of downsampling when reading a volume, default is 0.1.
occtSTEP.linear_deflectiondoubleControl the distance between a curve and the resulting tessellation, default is 0.1.
occtSTEP.angular_deflectiondoubleControl the angle between two subsequent segments, default is 0.5.
occtSTEP.relative_deflectionboolControl if the deflection values are relative to object size, default is false.
occtSTEP.read_wireboolControl if lines should be read, default is true.
occtIGES.linear_deflectiondoubleControl the distance between a curve and the resulting tessellation, default is 0.1.
occtIGES.angular_deflectiondoubleControl the angle between two subsequent segments, default is 0.5.
occtIGES.relative_deflectionboolControl if the deflection values are relative to object size, default is false.
occtIGES.read_wireboolControl if lines should be read, default is true.
occtBREP.linear_deflectiondoubleControl the distance between a curve and the resulting tessellation, default is 0.1.
occtBREP.angular_deflectiondoubleControl the angle between two subsequent segments, default is 0.5.
occtBREP.relative_deflectionboolControl if the deflection values are relative to object size, default is false.
occtBREP.read_wireboolControl if lines should be read, default is true.
occtXBF.linear_deflectiondoubleControl the distance between a curve and the resulting tessellation, default is 0.1.
occtXBF.angular_deflectiondoubleControl the angle between two subsequent segments, default is 0.5.
occtXBF.relative_deflectionboolControl if the deflection values are relative to object size, default is false.
occtXBF.read_wireboolControl if lines should be read, default is true.
mdlQuakeMDL.skin_indexunsigned intSelect 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.
  • 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:

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