# Kiln > An agent-first game runtime A fixed-step loop, a Koota ECS and a Three.js render bridge, built so a coding agent can add a feature with a few exports and one scheduling line, then check it headlessly. ## Table of Contents ### Guide - [Introduction](/guide/introduction.md): What Kiln is, what agent-first means, and how the pieces fit. - [Getting started](/guide/getting-started.md): Create a game with kiln new, run it, read its schedule and run its test. - [Project layout](/guide/project-layout.md): The files of a Kiln game, the entry module, and how names come from exports. - [Working with agents](/guide/agents.md): The loop a coding agent follows, AGENTS.md and kiln docs, and llms.txt. - [A complete feature](/guide/first-feature.md): Health, hazards and a health bar end to end: data, systems, schedule, test. ### Concepts - [Entities and traits](/concepts/ecs.md): Entities, traits, relations, Transform, queries and commands. - [Systems](/concepts/systems.md): The three system forms, the context, Mut() and checked access, order and run conditions. - [The schedule](/concepts/schedule.md): Phases, what happens in one frame, when changes become visible, and startup validation. - [Resources and events](/concepts/resources-events.md): Singletons with res.get/res.mut, and typed events with their lifetime rules. - [Prefabs and plugins](/concepts/prefabs-plugins.md): Named spawn recipes, and plugins that bundle resources, events, systems and hooks. - [States](/concepts/states.md): State machines for menus, pause and game over: inState, onEnter, onExit, despawnOnExit. - [Determinism](/concepts/determinism.md): Seeded Rng, the simulation clock, kiln check, and where determinism ends. - [Hot reload](/concepts/hot-reload.md): Systems swap in place; other changes rebuild or reload, per the hotReload setting. ### Plugins - [Plugins](/plugins.md): What is in CorePlugins, the opt-in plugins, and how to configure them. - [Rendering](/plugins/render.md): MeshRef, interpolation, teleports, hierarchy, instancing, the camera, 2D mode. - [Input](/plugins/input.md): Actions and the Input resource, bindings, and scripted input for tests. - [Assets](/plugins/assets.md): Loading glTF, textures and JSON by path without blocking, Model, and headless loads. - [Timers and tweens](/plugins/timers-tweens.md): Timer, Lifetime, Delayed events and Tweens, all counted in fixed steps. - [HUD and UI](/plugins/ui.md): The HUD as retained data: text, bars, buttons, UiClick, and testing it headless. - [Camera](/plugins/camera.md): CameraPlugin: follow a target with smoothing, bounds, zoom and trauma shake. - [Saving](/plugins/save.md): savePlugin: save slots, persisted settings, storage, and testing saves. - [Animation](/plugins/animation.md): Sprite-sheet and skeletal animation with one graph model, animators and frame events. - [Physics](/plugins/physics.md): Rapier rigid bodies and colliders synced to Transform, collisions, raycasts and ordering. - [Debug panel](/plugins/debug.md): The Tweakpane inspector: stats, pause and step, system timings, entity and resource views. - [Shaders (TSL)](/plugins/tsl.md): Writing custom materials in TSL for WebGPURenderer, verified on Three.js 0.186.1. - [Community plugins](/plugins/community.md): Vendoring community plugins with kiln add, the available plugins, and writing one. ### Testing - [Scenario tests](/testing/scenarios.md): Headless scenario tests: fresh app, exact steps, scripted input, assertions. - [Recordings and replay](/testing/recordings.md): Record play sessions in the browser, replay them headless, and keep them as tests. - [Snapshots](/testing/snapshots.md): The world as JSON: snapshot options, kiln run, diffs and restoring. ### Reference - [CLI](/reference/cli.md): Every kiln command and option. - [Configuration](/reference/config.md): Every kiln.config.ts field, overrides, and the Vite and Bun setup. - [Errors](/reference/errors.md): KilnError, the common errors and their fixes, and every error code. - [Kiln design](/design.md) - [Kiln API](/api.md)