Documentation

How Floptle works, 69 pages of it.

These are the engine's own docs, published from the release itself. They describe v0.95.0 — the version you can download right now, not an unreleased branch.

How the engine works

Each subsystem, in its own words. Read these to find out what the engine can actually do.

Floptle — Architecture Floptle is a Rust workspace of small crates arranged in dependency layers. Lower layers never depend on higher ones. This keeps the engine modular, fast to comp... Floptle — Renderer (`floptle-render`) The job here is one reaction — "I've never seen anything like this, it's from another dimension" — surreal, dreamlike, and willing to break the laws of light an... Scene & Nodes (`floptle-core`) The authoring model: a friendly Node tree you build and script, sitting on a data-oriented archetype ECS that actually runs. One scene, two views. Floptle — The Editor (`floptle-editor`) floptle-editor is one of two binaries (ARCHITECTURE §1). Built on egui + egui_dock (ADR-0004) — pure Rust, immediate-mode, rendered through the same wgpu device... Floptle — Physics (`floptle-physics`) Custom, SDF-first collision: collide against the same distance function the renderer draws, so morphing fractal worlds are interactable without ever re-meshing. Floptle — Navigation (`floptle-nav`) Where a character can stand, how it gets from here to there, and the thing that actually walks it. Floptle — Deformable Matter (`floptle-matter`) Make geometry a physical material — morphing, blending, sticky, breakable — that stays renderable and collidable for free because it is always the same implicit... Floptle — Materials & Textures (`floptle-assets` + `floptle-shader`) The pain we're solving: in most engines, tiling a texture onto a non-UV-mapped object means writing a shader. Floptle says no. Tiling, clamping, mirroring, offs... Floptle — Shader IR (`floptle-shader`) This is Floptle's biggest lever for visuals nobody else can make. We own the representation, so we can add non-standard nodes — raymarch/SDF warps, feedback, im... Floptle — Shadows (field-marched sun shadows) Status: IMPLEMENTED · 2026-07-02 — field-first SDF sun shadows, per scene, on everything: terrain/blobs cast from the field itself, raster meshes receive by mar... Floptle — Programmable Light (`floptle-render` + shader-IR light nodes) Light is not a fixed renderer feature — it is a composable transport rule sampled along the rays the marcher already shoots, the fourth peer field (space · matt... Global illumination — the bounce Status: shipped in v0.45.0 (baked irradiance volumes). Per-surface lightmaps and a real-time SDFGI mode are both still ahead; the render graph is shaped so they... Volumetrics — light in the air Status: shipped in v0.46.0 (single-scattering fog with light injection). The media is one global height layer; per-node fog volumes and multiple-scattering are... Area lights — lights with a size Status: shipped in v0.47.0. Diffuse direction is analytic; the terminator wrap and the specular representative point are fitted approximations, and this page sa... Floptle — Post-Processing (the per-scene PostProcess node) Post-processing is tuned per scene, not per project: every scene carries a mandatory ✨ Post Processing node (self-healed on load, exactly like the Skybox and t... Particles & VFX (`floptle-vfx`) Timeline-driven particle authoring: name an effect, give it a lifetime, lay tracks down a video-editor timeline, and shape every property with a constant, a ran... Animation (`floptle-anim`) Skeletal clips from Blender, driven by a small state machine, blended into a final pose, with timeline events that fire gameplay. Built for dreamlike adventure... Audio (`floptle-audio`) Everything audible: decoded clips, playing voices (spatial or flat), and the project mixer — tracks with faders, effect chains, and routing, all folding down in... Input & action mapping (`floptle-input`) Bind a named Action to many inputs at once — any keyboard key, any mouse button, sticks/triggers/buttons on a gamepad — then decide what the action does in a no... In-game UI (`floptle-ui`) The game's HUD/menu system — not the editor (that's egui, ADR-0004). One promise: arrange elements, then script what they do. Drag a panel, anchor it, attach a... Floptle — Assets & the Blender Pipeline (`floptle-assets`) floptle-assets is the bridge from files on disk to engine resources on the GPU and in the ECS. It imports glTF, decodes textures, assigns stable ids, tracks dep... Object Pooling (`floptle-core::pool`) Pooling is built into the engine, not bolted onto every project. Declare a pool, take() an instance, return() it (or just drop the guard) — the engine handles a... Floptle — Large-world space (`floptle-core`) Default-on, behind-the-scenes coordinate space: the world moves around the player, the player never actually moves — so a galaxy-scale or infinitely-deep world... Floptle — Gravity & Density (`floptle-physics::gravity`) Gravity is not a global constant — it is a composable vector field g(p) you sample as "down," and density is a first-class material property from which mass, th... Floptle — Field Interaction (`floptle-rules` data + runtime executor) A typed graph where "field A modulates field B" is an authored edge — the seam that lets gravity, density, light, time, and geometry affect each other, turning... Floptle — World Rules: the Lawset / Realm meta-spine (`floptle-rules`) A game is a simulated universe whose developer-defined laws compose; this doc designs the single object that says which laws hold where — a serializable, inheri... Floptle — Time (`floptle-core::time` + `floptle-rules`) Promote time from a single global scalar to a rate field r(p), so a region can slow, freeze, or dilate the flow of time the same way a region already bends grav... Cameras & Dialogue (`floptle-core` cameras · `floptle-ui` dialogue) Two subsystems that constantly work together. Cameras: a lightweight virtual-camera + brain model (Cinemachine-ish) so first-person, third-person, and cutscene...

Something read wrong here? It is wrong in the engine's docs too — the site does not keep its own copy. File it on the repo.