Documents and packages
Every document is JSON; a Kalem script is text.
Single files: .world, .environment, .event, .component, and .kalem scripts.
Packages are folders: Building (.building), Character (.character), Object (.object),
Animation (.anim) and Scene (.scene).
uhren-disko.building/
object.json the document
model.glb the model
human-walking.anim/
object.json
clip.glb the clip
caria.scene/
object.json a scene has no model of its own
- The document is named
object.jsonin every kind; the folder's extension says which kind it is (anobject.jsonin a.buildingfolder is a Building). Anobject.jsonoutside a package is plain JSON. - The Project tree shows a package as one item with its kind's icon; it does not open like a folder. Opening it opens its document, and the tab is titled with the package's name.
- The files inside stay plain files, for version control, search and the IDE's own editors.
References
Documents refer to each other by uid ("environment": "uid://50ce…"), so a package can move
within the project without breaking what points at it. A part is known by its id, a script by
its file name (kalem/door-bell).
Design and text
JSON documents open on a Design tab (a form, and the 3D view for anything with a model); the IDE's text tab stays beside it. Every change is one undoable command of the IDE, and an edit in the text tab shows on the form. Problems that keep a document from being used are written above its form.