Crossing
The public breeding path, in which a visitor names two organisms already shown and the lab breeds a child from them with its free operators.
Crossing is the public breeding path: a visitor names two organisms the Rorschach Lab has already shown, and the lab breeds a child from them on the spot. The request carries two integer ids and no source code, so nothing a visitor writes can enter the population. The child is born unproven and stays off every public surface until a browser has drawn it.
The request
A cross is a POST to /api/pub/cross carrying a track name, two organism ids, and optionally a pool
id. There is no field for code and no model call anywhere on the path; the public module imports the
operators and the validator directly rather than importing the breeding daemon, so the model client
is never pulled onto the public surface behind them. A visitor supplies the choice of parents, and
the lab supplies every byte of the genome.
Only the shader track is published, so a cross is always a shader cross.
The arena page sends the two ids of the pair currently on screen, and adds the pool id whenever the pool selector is set to something other than the whole ecosystem. A cross casts no vote and does not advance to the next pair: the child opens in an overlay over the same two parents, which stays up until it is closed or Escape is pressed.
Free operators
A cross may use the three free operators, the ones that recombine or perturb existing source without a model call. What each does to a genome is set out under breeding; on this path they are tried in a fixed order and the first that returns a child wins.
| Order | Operator | Returns nothing when |
|---|---|---|
| 1 | splice | Either parent defines fewer than two functions, or no shared locus differs. main() is never a candidate, and loci identical apart from whitespace are skipped. |
| 2 | graft | The second parent defines no function the first parent lacks. |
| 3 | jitter | No literal was touched. |
A public jitter is run at its own strength: the selection rate is drawn between 0.15 and 0.45 and
the range between 25% and 60%.
The operator that succeeded is stored on the child and becomes its class in the taxonomy. The operators that call a model are reserved to the daemon; no path reachable without a credential can invoke one.
Cost and cap
A cross is the most expensive public request there is, costing 8 tokens against the per-client token bucket judging sets out, where a vote costs 1 and the bucket holds 60.
Beyond the bucket, visitor births are capped at 30 per UTC day. The cap is a single global counter, not a per-client allowance: one row in the key-value table keyed by the UTC date. It is read before the cross is attempted and raised only after a child has actually been inserted, so a refused cross costs the day nothing. The rate limiter bounds the rate at which one script reaches the pool; the cap is the ceiling on how much of the population’s turnover anonymous visitors can account for in a day.
Refusals
The checks run in order, and the first that fails ends the request:
- the named track is not published
- the two ids are the same organism
- the day’s counter has reached the cap
- either id is not a living, rendered, error-free organism of that track, which is the same visibility filter pairing applies, so a visitor can only cross what could have been shown
- the request named a pool and either parent’s phylum is not that pool
- none of the three operators applies to the two parents
- the child fails the contract
- the child is byte-identical to either parent
- the child would join a clone family already at its cap
The last check counts living organisms within token distance of the child and refuses at the same radius and family size the daemon enforces. A visitor cross is most often a jitter, and a jitter child is token-identical to its parent, so without it the public surface would refill the clone families diversity work has just purged.
Refusals reach the page as their own text, shown beside the button and cleared after four seconds. The pair remains on screen.
The child’s record
| Field | Value |
|---|---|
op | the operator that produced the child |
parents | both parent ids, the first named id first |
gen | one greater than the higher of the two parent generations |
rating | the mean of the two parents’ owner ratings |
title | the first parent’s title |
prompt_id | the first parent’s prompt gene |
origin | visitor |
render_ok | 0 |
Lineage is walked through the first entry in parents, so a visitor child joins the first named
parent’s phylum. The origin value is what the gallery’s visitor-bred
view filters on, and it is the only column that distinguishes a visitor child from a lab-bred one
afterwards.
Proving and admission
An organism with render_ok at 0 is excluded from pairing, from the gallery and from being crossed
again, so a visitor child reaches no public surface at birth.
The child is dealt to its own creator as a canary the moment it is inserted, which makes the creator’s browser its first prover. The overlay compiles and draws it, and the page reports the outcome on the canary terms the contract sets out. Neither report can kill it, which death reaches only through the owner’s own path.
Once proven, the child is an ordinary member of the population. It is dealt in pairs and judged, it ranks by the same blended fitness selection reads, it is eligible as a parent for the daemon and for further visitor crosses, it appears in the gallery, and it is culled on the same terms as everything else.
Bound to
The source this page's claims were read against, named by symbol and pinned by the digest of the file it lives in.
| Symbol | Digest |
|---|---|
| db.js | 193eb96a460a |
| lab.config.json | a095dd3b3dab |
| OPERATORS | 2135902ed4dc |
| publicCross | f14fffef049d |
| rorschach.astro | b439b3c1f84b |
| server.js | 2ee5143085a9 |
What links here
- Death sends readers here
- Diversity sends readers here
- Judging sends readers here
- Organisms sends readers here
- Taxonomy sends readers here
- The contract sends readers here
- The gallery sends readers here
- The Rorschach Lab sends readers here
Near this subject
These are the subjects this one is joined to in the field. Step out of this card and they are the wells around the one you are standing in.
- Judging each sends you to the other
- Diversity each sends you to the other
- Death each sends you to the other
- Organisms each sends you to the other
- The contract each sends you to the other
- Taxonomy each sends you to the other
- The gallery each sends you to the other
- The Rorschach Lab each sends you to the other
- Breeding this page sends you there
- Selection this page sends you there