STF - Squirrel Transfer Format¶
A modular file-format for 3D assets Intended for (not only) games-development use-cases.
Warning
Please note, STF is a work in progress and likely to change.
Install STF support for:
Try to import this example model!
Relevant future implementation targets include: 3dsMax, Unreal Engine, Maya, Bevy, BabylonJs, …
Advantages¶
Artist Friendly
Import & export is quick and you don’t have to fiddle with unnecessary settings to avoid breakage.
All information in STF and it’s core-resources is normalized and doesn’t require any knowledge about the file by the user.Versatile
STF stores original information as well as baked results. I.e. STF contains the original topology of meshes, including n-gons, but also the triangulation.
This allows for STF files to be used for further editing and for import into game-engine editors.
Despite that, file-sizes remain similar and are sometimes even lower compared to other formats.Easy to Develop
STF’s modular nature enables high encapsulation in the source-code and easy collaboration in the development of STF implementations. A functioning implementation that handles some core resource-types can be usually developed in a day or two.
Third parties can easily develop and distribute custom (perhaps application specific) resources.
Concept¶
STF by itself is merely a shell format. Its implementations provide a framework to parse and serialize arbitrary resources.
Resources are stored as Json-objects, and can represent anything, from nodes in a scene hierarchy, meshes, textures, animations, …
Resources are referenced by a unique ID.
They and have a type, by which the appropriate piece of code, the resources’ handler, is selected for import / export.
A few resources, including but not limited to stf.prefab, stf.mesh, stf.material or stf.image, are provided by default.
It should be possible to extend any STF implementation with custom resource-handlers, if at all possible.
Anatomy of an STF file
