The Sedulous Editor is a standalone application for authoring scenes, importing assets, and configuring game content. It runs an embedded engine runtime for live 3D preview. The editor is entirely optional – everything it does can also be done in code.

Open a directory as a project. The editor creates a .sedproj file to store project settings, open pages, and dock layout.
MyProject/
.sedproj # Project settings (OpenDDL)
editor_layout.oddl # Dock panel layout
project.registry # Resource GUID -> URI map for the project mount
scenes/
level1.scene
models/
hero.mesh
hero.skeleton
textures/
hero_diffuse.texture
hero_diffuse.texture.bin # Pixel data sidecar
materials/
hero.material
The editor uses a dockable panel system:
Layout is saved automatically on shutdown and restored on next launch.
Double-click a .scene file in the asset browser to open it as a tab. The scene editor has three panes:
Select an entity and use the toolbar or keyboard shortcuts:
| Key | Mode | Description |
|---|---|---|
| W | Translate | Drag arrows to move along axes |
| E | Rotate | Drag rings to rotate around axes |
| R | Scale | Drag handles to scale along axes |
Toggle World/Local space with the toolbar button.
Click on empty space (deselect all entities) to see scene-level settings in the inspector:
.texture fileThe bottom panel shows all mounted resource collections, organized as a tree on the left and a content view on the right.
The tree’s root nodes are mounts – the editor always shows builtin (engine-supplied primitives, materials, skies) and project (the open project’s assets). Additional mounts can be added via the toolbar:
.registry file and mount its containing directory under a new scheme.builtin and project entries can’t be unmounted).Each mount has its own index file (e.g. project.registry) that maps GUIDs to URIs within that scheme. The index is persisted automatically whenever you create, rename, delete, or import an asset.
On empty space / folder:
On asset:
project://models/hero.mesh)Right-click -> Import, or use File -> Import. The import dialog shows:
Supported source formats:
.gltf, .glb, .fbx -> produces .mesh, .texture, .material, .skeleton, .animation.png, .jpg, .tga, .bmp, .hdr -> produces .textureDouble-clicking any resource opens it in a page tab. Scene and prefab files open the full scene editor. Other resources open type-specific viewers (texture preview, material properties, etc.).
Prefabs are reusable entity subgraphs. A .prefab file is a mini-scene that can be instantiated multiple times across different scenes.
In the asset browser: right-click -> Create -> Prefab. This creates an empty .prefab file that opens in the scene editor for authoring.
Add a PrefabReferenceComponent to an entity. Set its PrefabRef to the .prefab file. The prefab’s entities are instantiated as children at runtime.
The inspector shows properties of the selected entity:
Properties are auto-generated from [Property] attributes via comptime codegen. Supported field types: float, int32, bool, String, Vector3, Quaternion, ResourceRef, enums.
Each scene page has its own undo stack. Transform gizmo drags, property edits, and entity creation/deletion are all undoable via Edit -> Undo/Redo.
The editor saves and restores:
.sedproj