A Javascript Cellular Automata Viewer
- silversmith
- Posts: 470
- Joined: June 15th, 2020, 6:20 pm
- Location: Pennsylvania, USA, Earth, Sector 5ff63D6
A Javascript Cellular Automata Viewer
I made a cellular automata viewer which is designed to be accessible and easy to use, mainly in cases where downloading proper software is not an option. It is not particularly powerful or versatile. It does support several formats, although I don't want to explain too much here with the goal of making the website self explanatory.
I am in the process of commenting my code to make it publicly available in the near future(though you could inspect the website itself or I can provide a raw version if requested). I would appreciate any suggestions and bug reports, and requests for features will be considered.
https://silversimulations.com/caplayer
I am in the process of commenting my code to make it publicly available in the near future(though you could inspect the website itself or I can provide a raw version if requested). I would appreciate any suggestions and bug reports, and requests for features will be considered.
https://silversimulations.com/caplayer
Last edited by silversmith on November 27th, 2022, 6:56 pm, edited 4 times in total.
- yujh
- Posts: 3154
- Joined: February 27th, 2020, 11:23 pm
- Location: I'm not sure where I am, so please tell me if you know
- Contact:
Re: A Javascript Cellular Automata Viewer
Umm...
It can’t detect gliders when searching
Probably it also stop after 2000 gens?
It can’t detect gliders when searching
Probably it also stop after 2000 gens?
Last edited by yujh on August 6th, 2023, 10:14 pm, edited 1 time in total.
- silversmith
- Posts: 470
- Joined: June 15th, 2020, 6:20 pm
- Location: Pennsylvania, USA, Earth, Sector 5ff63D6
Re: A Javascript Cellular Automata Viewer
Yeah the "search" is quite basic. I have not yet implemented a spaceship catching mechanism, so most rules need to be run in a toroidal universe when searching. The search also does not log any results, just resets when the entire grid becomes periodic with one of the periods provided.
The 2000 generation stop is a memory problem that I am currently working on.
Edit Dec 24, 2021:
The site is now at http://www.silversimulations.com/CAsim(depreciated)
The 2000 generation stop is a memory problem that I am currently working on.
Edit Dec 24, 2021:
The site is now at http://www.silversimulations.com/CAsim(depreciated)
- silversmith
- Posts: 470
- Joined: June 15th, 2020, 6:20 pm
- Location: Pennsylvania, USA, Earth, Sector 5ff63D6
Re: A Javascript Cellular Automata Viewer
I have finished remaking the core elements of this simulator with a new, much faster algorithm.
Supports:
-cut, copy, paste
-RLE export and import
-INT Generations rulespace
Planned:
-Pattern position enumeration
-More symmetries
https://silversimulations.com/arise
Edit April 3: fixed B0 Generations and added anti-strobing option
Edit April 12: Reworked existing automatic search options, and added a few more
Edit April 15: Added the option to automatically save search result RLEs
Supports:
-cut, copy, paste
-RLE export and import
-INT Generations rulespace
Planned:
-Pattern position enumeration
-More symmetries
https://silversimulations.com/arise
Edit April 3: fixed B0 Generations and added anti-strobing option
Edit April 12: Reworked existing automatic search options, and added a few more
Edit April 15: Added the option to automatically save search result RLEs
- silversmith
- Posts: 470
- Joined: June 15th, 2020, 6:20 pm
- Location: Pennsylvania, USA, Earth, Sector 5ff63D6
Re: A Javascript Cellular Automata Viewer
After implementing the ability to export the various simulation options, here is an example automated search, which finds various push, pull, and fire command salvos in the OCA rule B2ein3cijn4cnrwy5cnq6e/S1c2-ai3acny4anqy5c6ek8
https://silversimulations.com/arise/?v= ... progress,0
After the "Start" button is pressed the results will be output to the RLE box at the bottom of the page.
https://silversimulations.com/arise/?v= ... progress,0
After the "Start" button is pressed the results will be output to the RLE box at the bottom of the page.
- ihatecorderships
- Posts: 309
- Joined: April 11th, 2021, 12:54 pm
- Location: Falls Church, VA
Re: A Javascript Cellular Automata Viewer
Are these the correct options to search for random soups that settle into ash that is not p1, p2, or p4?
EDIT: I noticed that escaping gliders make the simulation always run to gen 2000. Is there a way to make universe toroidal?
EDIT: I noticed that escaping gliders make the simulation always run to gen 2000. Is there a way to make universe toroidal?
-- Kalan Warusa
Don't drink and drive, think and derive.
Don't drink and drive, think and derive.
- silversmith
- Posts: 470
- Joined: June 15th, 2020, 6:20 pm
- Location: Pennsylvania, USA, Earth, Sector 5ff63D6
Re: A Javascript Cellular Automata Viewer
Yes, those are the correct settings. The gliders cause the simulation run to gen 2000 because it does not yet have the ability to recognize them as being stable. I am considering fixing this by adding the option to detect when the population has stabilized.ihatecorderships wrote: May 26th, 2022, 8:49 am Are these the correct options to search for random soups that settle into ash that is not p1, p2, or p4?
EDIT: I noticed that escaping gliders make the simulation always run to gen 2000. Is there a way to make universe toroidal?
Toroidal universes are not currently supported.
- silversmith
- Posts: 470
- Joined: June 15th, 2020, 6:20 pm
- Location: Pennsylvania, USA, Earth, Sector 5ff63D6
Re: A Javascript Cellular Automata Viewer
Toroidal universes are now supported, along with finite(planar) universes.
They should work with existing features like B0 rules, search functions, and import/export.
They should work with existing features like B0 rules, search functions, and import/export.
- silversmith
- Posts: 470
- Joined: June 15th, 2020, 6:20 pm
- Location: Pennsylvania, USA, Earth, Sector 5ff63D6
Re: A Javascript Cellular Automata Viewer
I have added collaborative functionality to the program, where several people can work on the same pattern at once. Running the pattern is done locally, but you can reset it to see what changes have been made.
The multiplayer application is available here: https://collab.silversimulations.com/
Feel free to notify me of any issues or things you think might be missing.
The multiplayer application is available here: https://collab.silversimulations.com/
Feel free to notify me of any issues or things you think might be missing.
Re: A Javascript Cellular Automata Viewer
It doesn't look multiplayer to me, unless I was somehow the only one there.
User:HotdogPi/My discoveries
Periods discovered:
All evens ≤128 except 52,58,78,82,92,94,98,104,118,122
5-15,㉕-㉛,㉟㊺,51,63,65,73,75
1㊳㊵㊹㊼㊽,54,56,72,74,80,90,92
217,240,300,486,576
Guns: 20,21,32,54,55,57,114,117,124,126
SKOPs: 32,74,76,102,196
Periods discovered:
All evens ≤128 except 52,58,78,82,92,94,98,104,118,122
5-15,㉕-㉛,㉟㊺,51,63,65,73,75
1㊳㊵㊹㊼㊽,54,56,72,74,80,90,92
217,240,300,486,576
Guns: 20,21,32,54,55,57,114,117,124,126
SKOPs: 32,74,76,102,196
- silversmith
- Posts: 470
- Joined: June 15th, 2020, 6:20 pm
- Location: Pennsylvania, USA, Earth, Sector 5ff63D6
Re: A Javascript Cellular Automata Viewer
The website has roughly five views per week. You were likely the only person active.
- silversmith
- Posts: 470
- Joined: June 15th, 2020, 6:20 pm
- Location: Pennsylvania, USA, Earth, Sector 5ff63D6
Re: A Javascript Cellular Automata Viewer
I published a new release of this program, which should address some of the suggestions I received.
Besides bug fixes the changes include:
- Added LZ77 compression to patterns exported as a URL
- Added more options for searches
- Improved overall documentation
- Added setting to change the simulation speed
- Added mouse wheel zooming
- Added running an area for 1 generation
- Adjust amount of movement based on framerate
- Switched some key bindings
Besides bug fixes the changes include:
- Added LZ77 compression to patterns exported as a URL
- Added more options for searches
- Improved overall documentation
- Added setting to change the simulation speed
- Added mouse wheel zooming
- Added running an area for 1 generation
- Adjust amount of movement based on framerate
- Switched some key bindings
- silversmith
- Posts: 470
- Joined: June 15th, 2020, 6:20 pm
- Location: Pennsylvania, USA, Earth, Sector 5ff63D6
Re: A Javascript Cellular Automata Viewer
I have added some long overdue performance optimizations to the program, along with one minor bug fix.
Additionally, the hosting provider for the collaborative CA editor has changed, which will result in longer loading times for the webpage.
Edit: Added an optimization for handling large patterns.
Edit-2: Fixed a bug preventing keyboard inputs from working
Edit-3: Fixed another bug with user input
Additionally, the hosting provider for the collaborative CA editor has changed, which will result in longer loading times for the webpage.
Edit: Added an optimization for handling large patterns.
Edit-2: Fixed a bug preventing keyboard inputs from working
Edit-3: Fixed another bug with user input
- silversmith
- Posts: 470
- Joined: June 15th, 2020, 6:20 pm
- Location: Pennsylvania, USA, Earth, Sector 5ff63D6
Re: A Javascript Cellular Automata Viewer
I made more improvements to caplayer, including:
- More flexible and capable search options
- Significant performance increases
- Extended partial support of History and StateInvestigator rules to all INT rules
- Flipping and rotating patterns
- Improved pattern identifying function
- A pattern preview for copied and identified patterns
- Automatic conversion of exported rules into "B#/S#" or "B#/S#/G#" format
Here's an example search using some of the new features
https://www.silversimulations.com/capla ... Reset,When
Edit: fixed bug with broken Start/Stop button
- More flexible and capable search options
- Significant performance increases
- Extended partial support of History and StateInvestigator rules to all INT rules
- Flipping and rotating patterns
- Improved pattern identifying function
- A pattern preview for copied and identified patterns
- Automatic conversion of exported rules into "B#/S#" or "B#/S#/G#" format
Here's an example search using some of the new features
https://www.silversimulations.com/capla ... Reset,When
Edit: fixed bug with broken Start/Stop button
Re: A Javascript Cellular Automata Viewer
@ silversmith
been following development of your Project
I have Arise, and now have added CAplayer
Your work is much appreciated -
Thank You !
been following development of your Project
I have Arise, and now have added CAplayer
Your work is much appreciated -
Thank You !
"One picture is worth 1000 words; but one thousand words, carefully crafted, can paint an infinite number of pictures."
- autonomic writing
forFUN : http://gol.jct.onl
ArtGallery : http://cgolart.onfav.net
VideoWS : http://conway.life
- autonomic writing
forFUN : http://gol.jct.onl
ArtGallery : http://cgolart.onfav.net
VideoWS : http://conway.life
- silversmith
- Posts: 470
- Joined: June 15th, 2020, 6:20 pm
- Location: Pennsylvania, USA, Earth, Sector 5ff63D6
Re: A Javascript Cellular Automata Viewer
Thank you as well! I am glad to hear others' interest in this project.otismo wrote: August 13th, 2023, 11:27 am @ silversmith
been following development of your Project
I have Arise, and now have added CAplayer
Your work is much appreciated -
Thank You !
Also, in the newest update to CAplayer I implemented general multistate rule support, and it now supports LifeHistory and [R]History rules. Here is an example LifeHistory pattern by qqd:
https://www.silversimulations.com/capla ... ~37A20GA41
- silversmith
- Posts: 470
- Joined: June 15th, 2020, 6:20 pm
- Location: Pennsylvania, USA, Earth, Sector 5ff63D6
Re: A Javascript Cellular Automata Viewer
After doing some changes to the backend for my website, I have merged the collaborative features for CAplayer into the "main site". The collaborative functionality should be up and running, but anyone can feel free to tell me if they encounter issues.
Re: A Javascript Cellular Automata Viewer
Look'in Good !
Thank You !
I especially like your water...
Are you going to add "Load Pattern"
so we can add our folder of pattern files ?
( "uploading RLEs through the text box"- - -
should do for the time being - thanks...
)
https://silversimulations.com/caplayer/
Thank You !
I especially like your water...
Are you going to add "Load Pattern"
so we can add our folder of pattern files ?
( "uploading RLEs through the text box"- - -
should do for the time being - thanks...
https://silversimulations.com/caplayer/
Last edited by otismo on May 8th, 2024, 8:23 am, edited 6 times in total.
"One picture is worth 1000 words; but one thousand words, carefully crafted, can paint an infinite number of pictures."
- autonomic writing
forFUN : http://gol.jct.onl
ArtGallery : http://cgolart.onfav.net
VideoWS : http://conway.life
- autonomic writing
forFUN : http://gol.jct.onl
ArtGallery : http://cgolart.onfav.net
VideoWS : http://conway.life
- silversmith
- Posts: 470
- Joined: June 15th, 2020, 6:20 pm
- Location: Pennsylvania, USA, Earth, Sector 5ff63D6
Re: A Javascript Cellular Automata Viewer
I hadn't considered it until now, but I'll definitely try! Adding the ability to upload pattern files would be a a good addition to uploading RLEs through the text box.
- silversmith
- Posts: 470
- Joined: June 15th, 2020, 6:20 pm
- Location: Pennsylvania, USA, Earth, Sector 5ff63D6
Re: A Javascript Cellular Automata Viewer
I have added the ability to upload RLE's from files and download any exported RLE as a file.
Re: A Javascript Cellular Automata Viewer
Just tried that link and the pattern itself runs okay, except when I click on the “identify pattern” button under More Options it spins for a while and then says “couldn’t recognize periodic pattern” despite it being obviously an oscillator. I guess this is a bug.silversmith wrote: August 22nd, 2023, 11:09 pm https://www.silversimulations.com/capla ... ~37A20GA41
- silversmith
- Posts: 470
- Joined: June 15th, 2020, 6:20 pm
- Location: Pennsylvania, USA, Earth, Sector 5ff63D6
Re: A Javascript Cellular Automata Viewer
There's two reasons for that. One is that the pattern identification is currently limited to patterns with a period less than 300. The other is that if you try to identify the pattern from the beginning, the history cells prevent the simulation from ever returning to the same state. I've added a patch which increases the period limit to 1000.wirehead wrote: June 3rd, 2024, 4:16 pm Just tried that link and the pattern itself runs okay, except when I click on the “identify pattern” button under More Options it spins for a while and then says “couldn’t recognize periodic pattern” despite it being obviously an oscillator. I guess this is a bug.
- silversmith
- Posts: 470
- Joined: June 15th, 2020, 6:20 pm
- Location: Pennsylvania, USA, Earth, Sector 5ff63D6
Re: A Javascript Cellular Automata Viewer
I have completed a new release of this program, which mainly improves performance and the general ability to handle large patterns. These changes also enable further performance improvements in the future.
The changes include:
- Moving the heavy computations into threads separate from the UI
- Caching the visible area so minor edits can be made even if the program lags.
- Fixed the ability to load [R]Super patterns as [R]History patterns
- Tweaked some editing functionality
- Should remain compatible with existing v0.4 search profiles and settings
As before, any suggestions or reports of issues would be appreciated.
The changes include:
- Moving the heavy computations into threads separate from the UI
- Caching the visible area so minor edits can be made even if the program lags.
- Fixed the ability to load [R]Super patterns as [R]History patterns
- Tweaked some editing functionality
- Should remain compatible with existing v0.4 search profiles and settings
As before, any suggestions or reports of issues would be appreciated.