Previous title: "Web apgsearch (apgweb)"
It is finally (partially) complete, check it out at https://speedydelete.com/apgweb.
There are several bugs in object separation, so don't expect it to be reliable.
Should support all non-B0 INT rules.
Much slower than normal apgsearch (working on it!).
Does not upload to Catagolue.
lifeweb search programs
- speedydelete
- Posts: 113
- Joined: October 7th, 2025, 9:44 pm
- Contact:
lifeweb search programs
Last edited by speedydelete on December 14th, 2025, 9:06 pm, edited 2 times in total.
I manage the 5S project, which collects all known spaceship speeds in certain rulespaces.
Re: Web apgsearch (apgweb)
Dumping some search results:
Also, can you add a "save" button so you can save the search results as a file, and make the soup RLEs a part of the search results when downloading a file?
Code: Select all
Using seed k_2BetkYVsPfi7
b3s23/C1: 30 soups completed (4.154 soups/second current, 4.154 overall).
@VERSION apgweb-beta-v0.2
@MD5 5b44704b4ce3343a94893c70c0270ffc
@ROOT k_2BetkYVsPfi7
@RULE b3s23
@SYMMETRY C1_web_test
@NUM_SOUPS 30
@NUM_OBJECTS 560
@CENSUS TABLE
xs4_33 177
xp2_7 154
xs6_696 102
xq4_153 47
xs7_2596 27
xs5_253 22
xs6_356 17
xs4_252 7
xs7_25ac 3
xs12_g8o653z11 2
xs8_6996 2
@SAMPLE_SOUPIDS
xs4_33 0 1 2 3 4 6 7 8 9 11
xp2_7 0 1 2 3 4 5 6 7 8 9
xs6_696 0 2 3 5 7 8 9 10 11 13
xq4_153 0 1 2 3 5 6 7 8 9 11
xs7_2596 0 3 4 5 8 11 12 13 14 16
xs5_253 3 4 8 11 16 20 21 22 23 25
xs6_356 0 1 3 6 8 16 19 20 21 22
xs4_252 3 8 11 28 29
xs7_25ac 3 16 19
xs12_g8o653z11 16
xs8_6996 20 26Can't trust someone who misspells typset as typeset.
Contribute to CheckerLife!
Oppose KOSA now, save the internet!
The Sandboxer Sandbox (Discord server)
RIP Unname New Web
Contribute to CheckerLife!
Oppose KOSA now, save the internet!
The Sandboxer Sandbox (Discord server)
RIP Unname New Web
- speedydelete
- Posts: 113
- Joined: October 7th, 2025, 9:44 pm
- Contact:
Re: Web apgsearch (apgweb)
I've implemented 1x256, 2x128, 4x64, 8x32, and inflated symmetries (the C and D symmetries were already supported). Also, object seperation is hopefully fixed completely!
Also, I added the download button.hth3 wrote: November 9th, 2025, 5:52 am Also, can you add a "save" button so you can save the search results as a file, and make the soup RLEs a part of the search results when downloading a file?
I manage the 5S project, which collects all known spaceship speeds in certain rulespaces.
Re: Web apgsearch (apgweb)
Sorry if I'm being annoying, but when this?hth3 wrote: November 9th, 2025, 5:52 am ... make the soup RLEs a part of the search results [optionally] when downloading a file?
Can't trust someone who misspells typset as typeset.
Contribute to CheckerLife!
Oppose KOSA now, save the internet!
The Sandboxer Sandbox (Discord server)
RIP Unname New Web
Contribute to CheckerLife!
Oppose KOSA now, save the internet!
The Sandboxer Sandbox (Discord server)
RIP Unname New Web
- b-engine
- Posts: 3762
- Joined: October 26th, 2023, 4:11 am
- Location: Somewhere on where Earth At
- Contact:
Re: Web apgsearch (apgweb)
Is this the source code of apgmera compiled to WebAssembly, or JavaScript port of apgmera?
Try INT Minesweeper
- speedydelete
- Posts: 113
- Joined: October 7th, 2025, 9:44 pm
- Contact:
Re: Web apgsearch (apgweb)
I've made some quality of life updates and fixed a few bugs in object seperation. Also, the Node version (apgweb.mjs) can now upload to Catagolue! See https://catagolue.hatsya.com/census/b2- ... 1_web_test, that was the only rule that I could get to 10,000 on (it is somehow 3 times faster than apgsearch at that rule). I think changes to the Catagolue backend are required for the web version to be able to upload.
It is a completely new implementation of cellular automata in TypeScript combined with a soup searching algorithm similar to apgmera.b-engine wrote: November 11th, 2025, 9:43 am Is this the source code of apgmera compiled to WebAssembly, or JavaScript port of apgmera?
I've added it now! Sorry, I thought that the links would be what you were looking for.
I manage the 5S project, which collects all known spaceship speeds in certain rulespaces.
- speedydelete
- Posts: 113
- Joined: October 7th, 2025, 9:44 pm
- Contact:
Re: lifeweb search programs
RSS (Rulespace Search) is a new search program for searching rules in a rulespace, using apgsearch or apgweb. To install:
To use: ./rss <config file> <output file>. It can resume searches, so if you stop it midway through, it will use the provided output file to determine what needs to be searched next. The configuration file looks like this (this example searches all 2tfl rules):
Boolean options should either be true or false.
Basic options:
Code: Select all
git clone https://github.com/speedydelete/lifeweb
cd lifeweb
./install
Code: Select all
rule: B3/S23
transitions_from: 2
apgcode_filter: !xs, !xp[1-2]?[0-9]_, !xq4_153$, !xq4_6frc$
check: 50
maxpop: 4000
maxgen: 4000
apgsearch: 2000
timeout: 60
Basic options:
- rule - The rule to search using. Either this or both the min and max options must be provided.
- min, max - The minimum and maximum rule to search. It will search all rules within these.
- transitions_from - The number of transitions from each rule to also search. By default, this is disabled.
- transitions - A list of transitions to modify, such as B3c, S4q, S8. By default, it is all transitions except for B0, B1c, B1e, and B2a.
- include_transitions - Lets you modify the default transitions by adding more.
- exclude_transitions - Lets you remove some of the default transitions.
- outer_totalistic - Whether to only enumerate the-totalistic rules between the min and max options, not isotropic ones.
- force_transitions - Lets you force transitions to be in the rule. When combined with the outer_totalistic option, this lets you search non-OT variants of OT rules.
- apgcode_filter - Lets you exclude certain apgcodes. Provided as a comma-separated (with optional spaces) list of regexes matching apgcodes. It tries the regexes in order, if one of them matches, it drop report the apgcode. If one of them matches, but the regex starts with '!' (the '!' is stripped from the actual regex), it will immediately report the apgcode. The regexes try to match at the start of the string only. The output list of apgcodes is also sorted by frequency, with the most common apgcode appearing at the start.
- check - The number of soups to check. If not provided, checking is disabled.
- census - Whether to census soups using apgweb (note that apgweb is bad!). The results will be included with the apgsearch results. This may cause weird behavior and require manual stopping, I'm working on it. If you wish, you may ctrl-C the process and write "<rule name>: manually skipped", or any other indicator mark (but make sure you put a newline after the added line), and resume it, and it will skip the rule.
- explosive_filter - Whether to report soups that exceed the maxpop and maxgen limits as explosive, and moving on to the next rule. (Note that it is smart enough to stop on linear growth.) Rules dropped due to this option will be reported as "explosive (the number of the first explosive soup found)". You should probably use this option.
- maxpop - The maximum population (default infinity).
- maxgen - The maximum generation (default 120000).
- death_filter - Before censusing (if enabled), check if all the soups have died. If they have, don't census anything (boolean option). Rules dropped due to this option will be reported as "no objects".
- period_filter - Before censusing (if enabled), check if the population period matches one or more of the space-separated constraints, such as >5, <=10, or =4. # can be provided before a constraint to make it required. If it isn't, census the soup, if it is, skip the soup. Censusing soups can take a long time, so this can speed it up significantly.
- period_filter_linear_growth - By default, period_filter never skips linear growth, even if it doesn't match the population period.
- period_filter_stop_early - If true, it will stop checking soups early if anything succeeds in the period filter and move to censusing and then apgsearch. If the census option is provided, this could cause less than the number of soups in the check option to actually be checked!
- check_timeout: If provided, it will stop the checking process immediately after the given number of seconds and report it as "timed out", plus any apgcodes previously found with the census option. For now, this option is kind of stupid and does not work always.
- check_timeout_do_apgsearch_anyway: If provided, it will still run apgsearch even if the timeout is exceeded. This may cause explosive rules to be passed to apgsearch!
- apgsearch: The number of soups to run with apgsearch. If not provided, apgsearch will not be ran.
- timeout: If provided, after the given amount of seconds, if apgsearch has not finished, it will stop it. You should probably use this option. Rules dropped due to this option will be reported as "apgsearch timed out", plus any apgcodes found with the census option, if provided. The timeout interval does not include recompilation. Don't confuse it with the check_timeout option.
I manage the 5S project, which collects all known spaceship speeds in certain rulespaces.
- speedydelete
- Posts: 113
- Joined: October 7th, 2025, 9:44 pm
- Contact:
Re: lifeweb search programs
I've written bad (but they work!, I am improving them) slow salvo and single-channel (and multi-channel!) searching programs for arbitrary INT rules. Here's how to use them.
It represents slow salvos as lists of lane numbers. These look exactly the same as singe-channel recipes.
You need to configure it in the src/uc/config.ts file. I hope the options are self-explanatory. config_b3s23.ts is currently out of date, I will update it soon.
The main interface is in the "./uc" commands:
"./uc search ss <depth>" - Enumerates slow salvos up to that depth.
"./uc get ss <lanes>" - Enumerates slow salvos up to that depth.
"./uc from ss <rle file>" - Turn a slow salvo RLE into lane numbers.
These commands also work for the restricted-channel (single-/multi-channel) searches, just do like "./uc search 1hd" or whatever. You define custom names for restricted-channel setups in the config.ts file. For searching restricted-channel, you can also provide an additional maximum timing which helps speed it up. I am going to add proper search pruning soon.
It will write the full search results to (for example) recipes_b3s23.txt, and a filtered version (containing only the provided INTERMEDIATE_OBJECTS in the config) to recipes_b3s23_useful.txt.
It represents slow salvos as lists of lane numbers. These look exactly the same as singe-channel recipes.
You need to configure it in the src/uc/config.ts file. I hope the options are self-explanatory. config_b3s23.ts is currently out of date, I will update it soon.
The main interface is in the "./uc" commands:
"./uc search ss <depth>" - Enumerates slow salvos up to that depth.
"./uc get ss <lanes>" - Enumerates slow salvos up to that depth.
"./uc from ss <rle file>" - Turn a slow salvo RLE into lane numbers.
These commands also work for the restricted-channel (single-/multi-channel) searches, just do like "./uc search 1hd" or whatever. You define custom names for restricted-channel setups in the config.ts file. For searching restricted-channel, you can also provide an additional maximum timing which helps speed it up. I am going to add proper search pruning soon.
It will write the full search results to (for example) recipes_b3s23.txt, and a filtered version (containing only the provided INTERMEDIATE_OBJECTS in the config) to recipes_b3s23_useful.txt.
I manage the 5S project, which collects all known spaceship speeds in certain rulespaces.