Convert files in 40+ 3D file formats, including Collada, 3DS, OBJ, LWO, FBX, Blender, X, STL, PLY, MS3D, B3D, MD3, MDL, DXF and IFC to plain json
.
Convert models online here. (Select JSON as output format)
Download Windows binaries here. (v2.0, October 2013)
assimp2json
is a command line tool designed to expose the import capabilities of assimp
, the Open Asset Import Library to WebGl developers. The tool takes a single 3d model as input file, imports it using assimp
and converts the result to json
.
assimp2json
is platform-independent, its only dependency is assimp
itself.
The output format is a one-by-one translation of Assimp's C datastructure , with a few changes to make the resulting json
look more natural. All fields are lower-case and the prefixes (such as m, pc, ..) are omitted. Array lengths are not written as this information is implicitly given. Empty arrays are not written at all, i.e. a node without children doesn't have an empty children:[]
field.
The /samples
folder contains some sample assimp.json
files.
assimp.json
files carry a little format header in the JSON root element. This allows them to be disambiguated from other JSON-based 3D formats (such as Three.JS scenes). The numeric value specifies the assimp2json format version in (major, minor, revision) format. Currently, only 100 is defined.
"__metadata__": {
"format" : "assimp2json"
,"version": 100
}
The build system for assimp2json is CMake. To build, use either the CMake GUI or the CMake command line utility. Note: make sure you pulled the assimp
submodule, i.e. with git submodule init && git submodule update
$ assimp2json [flags] input_file [output_file]
(omit the output_file
argument to get the json
string on stdout)
Invoke assimp2json
with no arguments for detailed information.
I plan to build a proper content pipeline for WebGl assets based on assimp, assimp2json, possibly OpenCTM, WebP and Crunch/DXT to be able to preprocess 3D assets and their textures for fast streaming. Stay tuned, or drop me a note if you want to help out.