life 100 🪵 0 🪨 0
Ollie Cosmos — … · day · tick 0 · creatures 0 · players 1 · mode fly · seed — · server local
click enter · WASD move · mouse look · G walk/fly · space up/jump · C chop/gather · B build · V use · Q strike · E create anything · right-click edit anything
Enter chat · F creature · T tree · N new world · L load seed · K save world · J join by IP · H home

# Ollie Cosmos

A procedurally generated patch of ground, simulated tick by tick.
Click to look around. Esc to release the mouse.
Right-click anything — ground, tree, creature — to edit or recode it live.
🎮 Controller ready — left stick move · right stick look · A jump/up · X creature · Y tree · B walk/fly

## Create anything

Define a new entity type — a mesh + a behavior — and spawn it live, from inside the world. This is the exact `author()` call an agent makes.

Type name Mesh — JSON spec: a primitive, a `{group:[…]}`, or `{obj:"…"}` (or paste raw OBJ text) { "group": [ { "shape":"box", "size":[1.2,0.3,1.2], "color":"#8b5a2b", "y":0.15 }, { "shape":"cone", "r":0.6, "h":1.3, "color":"#22c55e", "y":1.1 } ] } Behavior — body of `function(self, world){ … }`, runs every tick self.rot += 0.05; self.y = world.heightAt(self.x, self.z) + 0.4 + Math.sin((world.tick + self.age) * 0.05) * 0.6;