Model 2 · normalized artificial units
Chassis, dimensions and costs.
Numbers below are derived from the current engine with each family’s default model-2 genome at target mature mass, volume 1. They are capacities, not a forecast of survival. Download machine-readable rules.
Family comparison
Body radius differs by family even when bodySize = 1. Actual radius scales with the cube root of actual biomass and inverse cube root of dish volume. Depth thickness is computed separately; cilia, flagella and glow are decorative. The solver uses ellipsoid clearance in XYZ and swept contact.
| Family | ID | XY radius | Z radius | Thrust coefficient | Upkeep / s | Actual resource / prey |
|---|---|---|---|---|---|---|
| Flagellated algae | flagellar-alga | 0.02900 | 0.03970 | 6.300e-8 | 0.2063 | light and dissolved mineral |
| Glassmouth ciliate | ciliate-grazer | 0.03100 | 0.04244 | 0.000005280 | 0.2711 | living algae |
| Greater herbivorous flagellate | herbivorous-flagellate | 0.05200 | 0.07119 | 0.000002400 | 0.2711 | living algae |
| Raptorial ciliate | raptorial-ciliate | 0.04700 | 0.06435 | 0.000005700 | 0.2711 | living ciliates, herbivorous flagellates and omnivores |
| Apex hunter | apex-ciliate | 0.06100 | 0.08351 | 0.000003600 | 0.3811 | raptorial ciliates, omnivores and crawlers; smaller same-family prey only with cannibalism ≥0.55 |
| Mosaicmouth omnivore | omnivorous-ciliate | 0.04900 | 0.06708 | 0.000005400 | 0.3311 | algae, herbivores and carrion |
| Widejaw hunter | openwater-hunter | 0.06700 | 0.09173 | 0.000006300 | 0.4511 | herbivores and hunters; smaller same-family prey only with cannibalism ≥0.55 |
| Amoeba hunter | floor-ciliate-hunter | 0.04800 | 0.06571 | 0.000007200 | 0.4211 | amoeboid crawlers |
| Amoeboid crawler | amoeboid-prototype | 0.02900 | 0.03970 | 5.250e-8 | 0.09000 | floor corpses and detritus |
| Surface glider · development seed | surface-glider-prototype | 0.02900 | 0.03970 | 5.250e-8 | 0.09000 | light and mineral; development seed |
| Passive drifter · development seed | passive-drifter-prototype | 0.02900 | 0.03970 | 0.000 | 0.09000 | light and mineral; development seed |
| Attached contractile cell · development seed | contractile-prototype | 0.02900 | 0.03970 | 9.000e-8 | 0.09000 | light and mineral; high-contractility variants may collect suspended detritus |
Flagellated algaesupported · flagellum
light and dissolved mineral. binary fission. Habitat: open water. Chassis status: supported.
| Default target mineral mass | 1.000 | Body radius / depth radius | 0.02900 / 0.03970 |
|---|---|---|---|
| Thrust / basal upkeep | 6.300e-8 / 0.2063 energy per simulated second | Active movement cost | 0.04550 energy per simulated second at full modeled effort |
| Mouth / capacity | No mouth ratio / No vacuole | Sensing radius | — at volume 1 where applicable |
| Propagule machinery | Off at default genes | Source symbols | model.js:phenotype, physical.js:bodyRadius |
Glassmouth ciliatesupported · cilia
living algae. binary fission. Habitat: open water. Chassis status: supported.
| Default target mineral mass | 1.000 | Body radius / depth radius | 0.03100 / 0.04244 |
|---|---|---|---|
| Thrust / basal upkeep | 0.000005280 / 0.2711 energy per simulated second | Active movement cost | 0.09600 energy per simulated second at full modeled effort |
| Mouth / capacity | 1.300 / 1.740 | Sensing radius | 0.1700 at volume 1 where applicable |
| Propagule machinery | Off at default genes | Source symbols | model.js:phenotype, physical.js:bodyRadius |
Greater herbivorous flagellatesupported · flagellum
living algae. binary fission. Habitat: open water. Chassis status: supported.
| Default target mineral mass | 1.000 | Body radius / depth radius | 0.05200 / 0.07119 |
|---|---|---|---|
| Thrust / basal upkeep | 0.000002400 / 0.2711 energy per simulated second | Active movement cost | 0.09600 energy per simulated second at full modeled effort |
| Mouth / capacity | 1.300 / 1.740 | Sensing radius | 0.1700 at volume 1 where applicable |
| Propagule machinery | Off at default genes | Source symbols | model.js:phenotype, physical.js:bodyRadius |
Raptorial ciliatesupported · cilia
living ciliates, herbivorous flagellates and omnivores. binary fission. Habitat: open water. Chassis status: supported.
| Default target mineral mass | 1.000 | Body radius / depth radius | 0.04700 / 0.06435 |
|---|---|---|---|
| Thrust / basal upkeep | 0.000005700 / 0.2711 energy per simulated second | Active movement cost | 0.09600 energy per simulated second at full modeled effort |
| Mouth / capacity | 1.300 / 2.520 | Sensing radius | 0.1700 at volume 1 where applicable |
| Propagule machinery | Off at default genes | Source symbols | model.js:phenotype, physical.js:bodyRadius |
Apex huntersupported · cilia
raptorial ciliates, omnivores and crawlers; smaller same-family prey only with cannibalism ≥0.55. binary fission. Habitat: open water. Chassis status: supported.
| Default target mineral mass | 1.000 | Body radius / depth radius | 0.06100 / 0.08351 |
|---|---|---|---|
| Thrust / basal upkeep | 0.000003600 / 0.3811 energy per simulated second | Active movement cost | 0.1200 energy per simulated second at full modeled effort |
| Mouth / capacity | 1.300 / 3.360 | Sensing radius | 0.1700 at volume 1 where applicable |
| Propagule machinery | Off at default genes | Source symbols | model.js:phenotype, physical.js:bodyRadius |
Mosaicmouth omnivoresupported · cilia
algae, herbivores and carrion. binary fission. Habitat: open water. Chassis status: supported.
| Default target mineral mass | 1.000 | Body radius / depth radius | 0.04900 / 0.06708 |
|---|---|---|---|
| Thrust / basal upkeep | 0.000005400 / 0.3311 energy per simulated second | Active movement cost | 0.09600 energy per simulated second at full modeled effort |
| Mouth / capacity | 1.300 / 2.640 | Sensing radius | 0.1700 at volume 1 where applicable |
| Propagule machinery | Off at default genes | Source symbols | model.js:phenotype, physical.js:bodyRadius |
Widejaw huntersupported · cilia
herbivores and hunters; smaller same-family prey only with cannibalism ≥0.55. binary fission. Habitat: open water. Chassis status: supported.
| Default target mineral mass | 1.000 | Body radius / depth radius | 0.06700 / 0.09173 |
|---|---|---|---|
| Thrust / basal upkeep | 0.000006300 / 0.4511 energy per simulated second | Active movement cost | 0.1500 energy per simulated second at full modeled effort |
| Mouth / capacity | 1.300 / 8.000 | Sensing radius | 0.1700 at volume 1 where applicable |
| Propagule machinery | Off at default genes | Source symbols | model.js:phenotype, physical.js:bodyRadius |
Amoeba huntersupported · cilia
amoeboid crawlers. binary fission. Habitat: floor-associated. Chassis status: supported.
| Default target mineral mass | 1.000 | Body radius / depth radius | 0.04800 / 0.06571 |
|---|---|---|---|
| Thrust / basal upkeep | 0.000007200 / 0.4211 energy per simulated second | Active movement cost | 0.1320 energy per simulated second at full modeled effort |
| Mouth / capacity | 1.300 / 2.880 | Sensing radius | 0.1700 at volume 1 where applicable |
| Propagule machinery | Off at default genes | Source symbols | model.js:phenotype, physical.js:bodyRadius |
Amoeboid crawlerexperimental · amoeboid
floor corpses and detritus. binary fission. Habitat: floor-associated. Chassis status: experimental.
| Default target mineral mass | 1.000 | Body radius / depth radius | 0.02900 / 0.03970 |
|---|---|---|---|
| Thrust / basal upkeep | 5.250e-8 / 0.09000 energy per simulated second | Active movement cost | 0.03500 energy per simulated second at full modeled effort |
| Mouth / capacity | No mouth ratio / No vacuole | Sensing radius | — at volume 1 where applicable |
| Propagule machinery | Off at default genes | Source symbols | model.js:phenotype, physical.js:bodyRadius |
Surface glider · development seedexperimental · glider
light and mineral; development seed. binary fission. Habitat: floor-associated. Chassis status: experimental.
| Default target mineral mass | 1.000 | Body radius / depth radius | 0.02900 / 0.03970 |
|---|---|---|---|
| Thrust / basal upkeep | 5.250e-8 / 0.09000 energy per simulated second | Active movement cost | 0.03500 energy per simulated second at full modeled effort |
| Mouth / capacity | No mouth ratio / No vacuole | Sensing radius | — at volume 1 where applicable |
| Propagule machinery | Off at default genes | Source symbols | model.js:phenotype, physical.js:bodyRadius |
Passive drifter · development seedexperimental · drift
light and mineral; development seed. binary fission. Habitat: open water. Chassis status: experimental.
| Default target mineral mass | 1.000 | Body radius / depth radius | 0.02900 / 0.03970 |
|---|---|---|---|
| Thrust / basal upkeep | 0.000 / 0.09000 energy per simulated second | Active movement cost | 0.000 energy per simulated second at full modeled effort |
| Mouth / capacity | No mouth ratio / No vacuole | Sensing radius | — at volume 1 where applicable |
| Propagule machinery | Off at default genes | Source symbols | model.js:phenotype, physical.js:bodyRadius |
Attached contractile cell · development seedexperimental · contractile
light and mineral; high-contractility variants may collect suspended detritus. binary fission. Habitat: anchored. Chassis status: experimental.
| Default target mineral mass | 1.000 | Body radius / depth radius | 0.02900 / 0.03970 |
|---|---|---|---|
| Thrust / basal upkeep | 9.000e-8 / 0.09000 energy per simulated second | Active movement cost | 0.06000 energy per simulated second at full modeled effort |
| Mouth / capacity | No mouth ratio / No vacuole | Sensing radius | — at volume 1 where applicable |
| Propagule machinery | Off at default genes | Source symbols | model.js:phenotype, physical.js:bodyRadius |
Core expression and geometry
These rules are shown in their code units. A registry gene’s relative value enters one or more equations; it is never a temporary energy or body-mass store. View focus and zoom are observer settings.
| Rule | Equation or condition | Unit | Source |
|---|---|---|---|
structuralMass | bodySize^3 × (alga ? biomassDensity × (1 + 0.1 × storageInvestment) : 1) × (1 + 0.035 × sensorCost) | modeled mineral mass | model.js:structuralMass |
bodyRadius | mature phenotype radius × cbrt(actual biomass / structuralMass) / cbrt(clamped dish volume) | normalized XY dish width | physical.js:bodyRadius |
bodyDepthRadius | (0.46 / 7) × bodyRadius / 0.048 | normalized Z | physical.js:bodyDepth |
bodyContact | sqrt((Δx/(r1+r2))² + (Δy/(r1+r2))² + (Δz/(depth1+depth2))²); overlap below 1 − 0.0001 | dimensionless | physical.js:bodyMetric |
consumerMouth | prey actual radius ≤ hunter phenotype radius × feedingAperture; prey biomass must fit remaining vacuole and meal energy must fit 200 − stored meal energy; bite reach is family-specific and can be blocked by other bodies | normalized radius and modeled mass | grazer.js:edible/biteContact |
fuelTaper | log1p(9 × clamp(energy / slowdownThreshold,0,1)) / log(10) | fraction of active thrust | model.js:movementFuelFactor |
temperature | max(0,1 − abs(temperature − thermalOptimum) / 25) | gain multiplier | model.js:step |
photosynthesis | photoCapacity × light/(20+light) × nutrient/(0.35+nutrient) × nutrientCapacity × temperatureFactor × dt; actual gain also needs finite mineral withdrawal at 0.4 mass per energy | modeled energy per step | model.js:step |
lamp | full-field exp(−turbidity × depth); narrow beam additionally uses pitch/azimuth, inverse-square distance, smoothstep edge and water path attenuation | fraction of lamp intensity | ecology.js:lightTransmission |
mutation | for each locus independently, Bernoulli(mutationRate); delta uniform in [−0.06,0.06] × allele span; clamp or circular-wrap; unchanged draws are not recorded | allele units | population.js:mutateGenome |
What controllers decide
Consumer sensory updates run at 200 ms intervals and retain last-seen positions for up to 1800 ms. Threat, contact, satiation, cooldown, eligible local prey, carrion and recent sighting compete in that order in grazer.js:stepGrazer. Hunger goals differ by family. The sensor records local observations; the observer may see more of the dish. Chemical concentration does not reveal a source path, and blocked approaches can be abandoned.
Algae sample local light and mineral probes every 200 ms, mark the limiting input, then turn toward improving samples or explore. Prototype chassis use separate locomotion and resource paths; some remain development seeds. See controller metadata for source symbols and null values where no unified priority rule exists.
Resource flows
| Source | Operation | Destination | Loss / cap |
|---|---|---|---|
| Dissolved mineral + lamp | Algal photosynthesis and mineral withdrawal | Usable energy and growing body | 0.4 mineral mass per modeled energy gain; gain saturates with light and nutrient |
| Usable energy | Basal upkeep and active movement | Modeled sink | Fuel taper reduces active effort at low energy; upkeep remains |
| Surplus usable energy | Reserve charge | Stored reserve | 80% conversion; later mobilization yields 85% |
| Parent body and fuel | Gamete or spore release | Finite propagule | Release and particle caps; expired mass returns to medium |
| Prey body and stored energy | Physical capture and digestion | Hunter vacuole, fuel and detritus | Diet, mouth, vacancy, handling and obstruction gates |
Environment control ranges
These are UI input bounds and initial control values from index.cfm. A loaded dish may contain different current settings. All space, mass and energy units are artificial. Camera focus and zoom do not alter biology. The control table is a reference, not an import contract. New dish feature defaults: chemicalCues: on, contactExchange: on, fusionPropagules: on, acquiredDna: on, toxicEffects: on, algaeCommunication: on.
| Control ID | UI bounds | Step | Initial value |
|---|---|---|---|
volume | 1–1000 | 1 | 200 |
cell-limit | 1–512 | 1 | 128 |
support-limit | 0–100 | 5 | 25 |
mutation-rate | 0–100 | 1 | 12 |
temperature | 5–40 | 1 | 22 |
nutrients | 0–100 | 1 | 55 |
drift | 0–100 | 1 | 35 |
auto-current-strength | 0–100 | 1 | 45 |
auto-nutrient-amount | 0–24 | 1 | 12 |
light | 0–100 | 1 | 68 |
beamDiameter | 10–100 | 1 | 100 |
pitch | 0–60 | 1 | 0 |
azimuth | 0–360 | 1 | 0 |
cycle-period | 10–3600 | 10 | 120 |
cycle-duty | 0–100 | 5 | 50 |
cycle-fade | 0–300 | 5 | 10 |
cycle-phase | 0–99 | 1 | 0 |
turbidity | 0–8 | 0.1 | 1 |
Temperature is °C; volume is a relative multiplier; other percentage sliders are 0–100 unless identified by their own unit. Cycle period and fade inputs are seconds in the UI and milliseconds in state. New dishes use automatic nutrient additions by default; current pulses are off until enabled. See environment defaults for the state representation.
Reproduction thresholds
Fission first checks family support, population and support-species caps, age, 1.4× mature body mass, fuel and recent algal surplus. It then searches up to 16 physical daughter placements before spending the 3-energy division cost; parent body and remaining fuel split between daughters. Mutation is sampled independently per locus in each daughter.
| Family | Minimum age | Minimum fuel | Minimum body mass |
|---|---|---|---|
| Flagellated algae | 30s / divisionTempo | 25 | 1.4 × mature structural mass |
| Glassmouth ciliate | 50s / divisionTempo | 55 | 1.4 × mature structural mass |
| Greater herbivorous flagellate | 45s / divisionTempo | 55 | 1.4 × mature structural mass |
| Raptorial ciliate | 65s / divisionTempo | 65 | 1.4 × mature structural mass |
| Apex hunter | 100s / divisionTempo | 75 | 1.4 × mature structural mass |
| Mosaicmouth omnivore | 80s / divisionTempo | 65 | 1.4 × mature structural mass |
| Widejaw hunter | 110s / divisionTempo | 85 | 1.4 × mature structural mass |
| Amoeba hunter | 100s / divisionTempo | 80 | 1.4 × mature structural mass |
| Amoeboid crawler | 100s / divisionTempo | 40 | 1.4 × mature structural mass |
| Surface glider · development seed | 100s / divisionTempo | 40 | 1.4 × mature structural mass |
| Passive drifter · development seed | 100s / divisionTempo | 40 | 1.4 × mature structural mass |
| Attached contractile cell · development seed | 100s / divisionTempo | 40 | 1.4 × mature structural mass |
Contact exchange requires two distinct mature algae with crossAffinity ≥0.5, at least 50 fuel and 1.2 seconds of actual XYZ contact, with no contact gap longer than 240 ms. Each parent spends 2 fuel and keeps a partner genome commitment for a later daughter.
Gamete parents require fusionCapacity ≥0.7, crossAffinity ≥0.5, age ≥30 s, mass ≥1.15× mature mass + 0.20 and fuel ≥30. They spend 0.20 mass and 10 fuel for a 45-second gamete. Opposite mating types (matingType <0.5 versus ≥0.5), different parents, five-second age and XYZ encounter within 0.02 physical units are needed for fusion. The zygote recovers eight seconds before ordinary development.
Crawler spores require sporeInvestment ≥0.7, age ≥30 s, mass ≥1.15× mature mass + 0.25 and fuel ≥32. A release spends 0.25 mass and 12 fuel for a 90-second asexual spore. Germination needs five seconds of viability, local organic field ≥0.002, physical room, a cell slot and support-species slot. The shared particle cap is 128. Expiry deposits remaining particle mass to the nutrient medium. These mechanisms require the Fusion/propagules feature toggle.
Chemical channels
These are field packets with distinct channel and group identities. Concentration samples are local, divided by dish volume and gated by receptor sensitivity. A receptor detects a gradient, not emitter identity or a stored path. Paid release transfers body mass plus 20 energy per mass; toxin release transfers a previously synthesized store. Passive food and rot odors transfer accounted material without active secretion energy. Packets advect with current, random-walk, widen and decay into nutrient material. The 256-packet cap merges compatible nearby packets where possible; other release is blocked before charging the source.
| Channel | Trigger | Emitter gate | Receptor gate | Resource | Lifetime / decay |
|---|---|---|---|---|---|
mate | living compatible alga; secretion on mating-readiness event | alga group, chemicalSense ≥0.2, crossAffinity ≥0.5 | same alga group and receptor gate | paid body mass + 20 energy per mass | 30000 ms / τ 18000 ms |
aversive | threatened living cell with chemicalSense and disturbanceSense | chemicalSense ≥0.2, disturbanceSense ≥0.3 | chemicalSense ≥0.2, disturbanceSense ≥0.3 | paid body mass + 20 energy per mass | 12000 ms / τ 7500 ms |
kin | moving social cell, flocking ≥0.35 and fuel ≥35; residual 0.000045 mass/s | chemicalSense ≥0.2, flocking ≥0.35 | same family, chemicalSense ≥0.2, flocking ≥0.35 | paid body mass + 20 energy per mass | 10000 ms / τ 7500 ms |
food | fed living body passive odor or finite body release | chemicalSense ≥0.2 and eligible fed state | foodCueGroups includes source family | passive odor transferred from accounted body; active release paid | 14000 ms / τ 7500 ms |
rot | corpse decay proportional to accounted remains | passive corpse budget | crawler or omnivore, carrion group, chemicalSense ≥0.2 | no active secretion cost; comes from corpse mass | 20000 ms / τ 7500 ms |
toxin-irritant | threat/contact burst from finite toxin store | toxinSynthesis ≥0.5 and toxinRelease ≥0.5 | chemicalSense ≥0.2 and disturbanceSense; dose physiology separate | prepaid toxin store; no residual toxin default | 12000 ms / τ 7500 ms |
toxin-motor | prey/contact burst from finite toxin store | toxinSynthesis ≥0.5 and toxinRelease ≥0.5 | chemicalSense ≥0.2 and disturbanceSense; dose physiology separate | prepaid toxin store; no residual toxin default | 14000 ms / τ 7500 ms |
toxin-sensory | prey/contact burst from finite toxin store | toxinSynthesis ≥0.5 and toxinRelease ≥0.5 | chemicalSense ≥0.2 and disturbanceSense; dose physiology separate | prepaid toxin store; no residual toxin default | 14000 ms / τ 7500 ms |
alga-warning | algal disturbance | alga, chemicalSense ≥0.2, disturbanceSense ≥0.4 | alga with chemicalSense ≥0.2; weighted by disturbanceSense | paid body mass + 20 energy per mass | 9000 ms / τ 7500 ms |
alga-surplus | sustained surplus with hysteresis then taper; residual trajectory release | alga, chemicalSense ≥0.2, photosyntheticInvestment ≥0.6 | alga with chemicalSense ≥0.2; weighted by photosyntheticInvestment | paid body mass + 20 energy per mass | 16000 ms / τ 7500 ms |
Detection threshold is 0.00000015/max(1,volume) for food and rot, and 0.000001/max(1,volume) for other channels. Toxin dose, resistance and clearance are physiological processes after field detection. Individual response may be neutral even when a sample registers.
What this reference cannot predict
No static genotype determines a net energy or survival score without local food, movement history, light, encounters and competition. Contact shapes approximate bodies; an elongated cell does not have a deformable mesh. At the default mutation rate 0.12 per locus, a 46-locus alga expects 5.52 attempted perturbations per daughter; unchanged or clamped results reduce the changed-locus count. Looping scent trails, moving obstacles and depth routes can defeat simple pursuit. The catalog’s habitat label describes a usual setting, not a viability guarantee.