GeneSearch
Loading WebAssembly module…
FAQ
Does order matter?
Yes. Just plant clones in order from top to bottom.
Row/col positions?
This is just to help if you have clones in a container: Assuming you input the clone list in row order (ie: the first 6 clones are the first row, the next 6 are the 2nd row, etc.) you can quickly locate the clone in the container using this.
Can I save plans?
Not directly, but after searching the URL is updated with the results. You can copy or bookmark this to navigate to a specific plan without recalculating later. This is still in heavy development so there is no guarantee of backwards compat if there are updates so don't get mad at me if it breaks.
Does this site record my data?
Other than whatever Cloudflare gathers by default no. It's a static site and the calculations run inside your own browser on your own computer.
Is this vibe-coded?
The frontend/web site is. I'm still working on the core algo (written in Zig -> WASM) and plan to make a real site in the future. Sorry the site has that vibe slop aesthetic. I hate it too ¯\_(ツ)_/¯
How does this algo differ from rustbreeder?
TLDR: When what you want is a specific gene sequence (or family, like "3G3Y"), this finds a plan in seconds that rustbreeder may never find. Sets of clones that took me 45+ minutes in rustbreeder on my workstation to find an 11 step breeding plan will find a 5 step plan in 10 seconds on my phone.
rustbreeder searches forward using a beam search. For each generation, it generates a bunch of breeding combinations and carries forward the "best" results into the next generation to repeat the search.
This site is essentially the opposite: given a target, it searches backward to find the most efficient dependency tree. It tries to find a breeding plan with the fewest intermediates (least number of clones you need to breed), followed by the fewest generations (shallowest dependency chain, so you can parallelize your planting), and finally prefer any-center breeds (so you can use high-G center clones).
There are also low-level improvements: instead of being written in JavaScript, the core algorithm is written in Zig (a system programming language) and compiled into WebAssembly. In addition to being faster to run, it is able to take advantage of SIMD to run math faster, store search data in cache-friendly ways, and utilize memory allocation in a more performant way.
Source code?
Not now, but I will release it in the future (probably agpl). It's embarassingly messy right now.