Frame Engine 0.1.0
Frame Engine 0.1.0
A hand-rolled simulation engine in Rust, with a companion 3D editor.
Status: early tech demo. The editor has the basic pieces in place, but it is nowhere near the stage where you could build a real game with it. There is no input system feeding the simulation, no collision, networking, audio, or asset pipeline, and every entity is still a plain cube. Treat this release as a look at the direction the engine and editor are heading, not a usable game-development tool.
Engine
- Deterministic fixed-timestep clock (30 ticks per second) with spiral-of-death protection, in its own
core/module. - Hand-rolled ECS-style world: entities as indices, component data in per-component storage, with runtime spawn and despawn.
- Generic
ComponentStorage<T>wired into the world, so adding a component type is one field. - Position and velocity components, and a movement system that advances entities each tick.
- Scene serialization to and from human-readable RON.
- Read-only ASCII debug renderer for headless use.
- Library and binary split, so the engine is importable by other crates.
Editor (frame-editor)
- Native window (winit) with a 3D viewport rendered on the GPU (wgpu): instanced shaded cubes, a perspective camera, and a depth buffer for correct occlusion.
- Orbit, pan, and zoom camera (left-drag pan, scroll zoom, middle-drag orbit).
- Click-to-pick entity selection with highlight.
- Live entity editing: move, spawn, and despawn from the keyboard, and edit the selected entity's position and velocity from the Inspector panel, written straight back into the world.
- Scene save and load (
F5andF9), with a scene loaded on startup. - A docked, resizable egui panel layout: a top toolbar, a right inspector dock (Scene list and Inspector), and a bottom console dock (live Output log and a Terminal placeholder).
- Runs the simulation live on the engine's clock, with play, pause, and step.
Not yet
- No input system feeding the simulation. The controls are editor-only.
- No collision, networking, audio, or asset pipeline.
- Every entity renders as the same cube, and shading is a single fixed light.
- Picking is an approximate screen-space box, not a true ray-versus-geometry pick.
- Panels are fixed in place. Movable, dockable panels come later.
- The toolbar menus (File, Edit, View, Help) are placeholders.
Known issues
- The editor can crash on window close during GPU teardown. It does not affect editing or saved scenes.
Build
Requires [Rust](https://rustup.rs).
- Engine (headless):
cargo run -p frame-engine - Editor (3D window):
cargo run -p frame-editor
Editor controls: Space play/pause, S step, left-click select, Esc clear, arrows / Page Up / Page Down move selection, N spawn, Delete despawn, F5 / F9 save and load, left-drag pan, scroll zoom, middle-drag orbit, H toggle the controls overlay.
MIT licensed.