Skip to main content
Version: 4.0

Supported file formats

F3D supports the following file formats:

NameFile Extension(s)Full sceneAnimation SupportStreaming SupportPluginReader Name
Legacy VTK.vtkNoNONEYES (VTK 9.7)nativeVTKLegacy
VTK XML.vtp, .vtu, .vtr, .vti, .vts, .vtmNoNONEYES (VTK 9.7)nativeVTKXMLVT<P,U,R,I,S,M>
VTKHDF.vtkhdfNoUNIQUEYES (VTK 9.6)hdfVTKHDF
EXODUS II.e, .ex2, .exo, .gNoUNIQUENOhdfExodusII
NetCDF.nc, .cdf, .ncdfNoUNIQUENOhdfNetCDF
Polygon File Format.plyNoNONEYES (VTK 9.5)nativePLYReader
Standard Triangle Language.stlNoNONEYES (VTK 9.6)nativeSTL
DICOM.dcmNoNONEYES (VTK 9.6)nativeDICOM
NRRD ("nearly raw raster data").nrrd, .nhdrNoNONENOnativeNrrd
MetaHeader MetaIO.mhd, .mhaNoNONENOnativeMetaImage
Tag Image File Format 2D/3D.tif, .tiffNoNONENOnativeTIFF
PNG Image.pngYesNONEYES (VTK 9.6)nativePNG
JPEG Image.jpg, .jpegYesNONEYES (VTK 9.6)nativeJPEG
BMP Image.bmpYesNONEYES (VTK 9.6)nativeBMP
TGA Image.tgaYesNONEYES (VTK 9.6)nativeTGA
HDR Radiance Image.hdrYesNONEYES (VTK 9.6)nativeHDR
WebP Image.webpYesNONEYES (VTK 9.6)nativeWebP
OpenEXR Image.exrYesNONEYES (VTK 9.6)nativeEXR
QuakeMDL.mdlYesSINGLEYES (VTK 9.5)nativeQuakeMDL
CityGML.gmlNoNONEYES (VTK 9.6)nativeCityGML
Point Cloud.ptsNoNONEYES (VTK 9.6)nativePTS
Standard for the Exchange of Product Data.step, .stp, .stpnc, .p21, .210NoNONEYES (VTK 9.6)occtSTEP
Initial Graphics Exchange Specification.iges, .igsNoNONENOocctIGES
Open CASCADE Technology BRep format.brepNoNONEYES (VTK 9.6)occtBREP
Open CASCADE Technology XBF format.xbfNoNONEYES (VTK 9.6)occtXBF
FreeCAD Standard.fcstdNoNONEYES (VTK 9.6)occtFCStd
Alembic.abcNoUNIQUEYES (VTK 9.6)alembicAlembic
Wavefront OBJ.objYesNONEPARTIAL (VTK 9.7)nativeOBJ
glTF.gltfYesMULTIPARTIAL (VTK 9.6)nativeGLTF, GLTFDraco
glTF binary.glbYesMULTIYES (VTK 9.6)nativeGLB, GLBDraco
Draco.drcNoNONEYESdracoDraco
Autodesk 3D Studio.3dsYesNONEYES (VTK 9.6)native3DS
Virtual Reality Modeling Language.wrl, .vrmlYesNONENOnativeVRMLReader
Autodesk Filmbox.fbxYesMULTIYES (VTK 9.6)assimpFBX
COLLADA.daeYesMULTIPARTIAL (VTK 9.6)assimpCOLLADA
Object File Format.offYesNONEYES (VTK 9.6)assimpOFF
Drawing Exchange Format.dxfYesNONEYES (VTK 9.6)assimpDXF
DirectX.xYesMULTIYES (VTK 9.6)assimpDirectX
3D Manufacturing Format.3mfYesNONEYES (VTK 9.6)assimp3MF
Additive Manufacturing Format.amfYesNONEYES (VTK 9.6)assimpAMF
Universal Scene Description.usd, .usda, .usdc, .usdzYesSINGLEYES (VTK 9.6)usdUSD
VDB.vdbNoNONEYES (VTK 9.6)vdbVDB
Industry Foundation Classes.ifcNoNONEYESwebifcIFC
3D Gaussian splatting.splatNoNONEYES (VTK 9.5)nativeSplat
Compressed 3D Gaussian splatting.spzNoNONEYES (VTK 9.5)nativeSPZ
LASer format for lidar point cloud.las, .lazNoNONENOpdalLAS
Binary Point File.bpfNoNONENOpdalBinaryPointFile
TerraScan binary files.binNoNONENOpdalTerraScanBIN
Optech Corrected Sensor Data.csdNoNONENOpdalOptechCSD
Point Cloud Data.pcdNoNONENOpdalPCD
Leica Cyclone.ptxNoNONENOpdalLeicaCyclonePTX
Airborne Topographic Mapper QFIT.qiNoNONENOpdalQFIT
Smoothed Best Estimate of Trajectory.sbetNoNONENOpdalSBET
Esri Scene Layer Package.slpkNoNONENOpdalSLPK

Streaming support means that F3D can read from stdin when you specify the reader name. See the piping examples.

If a format supports streaming, F3D checks its header content before trying to open it. Use the --skip-content-check option to skip this check and rely on the file extension only.

To get accurate information for your own build of F3D, use the dedicated option, --list-readers.

Reader options​

Readers can provide options. Set them using the -D/--define command-line option. eg: -DVDB.downsampling_factor=0.5 or using the set_reader_option command. Reader option names start with the reader name from the table above, followed by the option name.

For booleans, 0 means false and any other value means true. Unsigned int interprets anything that is not a non-negative integer as the default value.

PluginOption NameArgument TypeDescription
mdlQuakeMDL.skin_indexunsigned intSelect a particular skin from a mdl file. Uses 0-indexing, default is 0.
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 whether lines are 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 whether lines are 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 whether lines are 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 whether lines are read, default is true.
occtFCStd.linear_deflectiondoubleControl the distance between a curve and the resulting tessellation, default is 0.1.
occtFCStd.angular_deflectiondoubleControl the angle between two subsequent segments, default is 0.5.
occtFCStd.relative_deflectionboolControl if the deflection values are relative to object size, default is false.
occtFCStd.read_wireboolControl whether lines are read, default is true.
usdUSD.resources_pathstringAdditional path to find USD plugInfo.json resources
usdUSD.subdivision_levelunsigned intSpecify the subdivision level to apply when specified. Default is 0 (no subdivision)
vdbVDB.downsampling_factordoubleControl the level of downsampling when reading a volume, default is 0.1.
webifcIFC.circle_segmentsintNumber of segments for circular geometry, default is 12.
webifcIFC.read_openingsboolRead IfcOpeningElement entities (doors/windows cutouts), default is false.
webifcIFC.read_spacesboolRead IfcSpace entities (room volumes), default is false.

Format details​

QuakeMDL​

  • F3D loads model textures 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​

F3D supports 3 different formats:

  • .ply: Original 3DGS format
  • .splat: Format specified by the splat repository. Does not support spherical harmonics.
  • .spz: Niantic's SPZ format (v2 and v3)

No config files come with the .ply format because this format is not dedicated to 3DGS only. If you use .ply for 3DGS only, set up a config file similar to what is done for .splat or .spz. See the configuration file documentation.