At the moment at each POI you can set:rowett wrote:enhanced POI (point of interest capability)
- X
- Y
- ZOOM
- ANGLE
- POITRANS
- POIRESET
- POISTART or POISTOP
- THEME
- DEPTH
- LAYER
- STOP value
- LOOP value
At the moment at each POI you can set:rowett wrote:enhanced POI (point of interest capability)
I changed my mind on this.rowett wrote:POI definitions now inherit the current position, zoom and angle so you only have to specify what is different than the previous POI. This is now in line with how Waypoint definitions work.
Code: Select all
[[ ZOOM 3
POI X 25 Y 22 ZOOM 10
POI X -10 ]]
Happy New Year! And it all looks good so far. The only detail I can see to make any noise about is that POISTOP and POITRANS run for one tick if LifeViewer is already stopped -- e.g., press Alt+2 and/or Alt+8 twice in a row each.rowett wrote:Likewise I'll probably have a POI with POIRESET defined respect AUTOSTART unless POISTOP or POISTART are specified.
Different THEMEs per POI would be nice to have, certainly, but that's not really high priority.rowett wrote:Would it also be helpful to be able to set:
THEME
DEPTH
LAYER
STOP value
LOOP value
Code: Select all
x = 13, y = 23, rule = B3/S23
bo$2bo$3o18$10b3o$10bo$11bo!
#C [[ TRACKBOX -1/4 -1/4 1/4 1/4 ]]Fixed. It was calling the Stop UI function which steps if already paused.dvgrn wrote:Happy New Year! And it all looks good so far. The only detail I can see to make any noise about is that POISTOP and POITRANS run for one tick if LifeViewer is already stopped -- e.g., press Alt+2 and/or Alt+8 twice in a row each.
Will do. I'll make it 200 for now.dvgrn wrote:The slow transition doesn't seem very slow when POIs are far away from each other. Maybe it would be okay to have a higher maximum value for that?
The T command created a new Waypoint and so everything after it was specific to the Waypoint, and not the original POI. Two things here:dvgrn wrote:I tried adding an unsupported parameter to a POI, and got no errors but also no POIPLAY functionality any more:
#C [[ POI X -448 Y -262 T 100 ZOOM 3 "Play Action" POIPLAY ]]
It's not a high priority but it was trivial so I've already implemented it, along with DEPTH and LAYERS.dvgrn wrote:Different THEMEs per POI would be nice to have, certainly, but that's not really high priority.
Currently working in STOP and LOOP and then the TRACK family are next.dvgrn wrote:STOP and LOOP values are the ones that stand out -- along with TRACK/TRACKBOX/TRACKLOOP, I suppose, if we're going to use this to show off spaceships or puffers or what have you.
Yes I'll add GPS and also STEP per POI.dvgrn wrote:But if you have a STOP value, maybe you also need a POI GPS setting to say how fast to play until the stopping point?
Exactly. Plus POIPLAY would be redundant if AUTOSTART was specified before the first POI definition since that would be the default on POIRESET.dvgrn wrote:Seems like it might make sense to allow POIRESET + POIPLAY + STOP (not POISTOP), so that every time you hit Alt+whatever you see a replay of whatever the local Important Reaction is.
I could probably add a POIT command which would quickly play to the defined generation (probably without updating the display) on POIRESET.dvgrn wrote:My attempt to add T=100, above, was based on the vague idea that sometimes the POIPLAY timeslice that you want to show off will start at some significantly later time than T=0.
OK I'll take a look.dvgrn wrote:Speaking of TRACKBOX, I think the error checking isn't really necessary, that enforces E >=W, S<=N, etc.
Yes this occurred to me while I was originally testing the TRACKBOX code. There's also an argument for not starting TRACKBOX until a specified T. I'll cross this bridge when I come back to it.dvgrn wrote:For cases where you want to track something like a spaceship synthesis recipe, I suppose it might make sense to be able to specify a T value after which the TRACKBOX stops tracking. But here again things are getting complicated, and maybe the waypoint system is a better general solution.
Heh, don't make me laugh just when I'm drinking from a water bottle... In terms of the Not Getting Things Done competition, I've been slow working through my own To-Do list lately. Lots of updates still not made to Golly's pattern collection and glife/gplus and so on. And the quadratic replicator and the HashLife-friendly metacell are just sitting there un-worked-on.rowett wrote:As ever the simple POI enhancement requirement gained a Life of its own (pun intended). Ironic really, given I started thinking about it as way to avoid improving the Waypoint system...
Which reminds me: must finish LTL implementation
It sounds like you're stretching the definition of POI a little bit. For example, if POI #N just sets the GPS to 60 and STEP to 4 as you suggest, then that's not really a "point" any more, exactly. I can definitely see how it could be useful, though.rowett wrote:I'm now thinking there is another use case where you may wish a POI to leave an unspecified value unchanged (i.e. whatever the current camera position is) rather than default it to the initial camera position.
I should probably try writing a sample series of POIs and see how some of this works in practice. One oddity would be that running through partly-specified POIs with Shift+J might have very different effects than running through them in the standard order. I don't think that's necessarily a bad thing, though. Having same-as-last defaults is likely to make these POI scripts a bit easier to write.rowett wrote:In these cases I need a way of specifying the difference between "use pattern load defaults for omitted values" and "use current camera position for omitted values".
Perhaps the best way would be that the default is anything unspecified uses the current value. To set something explicitly to the initial camera position you would use [[ INITIAL ]] as the command value e.g. [[ ZOOM INITIAL ]].
...
Thoughts?
Yes it has generalised into more of a macro on a hotkey.dvgrn wrote:It sounds like you're stretching the definition of POI a little bit. For example, if POI #N just sets the GPS to 60 and STEP to 4 as you suggest, then that's not really a "point" any more, exactly. I can definitely see how it could be useful, though.
Yes it's all coming. It just wasn't required to describe the question above.dvgrn wrote:Are there any multi-STOP / spacetime-coordinate POI ideas still in the works?
Here's the current implementation plan for [[ STOP ]] and [[ LOOP ]] in the new POI system:rowett wrote:Yes it's all coming. It just wasn't required to describe the question above.dvgrn wrote:Are there any multi-STOP / spacetime-coordinate POI ideas still in the works?
Wow -- no, I think that's everything. Random clarification: you have a separate keyword for POIT, but not for POIX, POIY, POIZOOM, etc., because the T keyword is what you use to signal a new waypoint -- right?rowett wrote:Making some progress on the new POI implementation...
Dave is there anything I'm not tracking that you're expecting?
Yes and I'm assuming that at some stage in the future I may allow POIs and Waypoints to peacefully co-exist.dvgrn wrote:Random clarification: you have a separate keyword for POIT, but not for POIX, POIY, POIZOOM, etc., because the T keyword is what you use to signal a new waypoint -- right?
My working theory is that I'll just allow the T command to have an earlier generation than the previous Waypoint.dvgrn wrote:Will this still make sense if waypoints also eventually get the functionality of being able to jump backwards in time, with different types of transitions? Or will waypoints now accidentally turn out to be just a series of POIs strung together with a new AUTOPLAYPOI command?
... But with an option for an instantaneous transition, I hope? I could do some very entertaing things with instantaneous transitions. Especially on April Fool's Day, I suppose.rowett wrote:My working theory is that I'll just allow the T command to have an earlier generation than the previous Waypoint.
This is done by specifying [[ INITIAL ]] straight after the [[ POI ]] command followed by the POI settings.rowett wrote:
- Ability to define a DEFAULT POI to be automatically applied on pattern load
Looking forward to it! I might have a little time this weekend for regression testing.rowett wrote:Hopefully release an update this weekend. Been sidetracked with bounded grids and CXRLE POS.
Looks like some kind soul (perhaps you) already did this on the Wiki.dvgrn wrote:A question came up recently about what happens to the (not very many) people who might not have Javascript enabled in their browser. I don't think we need to do anything much about that case, but wondered if you might have suggestions what a reasonable and easy failover would be.
I just tried turning off scripting in IE, and of course ended up with just an empty box where LifeViewer is supposed to be. Might it make sense to include some boilerplate text somehow. for the failover case -- "To enable LifeViewer, please use a browser with Javascript capability"...?
Going from POI 8 to POI 6 or POI 2 on the test page gives kind of an odd result -- a quick flicker.rowett wrote:Build 236 - "Othello 2" is now available on the lazyslug server...
In Golly the step size is decreased with both "-" and "_", and increased with both "=" and "+" (i.e. the "shift" key makes no difference). So LifeViewer already matches Golly, assuming you can train yourself NOT to press the "shift" key when you press "="dvgrn wrote:Might it make sense to make "+" do the same thing as "=", just to match what Golly does?
Oh, there's always something else that you could find to be distracted by instead. Check the LifeWiki Tiki Bar if you need ideas...rowett wrote:Next I need to clip CXRLE POS patterns to their bounded grids and then I may have to finish LTL.
You could use the [[ ALL INITIAL ]] feature to make this easier:dvgrn wrote: Yes, it looks like the odd result is the correct consequence of the rule that settings not specified by a POI are left unchanged. The unexpected flicker can be fixed by setting a step size in each POI, etc., etc.
Code: Select all
#C Default settings for all POIs
#C [[ STEP 1 GPS 60 THEME 1 ]]
#C First POI inherits STEP, GPS and THEME and sets X, Y and ZOOM
#C [[ POI ALL INITIAL X 20 Y 30 ZOOM 4 ]]
#C Second POI inherits GPS and THEME, sets ZOOM and ANGLE and overrides STEP
#C [[ POI ALL INITIAL ZOOM 12 ANGLE 30 STEP 20 ]]
#C Third POI inherits STEP and GPS, sets ZOOM and overrides THEME and is the default on load
#C [[ POI INITIAL ALL INITIAL ZOOM 10 THEME 4 ]]
#C Fourth POI only inherits GPS, sets STEP, THEME (and everything else) will be unchanged
#C [[ POI GPS INITIAL STEP 35 ]]
x = 37, y = 5, rule = B3/S23
o3bo3b5o3bo7bo8b3o$o3bo3bo7bo7bo7bo3bo$5o3b4o4bo7bo7bo3bo$o3bo3bo7bo7b
o7bo3bo$o3bo3b5o3b5o3b5o4b3o!