Pattern viewer for forum threads

For discussion directly related to ConwayLife.com, such as requesting changes to how the forums or home page function.
User avatar
R2INT
Posts: 202
Joined: July 2nd, 2024, 7:42 pm

Re: Pattern viewer for forum threads

Post by R2INT » November 19th, 2024, 11:19 am

Bug: Sometimes, LifeViewer internally thinks thinks the speed 1x is 2x, and 30/s is 60/s. That's twice as fast as it's supposed to be.

EDIT: The script command [[ STEP 1 ]] acts the same as [[ STEP 2 ]] should normally act.
Range-2 INT
R2INT's Rule Collection

Currently experimenting with 3-state rules.

User avatar
rowett
Moderator
Posts: 4078
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Pattern viewer for forum threads

Post by rowett » November 19th, 2024, 12:26 pm

R2INT wrote:
November 19th, 2024, 11:19 am
Bug: Sometimes, LifeViewer internally thinks thinks the speed 1x is 2x, and 30/s is 60/s. That's twice as fast as it's supposed to be.

EDIT: The script command [[ STEP 1 ]] acts the same as [[ STEP 2 ]] should normally act.
What is the refresh rate of your monitor?

User avatar
b-engine
Posts: 2310
Joined: October 26th, 2023, 4:11 am
Location: Somewhere on earth

Re: Pattern viewer for forum threads

Post by b-engine » November 19th, 2024, 6:51 pm

Suggestions: add REPEAT (which acts as repeat loop), IF (or something similar, I have no exact idea how it exactly works) and SETRULE (changes the rule to the rulestring or name defined at certain generation) as LifeViewer script commands. If these commands are added I can write a search program IN LifeViewer.

Code: Select all

[[ REPEAT 10 (PASTE obo!) ]]

Code: Select all

[[ SETRULE B3/S23 45 ]]
(EDIT: renamed LOOP to REPEAT)
Last edited by b-engine on November 19th, 2024, 7:28 pm, edited 1 time in total.
b-rules100th post: 18 November 2023 1000th post: 8 March 2024 10000th post:

User avatar
confocaloid
Posts: 4918
Joined: February 8th, 2022, 3:15 pm
Location: https://catagolue.hatsya.com/census/b3s234c/C4_4/xp62

Re: Pattern viewer for forum threads

Post by confocaloid » November 19th, 2024, 7:12 pm

b-engine wrote:
November 19th, 2024, 6:51 pm
Suggestions: add LOOP [...]
LOOP is already a thing:

Code: Select all

#C [[ ZOOM 12 X 15 Y -10 LOOP 240 ]]
x = 59, y = 60, rule = B38/S23History
26.A$24.3A$A22.A$3A20.2A$3.A17.4B$2.2A16.3B20.2A$2.4B14.4B18.B2A2B3.
2A$4.3B12.5B19.4B2.B2AB$4.4B11.6B14.B.6B3.2B$5.10B2.8B12.10B2.2B$6.5B
C14B3.2A6.11B2A2B$7.2B3C13B5.A5.12B2A3B.B$6.3BCBC4B.7B6.A.AB2.18B2A$
7.2BC15B6.2AB3.15B.B2A$7.18B8.18B3.B$9.17B7.18B$11.15B.2B2.19B$12.22B
D15B$12.8B.13BDBD4B.7B$10.8B3.2B2A9B3D4B2.6B$10.2A3.B5.2B2A11BD5B.7B$
11.A10.21B.6B$8.3A12.B.3B.4B7.9B$8.A20.3B9.8B$27.4B11.8B$27.2A14.7B$
28.A15.6B7.2A$25.3A16.2B3D2B6.A$25.A18.2BD4B3.BA.A$44.B3D4B2.B2A$44.
11B$44.11B$44.11B$45.11B$45.2B.7B$44.11B$44.10B$42.12B$40.13B$39.17B$
39.18B$37.2AB.13B2A2B$36.A.AB3.4B.6B2AB$36.A8.B4.8B$35.2A15.6B$51.7B$
51.6B$52.6B$52.5B$51.6B$51.6B$51.6B$51.B3D2B$51.3BD2B$51.2B3DB$52.5B$
54.B$53.3B$52.B2AB$53.2A!
edit:
b-engine wrote:
November 19th, 2024, 6:51 pm
[...] I have no exact idea how it exactly works [...]
Then other people will have no idea what exactly is the suggested feature, and how one could possibly implement that, and how one could use that.
b-engine wrote:
November 19th, 2024, 6:51 pm
[...] If these commands are added I can write a search program IN LifeViewer. [...]
I think it might be better to avoid making LifeViewer substantially more Turing-complete than it already is.
Different software tools are good in different situations.
127:1 B3/S234c User:Confocal/R (isotropic CA, incomplete)
Unlikely events happen.
My silence does not imply agreement, nor indifference. If I disagreed with something in the past, then please do not construe my silence as something that could change that.

User avatar
R2INT
Posts: 202
Joined: July 2nd, 2024, 7:42 pm

Re: Pattern viewer for forum threads

Post by R2INT » November 19th, 2024, 9:05 pm

rowett wrote:
November 19th, 2024, 12:26 pm
R2INT wrote:
November 19th, 2024, 11:19 am
Bug: Sometimes, LifeViewer internally thinks thinks the speed 1x is 2x, and 30/s is 60/s. That's twice as fast as it's supposed to be.

EDIT: The script command [[ STEP 1 ]] acts the same as [[ STEP 2 ]] should normally act.
What is the refresh rate of your monitor?
The refresh rate on the monitor I was using was 59.994 Hz.
Range-2 INT
R2INT's Rule Collection

Currently experimenting with 3-state rules.

unname4798
Posts: 1256
Joined: July 15th, 2023, 10:27 am
Location: On the highest skyscraper

Re: Pattern viewer for forum threads

Post by unname4798 » November 20th, 2024, 12:59 am

R2INT wrote:
November 19th, 2024, 9:05 pm
rowett wrote:
November 19th, 2024, 12:26 pm
R2INT wrote:
November 19th, 2024, 11:19 am
Bug: Sometimes, LifeViewer internally thinks thinks the speed 1x is 2x, and 30/s is 60/s. That's twice as fast as it's supposed to be.

EDIT: The script command [[ STEP 1 ]] acts the same as [[ STEP 2 ]] should normally act.
What is the refresh rate of your monitor?
The refresh rate on the monitor I was using was 59.994 Hz.
Then, the "Force 60hz" enabled and "Force 60hz" disabled would have almost no difference:
"60.0060006001hz" with Force 60hz disabled
"60hz" with Force 60hz enabled
This profile is sponsored by Unname Inc. (2022-2024)
Status: none.
Companies: NOT (Nihonium Orange Team)

MOTD:
B-engine: How MOTD is a similar to motto?
unname: To being replaced by D.
Others: Wrong!!! It's "To be replaced with D."

User avatar
rowett
Moderator
Posts: 4078
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Pattern viewer for forum threads

Post by rowett » November 20th, 2024, 4:53 am

A note on LifeViewer and monitor refresh rate.

When LifeViewer starts it attempts to measure the monitor refresh rate. This value is used to help LifeViewer ensure that 1X speed is 60 generations per second regardless of the monitor.

If your machine is old/slow or very busy during the measurement LifeViewer might assume the refresh rate is slower than it actually is and 1X speed would not be the desired 60 generations per second.

In this case you can force LifeViewer to assume a 60Hz refresh rate (the most common monitor rate) by using Settings>Advanced>Force 60Hz. This setting will be remembered for your browser on the current device.

If you look in Help>Info>Display there will be an entry that says something like:
Refresh 60Hz (16.7ms)

The first value (in this case 60Hz) is the measured refresh rate snapped to common monitor refresh rates. The second is the actual number of milliseconds per frame for the measurement (16.7ms).

Depending on how many reports I receive on the incorrect frame rate I may change the frame rate detection so it never reports less than 60Hz, in which case the Force 60Hz option can be retired.

EDIT:
LifeViewer now makes 60Hz the minimum refresh rate and Force 60Hz now holds the record as the shortest lived new feature.

Cyclotrons
Posts: 132
Joined: January 26th, 2021, 12:19 am

Re: Pattern viewer for forum threads

Post by Cyclotrons » November 25th, 2024, 8:52 pm

get_Snacked wrote:
November 7th, 2024, 2:01 pm
Cyclotrons wrote:
August 30th, 2023, 5:02 pm
could this be added sometime soon?
(like, being able to use the notation without having to create a ruletable)
This reminds me: don't use the CPP file for now, there are several bugs that aren't fixed. Use the python script instead; it should be pretty easy to repurpose to use in the same way as the CPP file, since every function is carried over.
I wrote a stdin script that generates random soups of a provided number of a given spaceship. It works for all (non-B0) spaceships in the INT rulespace!
A Multistate INT notation + script.

User avatar
rowett
Moderator
Posts: 4078
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Pattern viewer for forum threads

Post by rowett » November 27th, 2024, 8:39 am

Drawing cells as Icons (for supported rules) is much faster from build 1216. At 8x Zoom it can be up to 30x faster.

User avatar
muzik
Posts: 5904
Joined: January 28th, 2016, 2:47 pm
Location: Scotland

Re: Pattern viewer for forum threads

Post by muzik » November 27th, 2024, 5:01 pm

I've noticed that LifeViewer has now started running at 60 generations per second on my 144hz monitor despite running at 144 generations per second previously. I assume this is an intentional change as there's now a new playback setting, but toggling that doesn't set the speed back to 144 generations per second. Is that intended?
Parity Replicator Collection v1.6 is now live - please send all relevant discoveries here.

User avatar
b-engine
Posts: 2310
Joined: October 26th, 2023, 4:11 am
Location: Somewhere on earth

Re: Pattern viewer for forum threads

Post by b-engine » November 27th, 2024, 6:13 pm

muzik wrote:
November 27th, 2024, 5:01 pm
I've noticed that LifeViewer has now started running at 60 generations per second on my 144hz monitor despite running at 144 generations per second previously. I assume this is an intentional change as there's now a new playback setting, but toggling that doesn't set the speed back to 144 generations per second. Is that intended?
You can turn off Settings>Advanced>Force 60Hz.

User avatar
muzik
Posts: 5904
Joined: January 28th, 2016, 2:47 pm
Location: Scotland

Re: Pattern viewer for forum threads

Post by muzik » November 28th, 2024, 5:25 am

b-engine wrote:
November 27th, 2024, 6:13 pm
muzik wrote:
November 27th, 2024, 5:01 pm
I've noticed that LifeViewer has now started running at 60 generations per second on my 144hz monitor despite running at 144 generations per second previously. I assume this is an intentional change as there's now a new playback setting, but toggling that doesn't set the speed back to 144 generations per second. Is that intended?
You can turn off Settings>Advanced>Force 60Hz.
This changes the framerate but does not restore it to 144 generations per second at 1x.
Parity Replicator Collection v1.6 is now live - please send all relevant discoveries here.

User avatar
rowett
Moderator
Posts: 4078
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Pattern viewer for forum threads

Post by rowett » November 28th, 2024, 6:29 am

muzik wrote:
November 27th, 2024, 5:01 pm
I've noticed that LifeViewer has now started running at 60 generations per second on my 144hz monitor despite running at 144 generations per second previously. I assume this is an intentional change as there's now a new playback setting, but toggling that doesn't set the speed back to 144 generations per second. Is that intended?
Yes, this is intentional. LifeViewer now ensures that 1X is 60 generations per second regardless of monitor refresh rate. This is so you get the same animation experience regardless of monitor used.

See here also for more information.

User avatar
muzik
Posts: 5904
Joined: January 28th, 2016, 2:47 pm
Location: Scotland

Re: Pattern viewer for forum threads

Post by muzik » November 28th, 2024, 7:56 am

rowett wrote:
November 28th, 2024, 6:29 am
Yes, this is intentional. LifeViewer now ensures that 1X is 60 generations per second regardless of monitor refresh rate. This is so you get the same animation experience regardless of monitor used.

See here also for more information.
Is there a toggle anywhere to change back to the old behaviour? While I understand this change for scripted sequences, I much preferred things running faster for general pattern playback.
Parity Replicator Collection v1.6 is now live - please send all relevant discoveries here.

User avatar
b-engine
Posts: 2310
Joined: October 26th, 2023, 4:11 am
Location: Somewhere on earth

Re: Pattern viewer for forum threads

Post by b-engine » December 1st, 2024, 6:02 am

I wish I could automatically run this for several times and export the result, or even make RANDOMIZE soups symmetrical, then this would be a search program:

Code: Select all

x = 0, y = 0, rule = B3/S23
!
[[ RANDOMIZE AUTOIDENTIFY KILLGLIDERS MAXGRIDSIZE 9 ]]
It won't perform much in standard Life, but works well in certain OCA, such as those with many natural oscillator periods, or even guns.
b-rules100th post: 18 November 2023 1000th post: 8 March 2024 10000th post:

User avatar
rowett
Moderator
Posts: 4078
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Pattern viewer for forum threads

Post by rowett » December 1st, 2024, 9:50 am

muzik wrote:
November 28th, 2024, 7:56 am
Is there a toggle anywhere to change back to the old behaviour? While I understand this change for scripted sequences, I much preferred things running faster for general pattern playback.
Build 1217 allows you to change the default playback speed.

The default playback speed is 60 generations per second which is displayed in the UI as 1X. It is set when a pattern is loaded and also on a hard reset (pressing Reset while at T=0, or pressing Reset any time when [[ HARDRESET ]] is set).

You can change this by:
  1. choosing any speed you wish from 1/s to 64X (3840/s)
  2. clicking Settings>Playback>Save Speed (hotkey Shift E)
This new default playback speed will be remembered on the current browser on the current device. Setting this speed will also turn on Use Saved.

You can switch betwen the default playback speed and the saved playback speed using Settings>Playback>Use Saved (hotkey Ctrl E).

Finally, if a pattern contains a script command that sets the playback speed ([[ GPS ]] or [[ STEP ]]) then this will take priority until Save Speed or Use Saved are used while viewing that pattern.

User avatar
rowett
Moderator
Posts: 4078
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Pattern viewer for forum threads

Post by rowett » December 1st, 2024, 9:57 am

b-engine wrote:
December 1st, 2024, 6:02 am
I wish I could automatically run this for several times and export the result, or even make RANDOMIZE soups symmetrical, then this would be a search program
You can make random soups symmetrical using the following:

EDIT: see fixed version here.

Code: Select all

x = 0, y = 0, rule = Life
!
#C Define a random block of cells 64x64
[[ RLE rand RANDCELLS 64 64 ]]
#C Paste it to the grid top left
[[ PASTE rand 0 0 ]]
#C Paste a version flipped horizontally top right
[[ PASTE rand 64 0 FLIPX ]]
#C Paste a version flipped vertically bottom left
[[ PASTE rand 0 64 FLIPY ]]
#C Paste a version flipped both ways bottom right
[[ PASTE rand 64 64 FLIP ]]

unname4798
Posts: 1256
Joined: July 15th, 2023, 10:27 am
Location: On the highest skyscraper

Re: Pattern viewer for forum threads

Post by unname4798 » December 1st, 2024, 10:04 am

rowett wrote:
December 1st, 2024, 9:57 am
b-engine wrote:
December 1st, 2024, 6:02 am
I wish I could automatically run this for several times and export the result, or even make RANDOMIZE soups symmetrical, then this would be a search program
You can make random soups symmetrical using the following:

Code: Select all

x = 0, y = 0, rule = Life
!
#C Define a random block of cells 64x64
[[ RLE rand RANDCELLS 64 64 ]]
#C Paste it to the grid top left
[[ PASTE rand 0 0 ]]
#C Paste a version flipped horizontally top right
[[ PASTE rand 64 0 FLIPX ]]
#C Paste a version flipped vertically bottom left
[[ PASTE rand 0 64 FLIPY ]]
#C Paste a version flipped both ways bottom right
[[ PASTE rand 64 64 FLIP ]]
Fixed:

Code: Select all

x = 1, y = 1, rule = B3/S23
!
#C Define a random 64x64 block of cells
[[ RLE rand RANDCELLS 64 64 ]]
#C Set paste mode to XOR
[[ PASTEMODE XOR ]]
#C Paste it to the grid
[[ PASTE rand 0 0 ]]
#C Paste it flipped horizontally
[[ PASTE rand 64 0 FLIPX ]]
#C Paste it flipped vertically
[[ PASTE rand 0 64 FLIPY ]]
#C Paste it flipped both horizontally and vertically
[[ PASTE rand 64 64 FLIP ]]
This profile is sponsored by Unname Inc. (2022-2024)
Status: none.
Companies: NOT (Nihonium Orange Team)

MOTD:
B-engine: How MOTD is a similar to motto?
unname: To being replaced by D.
Others: Wrong!!! It's "To be replaced with D."

User avatar
confocaloid
Posts: 4918
Joined: February 8th, 2022, 3:15 pm
Location: https://catagolue.hatsya.com/census/b3s234c/C4_4/xp62

Re: Pattern viewer for forum threads

Post by confocaloid » December 1st, 2024, 10:08 am

unname4798 wrote:
December 1st, 2024, 10:04 am
rowett wrote:
December 1st, 2024, 9:57 am
[...] You can make random soups symmetrical using the following: [...]
Fixed: [...]
Or like this, with optional empty rows/columns:

Code: Select all

x = 1, y = 1, rule = B3/S23
b!
#C Define a random block of cells 32x32
[[ RLE rand RANDCELLS 32 32 ]]
#C Paste it to the grid top left
[[ PASTE rand 0 0 ]]
#C Paste a version flipped horizontally top right
[[ PASTE rand 64 0 FLIPX ]]
#C Paste a version flipped vertically bottom left
[[ PASTE rand 0 64 FLIPY ]]
#C Paste a version flipped both ways bottom right
[[ PASTE rand 64 64 FLIP ]]
127:1 B3/S234c User:Confocal/R (isotropic CA, incomplete)
Unlikely events happen.
My silence does not imply agreement, nor indifference. If I disagreed with something in the past, then please do not construe my silence as something that could change that.

User avatar
rowett
Moderator
Posts: 4078
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Pattern viewer for forum threads

Post by rowett » December 1st, 2024, 10:14 am

Actually the correct answer is this. Use 64 as per confocaloid if you want a one cell gap between quadrants.

Code: Select all

x = 1, y = 1, rule = B3/S23
b!
#C Define a random block of cells 32x32 to generate a symmetrical 64x64 block
[[ RLE rand RANDCELLS 32 32 ]]
#C Paste it to the grid top left
[[ PASTE rand 0 0 ]]
#C Paste a version flipped horizontally top right
[[ PASTE rand 63 0 FLIPX ]]
#C Paste a version flipped vertically bottom left
[[ PASTE rand 0 63 FLIPY ]]
#C Paste a version flipped both ways bottom right
[[ PASTE rand 63 63 FLIP ]]

User avatar
rowett
Moderator
Posts: 4078
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Pattern viewer for forum threads

Post by rowett » December 6th, 2024, 12:49 pm

New in build 1222:
Settings>Playback>Go To Gen (hotkey Shift N) now remembers the last valid input.

Go To Gen will go to the specified generation (whether before or after the current generation) as fast as possible.

You can also ask LifeViewer to go foward or back a number of generations by prefixing the number with the + or - symbol. For example +2000 will go forward 2000 generations and -500 will go back 500 generations.

Now LifeViewer remembers the last valid input this helps if you want to advance the pattern at top speed. Use Go To Gen with with +100000 (or any other large number) and LifeViewer will advance 100000 generations as fast as it can. After that each time you use Go To Gen it will have +100000 as the default so just click OK or press Enter to go again.

User avatar
muzik
Posts: 5904
Joined: January 28th, 2016, 2:47 pm
Location: Scotland

Re: Pattern viewer for forum threads

Post by muzik » December 7th, 2024, 5:38 pm

rowett wrote:
December 1st, 2024, 9:50 am
muzik wrote:
November 28th, 2024, 7:56 am
Is there a toggle anywhere to change back to the old behaviour? While I understand this change for scripted sequences, I much preferred things running faster for general pattern playback.
Build 1217 allows you to change the default playback speed.
This is a lovely feature but after toying with it I haven't been able to restore the prior behaviour (i.e. 1x iterates 144 times per second instead of the current 60, and 64x shoots for 9216 iterations per second instead of the current 3840).
Parity Replicator Collection v1.6 is now live - please send all relevant discoveries here.

User avatar
rowett
Moderator
Posts: 4078
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Pattern viewer for forum threads

Post by rowett » December 8th, 2024, 12:01 am

muzik wrote:
December 7th, 2024, 5:38 pm
This is a lovely feature but after toying with it I haven't been able to restore the prior behaviour (i.e. 1x iterates 144 times per second instead of the current 60, and 64x shoots for 9216 iterations per second instead of the current 3840).
It's not meant to be a toggle to the old deprecated behaviour. Rather it's an alternative to allow you have an arbitrary default playback speed.

It's important that 1X means the same on all systems. Now 1X is always going to be 60 generations per second. In previous builds 1X meant do as many generations per second as my monitor refresh rate.

The playback speed range is still 1 per second to 3840 per second. You can now choose what the default is.

If you want to playback faster then see the recent enhancements to Go To Gen.

Citation needed
Posts: 355
Joined: April 1st, 2021, 1:03 am

Re: Pattern viewer for forum threads

Post by Citation needed » December 9th, 2024, 10:49 am

unname4798 wrote:
August 2nd, 2024, 7:44 am
Can you allow changing individual colors in waypoints at specific points?
Can you also allow overwriting colors?
Example cases:

Code: Select all

#R B3/S23
bo$3o$o!
[[ COLOR DEADRAMP 255 255 255 ]]
[[ ZOOM 8 AUTOSTART T 100 ]]
[[ PAUSE 1 COLOR DEADRAMP 0 0 0 ]]
[[ T 200 ]]
This would be mentioned on LifeWiki.

Post Reply