Hacking apgsearch

For scripts to aid with computation or simulation in cellular automata.
User avatar
PK22
Posts: 629
Joined: January 25th, 2025, 11:38 am
Location: United Kingdom
Contact:

Re: Question about contributing to Catagolue from a browser (WASM) client

Post by PK22 »

KGNINJA wrote: October 20th, 2026, 10:41 am (...)

My questions:
1. Is it acceptable to submit hauls from an unofficial WASM build? If so, what would you require (e.g. matching versions, test vectors, a specific payosha256 key, or a distinct client name)?
2. Which rule/symmetry would be most useful for a crowd of many small, short-lived browser sessions?
3. Is there a minimum haul size? Would it be OK for my server to combine many small sessions' results into one haul, or should each browser submit directly?
4. How should verification work in this setup? Can browser clients take part in peer verification?
5. Licensing: is lifelib under the MIT licence, and how would you like it credited?

(...)
Answers to the best of my knowledge:
  1. If you are using an unofficial build, I would recommend uploading to a separate symmetry (e.g something like "wasm_test_b3s23_C1"), and I would recommend using a specific payosha256 key (if you can find a way to just include the hash in the source code, since keys should generally be kept private), as well as a unique client version.
  2. Probably b3s23/C1, but feel free to experiment!
  3. The minimum haul size is 500,000 soups or 10,000,000 objects for 'official' symmetries in Life, and 5000 objects or 100000 objects for anything else which doesn't have 'stdin' in the name. Aggregating results might be difficult and I wouldn't recommend it, although larger, fewer hauls does reduce time and cost on Catagolue's end, so if you can find a way to do it without breaking things, go for it.
  4. Modified clients should generally have peer verification disabled, but getting the browser hauls verified is only relevant if you upload to official symmetries. If you are, it's much easier to just let the powerful searchers handle verification.
  5. Lifelib is under the MIT license. The repo is here, but as with the above response, I would recommend basing things on speedydelete's apgweb.
You might also be interested in the discussion of 'apgacha', which sounds pretty similar to what you're planning - a game to encourage people to contribute to Catagolue.
User:PK22
Learning miscellaneous programming languages.
User avatar
speedydelete
Posts: 132
Joined: October 7th, 2025, 9:44 pm
Contact:

Re: Question about contributing to Catagolue from a browser (WASM) client

Post by speedydelete »

PK22 wrote: October 20th, 2026, 11:06 am I would recommend basing things on speedydelete's apgweb.
I wouldn't recommend doing that, at least for a few months. It's quite outdated and extremely slow, broken, and unoptimized, primarily due to being written in TypeScript and being run as JS, not as wasm. It did work at some point, but I've stopped maintaining it... It never worked particularly well anyway. I'm working on "lifeweb v2" which will be a much improved version designed to be the "ultimate" browser CA library, it will use wasm. But, for this game, I would still recommend compiling apgsearch to wasm even when lifeweb v2 is finished.

Now, compiling apgsearch to wasm is nontrivial due to its use of inline assembly to access SIMD instructions, but it shouldn't be too hard to rewrite it to be like Golly's QuickLife algorithm, which is definitely portable to the web.
I manage the 5S project, which collects all known spaceship speeds in certain rulespaces.
Post Reply