Recent submissions

Comment · 9 months ago
Thanks for the feedback. There are some O(n²) components (mate finding, pathogen spread, proximity), but they’re mitigated with zone-based spatial hashing and throttling, so it’s not naive all-vs-all.

One big recent win was actually on the rendering side: I was rebuilding complex morphology geometry every frame for large organisms. I’ve added caching for that, which significantly reduced spikes during population blooms.

At very high populations the sim tick itself becomes the bottleneck, even for mostly O(n) logic per organism. When populations crash (which they usually do ecologically), performance recovers.

Quad trees / more adaptive structures are on my radar, but I’m trying to balance complexity vs predictability for now.

Comment · 9 months ago
Lineage colors themselves should be stable. What you’re probably seeing is the transparent colored zone backgrounds, which visually tint organisms as they move through different niches. That’s intentional, to give quick visual feedback about which environment they’re in.

Lineages can change color if they diverge enough to be treated as a new distinct lineage, but that’s a separate case.

Comment · 9 months ago
That’s wild, thanks for the detailed explanation. Super cool mechanic
Comment · 9 months ago
Thanks, glad you liked it!
Comment · 9 months ago
If mine ever start chirping, I will pull the plug.
Comment · 9 months ago
Mostly pretty standard React stuff: React + Vite + TypeScript, Tailwind for styling, and shadcn/ui (on top of Radix) for most UI components. Charts are done with Recharts.

The actual simulation and arena rendering is all custom using the Canvas 2D API, no rendering libraries there.

Comment · 9 months ago
Thanks, glad you enjoyed it. Performance-wise, big blooms and ecological events can be surprisingly expensive even with optimizations, so you’ll see occasional spikes that usually settle again.

Not sure yet on open-sourcing. Appreciate the interest!

Comment · 9 months ago
Yeah, I definitely vibe coded parts of it, especially some of the graphs, but a lot of time went into the actual mechanics and how the systems interact. I also got a lot of pushback from my girlfriend (PhD in virology, teaches evolution), so she kept asking hard questions and forcing me to rethink things. And my kids do a check their worlds every morning, collect organisms and use the narrate feature to see what happened overnight, and their honest feedback helped a lot :D
Comment · 9 months ago
That’s really cool, nice work! I just tried it and was petting for a bit. What does observe do? It asked for camera permission and now I’m curious.
Comment · 9 months ago
Thanks for flagging. That error usually isn’t caused by the site itself, but by something intercepting HTTPS on the network side I think. Maybe something with VPN, netork or antivirus?
Comment · 9 months ago
Thanks! I get that and short version: it’s not a realistic genetic model, it’s a trait-inheritance system with evolutionary flavor.

Each organism just has a set of numeric traits (size, armor, spikes, tentacles, aggression, reproduction rate, etc). There are no genes, codons, chromosomes, or genetic sequences. When organisms reproduce, offspring traits are basically noisy, heritable copies of the parents, with per-trait heritability and mutation.

Structural traits (like size) are strongly inherited, behavioral traits are more plastic. Big size, armor, high reproduction, etc all come with metabolic and mobility tradeoffs and mutation rates can go up under stress.

So it’s a phenotype-level evolutionary model, not a molecular genetics simulator. The goal is to get interesting evolutionary dynamics and tradeoffs, not to simulate real DNA or genetic architectures.

You can zoom into (and capture a snapshot of) each organism by clicking it and see a lot of details on traits.

Comment · 9 months ago
Comment · 9 months ago
Yeah, that’s probably because the panel with organisms didn’t load. A refresh usually fixes it. If you’re still not seeing it, let me know which device/browser you’re on, that helps a lot for debugging.
Comment · 9 months ago
Comment · 9 months ago
Thanks! Morphology does affect both movement and metabolism, but by design it’s modeled as biological abstraction rather than full physics.

Traits like spikes, tentacles, lobes, adhesion, and size add drag/weight, so complex or armored bodies are slower and less agile. Bigger bodies and complex structures also have higher metabolic upkeep. It’s not true fluid dynamics or area/volume math, but it’s tuned to produce the same evolutionary tradeoffs.

So you get: big and complex = strong but slow and hungry. Small and simple = fast and cheap but fragile.

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton