lifeviewer bug
Re: lifeviewer bug
On my mobile, zooming on levels between -1.0 and -1.6 causes patterns to look weird, sort of like some blinking dots.
Edit: only in LifeSuper for some reason.
Sample screenshot:
Edit: only in LifeSuper for some reason.
Sample screenshot:
\sum_{n=1}^\infty H_n/n^2 = \zeta(3)
How much of current CA technology can I redevelop "on a desert island"?
How much of current CA technology can I redevelop "on a desert island"?
Re: lifeviewer bug
It's because I haven't written a LifeSuper specific sub-sample renderer yet.
LifeViewer https://lazyslug.com/lifeviewer
Re: lifeviewer bug
The renderer has been implemented in build 715.
LifeViewer https://lazyslug.com/lifeviewer
Re: lifeviewer bug
Code: Select all
x = 1, y = 1, rule = B3/S23:T10
o!
\sum_{n=1}^\infty H_n/n^2 = \zeta(3)
How much of current CA technology can I redevelop "on a desert island"?
How much of current CA technology can I redevelop "on a desert island"?
- breaker's glider gun
- Posts: 670
- Joined: May 23rd, 2021, 10:26 am
- Location: the inside of a stuffed anaconda or maybe [click to not expand]
Re: lifeviewer bug
Code: Select all
x = 5, y = 20, rule = TripleB3S23
B.A.D$B.A.D$B.A.D$B.A.D$B.A.D$B.A.D$B.A.D$B.A.D$B.A.D$B.A.D$B.A.D$B.A
.D$B.A.D$B.A.D$B.A.D$B.A.D$B.A.D$B.A.D$B.A.D$B.A.D!
Code: Select all
x = 5, y = 26, rule = TripleB3S23
B.A.D$B.A.D$B.A.D$B.A.D$B.A.D$B.A.D$B.A.D$B.A.D$B.A.D$B.A.D$B.A.D$B.A
.D$B.A.D$B.A.D$B.A.D$B.A.D$B.A.D$B.A.D$B.A.D$B.A.D$B.A.D$B.A.D$B.A.D$
B.A.D$B.A.D$B.A.D!
ugh. I have irreproducible bugs again and again with those lines, but it ALWAYS fails when I try to reproduce it!
EDIT: new bug! Select all, ctrl+space, enter, ctrl+z, and poof! it's not there! (ctrl+z again to get it back)
Code: Select all
x = 5, y = 20, rule = TripleB3S23
B.A.D$B.A.D$B.A.D$B.A.D$B.A.D$B.A.D$B.A.D$B.A.D$B.A.D$B.A.D$B.A.D$B.A
.D$B.A.D$B.A.D$B.A.D$B.A.D$B.A.D$B.A.D$B.A.D$B.A.D!
- breaker's glider gun
- Posts: 670
- Joined: May 23rd, 2021, 10:26 am
- Location: the inside of a stuffed anaconda or maybe [click to not expand]
Re: lifeviewer bug
go to the post, show in viewer, and try to run it. it won't work. Then open the next post's thing, and it will be 1 step in.a post on LTL wrote: ↑
I reproduced the bug.
Re: lifeviewer bug
Create a new pattern in any generation rule with number of states = 201. Draw a dot in state 1. Let it run for some time, and hit reset. The dot will now be in state 56.
\sum_{n=1}^\infty H_n/n^2 = \zeta(3)
How much of current CA technology can I redevelop "on a desert island"?
How much of current CA technology can I redevelop "on a desert island"?
Re: lifeviewer bug
Fixed, thanks for reporting!breaker's glider gun wrote: ↑June 9th, 2022, 1:12 pmgo to the post, show in viewer, and try to run it. it won't work. Then open the next post's thing, and it will be 1 step in.a post on LTL wrote: ↑
LifeViewer https://lazyslug.com/lifeviewer
Re: lifeviewer bug
The Undo system will not restart Advance Selection. The first Ctrl-Z in undoing the Paste. The second Ctrl-Z is undoing the Cut that happens when you first start Advance Selection.breaker's glider gun wrote: ↑June 4th, 2022, 10:24 amnew bug! Select all, ctrl+space, enter, ctrl+z, and poof! it's not there! (ctrl+z again to get it back)Code: Select all
x = 5, y = 20, rule = TripleB3S23 B.A.D$B.A.D$B.A.D$B.A.D$B.A.D$B.A.D$B.A.D$B.A.D$B.A.D$B.A.D$B.A.D$B.A .D$B.A.D$B.A.D$B.A.D$B.A.D$B.A.D$B.A.D$B.A.D$B.A.D!
LifeViewer https://lazyslug.com/lifeviewer
Re: lifeviewer bug
LifeViewer requests custom .rule files at "/wiki/Rule:{}" (replacing {} with the rule name). That works great here on conwaylife.com, but on other websites where LifeViewer is embedded-- such as my blog -- it fails, because the origin is no longer conwaylife.com. CORS issues aside, is there a way to change the URL template that LifeViewer requests rule files at so I won't have to create a dumb "wiki" repository to put the rules at?
Re: lifeviewer bug
I believe calcyman does something smart with redirects on his website.wirehead wrote: ↑June 19th, 2022, 1:44 pmLifeViewer requests custom .rule files at "/wiki/Rule:{}" (replacing {} with the rule name). That works great here on conwaylife.com, but on other websites where LifeViewer is embedded-- such as my blog -- it fails, because the origin is no longer conwaylife.com. CORS issues aside, is there a way to change the URL template that LifeViewer requests rule files at so I won't have to create a dumb "wiki" repository to put the rules at?
On lazyslug.com I actually take a copy so I can add @TREE sections to rules that don't have them since LifeViewer is so much faster at running @TREE rules than @TABLE rules (for example Blah's Mona Lisa). I have a script that automates this process if you're interested.
Another option is to append the @RULE definition to the RLE text. LifeViewer will look there for a rule if it can't find one anywhere else.
LifeViewer https://lazyslug.com/lifeviewer
Re: lifeviewer bug
Huh. I didn't think Lifeviewer ran @TABLE rules slower than @TREE ones. I thought it just loaded slower because it had to take the time to compile the @TABLE into a @TREE. TREE's obviously run fast because they are literally just nine table lookups once you load it into memory. Is that script part of LifeViewer already? I can help port make-ruletree.py to Javascript if you want.rowett wrote: ↑June 19th, 2022, 3:50 pmOn lazyslug.com I actually take a copy so I can add @TREE sections to rules that don't have them since LifeViewer is so much faster at running @TREE rules than @TABLE rules (for example Blah's Mona Lisa). I have a script that automates this process if you're interested.
I can't do that because I use GitHub Pages and the Actions runner doesn't have access to my ~/.golly/Rules folder.rowett wrote:June 19th, 2022, 3:50 pmAnother option is to append the @RULE definition to the RLE text. LifeViewer will look there for a rule if it can't find one anywhere else.
EDIT: I took a look at the Lifeviewer code, and where it generates the URL for the rule, it uses hard-coded constants (i.e. the aforementioned "/wiki/Rule:"). Couldn't you abstract this out into another configuration parameter in the Lifeviewer <meta> tag, so that someone who wants to use LifeViewer not on conwaylife.com (me!!!) doesn't have to match conwaylife.com's URL structure exactly?
Re: lifeviewer bug
Both Golly and LifeViewer have native implementations for the @TABLE algo.
Converting @TABLE to @TREE is trivial - implementations in Python and C++ exist in Golly. However many rules exist that take significant runtime (many minutes) and memory (multiple Gb) to convert. So it would not be possible to do this dynamically on rule load.
That's just the default. You can override it with the <meta> tag already. For example on the forums the following definition is used:wirehead wrote: ↑June 19th, 2022, 8:16 pmI took a look at the Lifeviewer code, and where it generates the URL for the rule, it uses hard-coded constants (i.e. the aforementioned "/wiki/Rule:"). Couldn't you abstract this out into another configuration parameter in the Lifeviewer <meta> tag, so that someone who wants to use LifeViewer not on conwaylife.com (me!!!) doesn't have to match conwaylife.com's URL structure exactly?
LV_code_loc.png
<meta name="LifeViewer" content="/wiki/Rule: ?action=raw">
The URL is built by concatentating the part beginning with /, the rule name, and an optional part beginning with ? or .
For the rule BlahMonaLisa2 you get: /wiki/Rule:BlahMonaLisa2?action=raw
On lazyslug.com the definition is <meta name="LifeViewer" content="/rules/ .rule> so you get /rules/BlahMonaLisa2.rule
LifeViewer https://lazyslug.com/lifeviewer
Re: lifeviewer bug
Well, where do I put the "lifeviewer textarea" to tell LV what class to look for and which element contains the pattern?rowett wrote: ↑June 20th, 2022, 1:09 amOn lazyslug.com the definition is <meta name="LifeViewer" content="/rules/ .rule> so you get /rules/BlahMonaLisa2.rule
You might also want to edit the Tutorials/LifeViewer JavaScript plug-in page because this isn't documented there.
Re: lifeviewer bug
See here for the original documentation on this topic. It doesn't include the newer repository settings mentioned above. To answer your question specifically just put them at the beginning of the content:
<meta name="LifeViewer" content="viewer textarea /wiki/Rule: ?action=raw">
There's actually a ton of "documentation" in that thread that I haven't had time to consolidate. I did some initial documentation on LifeWiki on the LifeViewer page (which was mostly a dump of LifeViewer's built-in Help) but there's a lot more to do. Very happy to answer any questions if anyone wants to help.
Some kind soul wrote the tutorial. Feel free to update it if you get time!wirehead wrote: ↑June 20th, 2022, 8:22 amYou might also want to edit the Tutorials/LifeViewer JavaScript plug-in page because this isn't documented there.
LifeViewer https://lazyslug.com/lifeviewer
Re: lifeviewer bug
The kind soul suggests a second tutorial on "advanced topics"--to be written by yet another kind soul, I hope.Some kind soul wrote the tutorial. Feel free to update it if you get time!
Phil Bookman
Re: lifeviewer bug
I don't have a LifeWiki account, sorry.
Re: lifeviewer bug
I know that, I just don't understand why Lifeviewer doesn't compile the rule into a faster format especially since it doesn't use Hashlife.
I found a really great explanation of Hashlife in Python here. Fabian Hemmer also has a Hashlife implementation in Javascript here but it's a little messy IMO and there aren't enough comments for me to understand what's going on. But I can still probably help with that.
I figured that. On my test page and testing it with Dean Hickerson's Rule:3n+1 it took about 30 seconds on my Raspberry Pi 4B -- enough to trigger the annoying "This page is not responding" box. Of course, that's trying to convert it all at once.rowett wrote: ↑June 20th, 2022, 1:09 amConverting @TABLE to @TREE is trivial - implementations in Python and C++ exist in Golly. However many rules exist that take significant runtime (many minutes) and memory (multiple Gb) to convert. So it would not be possible to do this dynamically on rule load.
But the great part about modern Javascript is that you can literally cause code to hang with a Promise and the browser won't care, and then it will pick right up where it left off when you resolve the promise. My idea is that you start up a conversion thread like my program above, but have it hang when it calls the function to look up the transition from the table. The conversion thread would push "requests" into a queue which would be monitored by the generation-advance thread (which already has been written) which, each generation, resolves all the requests that were also computed in the process of computing the next generation as well as 10 more that weren't computed. (10 is arbitrary). Eventually all the transitions would be hit, either by the pattern, or by the "10 extra", and boom, you have a table. This way it only bothers to convert if the user runs the pattern for long enough and there's really a need to be fast. I hope I explained this clear enough.
EDIT: whoops, sorry for double posting.
EDIT 2: I fixed the algorithm so that it actually produces the correct tree and now it takes 68 seconds (5 times "this page is not responding"). The code first converts the transitions into the NONE symmetry, which takes 66 seconds. Then converting those expanded transition function into a tree takes ~2 seconds. Weird. What does your implementation if the @TABLE algo look like? Maybe if I use your code it will be faster.
Re: lifeviewer bug
Because it's easy to add the @TREE to the rule file.
LifeViewer https://lazyslug.com/lifeviewer
Re: lifeviewer bug
I know, but not everyone has done that, and as a consequence some rules are a lot slower than others because they just have the TABLE section. Given that LifeViewer doesn't use Hashlife, why can't LifeViewer recompile it on the fly so all rules are equally fast? Or, at the very least, why hasn't someone written a wiki script that automatically adds TREE sections to all pages in the Rule: namespace that don't already have them? I'm not trying to argue, I just think it's a good question.
Re: lifeviewer bug
Probably because no one has asked before. As I said here I have a bash script that does this (in conjunction with Golly's RuleTableToTree command line application). I run it periodically to get the latest Rule namespace from LifeWiki, add any missing @TREE sections, and copy it to my website.
LifeViewer https://lazyslug.com/lifeviewer
- breaker's glider gun
- Posts: 670
- Joined: May 23rd, 2021, 10:26 am
- Location: the inside of a stuffed anaconda or maybe [click to not expand]
Re: lifeviewer bug
breaker's glider gun wrote: ↑June 9th, 2022, 1:12 pmgo to the post, show in viewer, and try to run it. it won't work. Then open the next post's thing, and it will be 1 step in.a post on LTL wrote: ↑
I reproduced the bug.
show in viewer the signature and try to run it. it won't work. Then open the post's thingy, and it will be 1 generation in.this post wrote: ↑ GLORIOUS SNIP
EDIT: could not reproduce.
Re: lifeviewer bug
The LifeViewer in viewtopic.php?p=86546#p86532 failed to load, presumably because the preceding ruletable has no actual @RULE line (just the header), or the rule name starts with W.
Edit: heck, thath was my 400th post
Edit: heck, thath was my 400th post
\sum_{n=1}^\infty H_n/n^2 = \zeta(3)
How much of current CA technology can I redevelop "on a desert island"?
How much of current CA technology can I redevelop "on a desert island"?