Skip to main content

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.json in every kind; the folder's extension says which kind it is (an object.json in a .building folder is a Building). An object.json outside 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.