cadmpeg-codec-f3d
Container-level codec for Autodesk Fusion 360 .f3d files.
What is implemented
A .f3d is a ZIP archive whose entries follow documented naming families
(BREP streams, .protein material ZIPs, design/ACT/browser bulk & meta
streams, manifests, previews). This codec:
- [
F3dCodec::detect] recognizes the ZIP magic plus f3d marker strings; - [
F3dCodec::inspect] enumerates and classifies every entry and reads the ASMBinaryFileheader of each BREP stream (magic/width, version words,product_family/product_version/save_date,scale/resabs/resnor) and locates thedelta_statehistory boundary; - [
F3dCodec::decode] frames the active BREP's SAB record stream and builds the IR B-rep graph (body → region → shell → face → loop → coedge → edge → vertex → point) plus the analytic surface/curve carriers it references.
What is decoded, and what is reported as loss
The SAB record stream ([sab]) is framed token-by-token so record
boundaries stay exact even across records this codec does not interpret. From
that RecordTable ([brep]) it decodes the topology graph and the analytic
carriers — plane, cone/cylinder, sphere, torus, straight line,
ellipse/circle — with lengths converted centimetre→millimetre.
Cached spline/procedural surfaces and curves, UV pcurves, linked ASM
attributes, body transforms, nested Protein appearance assets, and Design
body assignments are transferred. Unsupported source records remain
explicit in the [cadmpeg_ir::report::DecodeReport]. When the active stream
is not a decodable BinaryFile8 SAB, decode falls back to container metadata.