koota
from verekia/r3f-gamedev
⚛️ React Three Fiber Game Dev Recipes
19 stars0 forksUpdated Jan 21, 2026
npx skills add https://github.com/verekia/r3f-gamedev --skill kootaSKILL.md
Koota ECS
Use Koota for data-oriented Entity Component System architecture with React bindings.
When setting up or undertaking important changes with Koota, fetch the documentations:
https://raw.githubusercontent.com/pmndrs/koota/refs/heads/main/README.md
Technique
Define traits (components) with trait(), create a world, spawn entities with traits, and query entities in systems. Use useQuery to reactively render entities and useTraitEffect to respond to trait changes.
Key Concepts
trait()defines component schemas with default valuesworld.spawn()creates entities with traitsworld.query()finds entities matching traitsuseQuery()hook for reactive entity lists in ReactuseTraitEffect()for responding to trait changes without re-rendering- Systems are React components that use
useFrameto update entities (they returnnull, not views)
Usage
const Position = trait({ x: 0, y: 0 })
const IsCharacter = trait()
const world = createWorld()
// Spawn
world.spawn(Position({ x: 1, y: 2 }), IsCharacter)
// Query in system
world.query(Position).updateEach(([position]) => {
position.x += 0.01
})
// React component
const characters = useQuery(Position, IsCharacter)
This skill is part of verekia's r3f-gamedev.
Repository
verekia/r3f-gamedevParent repository
Repository Stats
Stars19
Forks0
LicenseMIT License