rowett wrote:dvgrn wrote:I'd like to be able to add instant jumps to a waypoint script, similar to the transition that LifeViewer does to TRACK a spaceship, but to arbitrary spacetime locations, maybe with pauses in between to display messages.
When generations are specified with the
T script command they must be in ascending order...
Perhaps a
T command with an earlier generation than previously specified would reset the generation...
Implementation considerations:
- Would need to handle multiple STOP commands
- Would need to figure out what to do with LOOP
- Non T=0 resets would probably need to create snapshots (for speed) during earlier waypoint playback assuming generations visited
- UI Reset would go back to start of waypoint list
- Graph data would need to reset
- STEPBACK would need attention
The snapshot and STEPBACK items don't seem at all trivial. Which is why I was thinking I maybe ought to try to hack together some rough additions to lifeviewer.lua that work for me for this upcoming talk -- rather than just hoping that you'll do all the work. Not that I would mind if you did, of course.
Multiple STOPs could certainly be useful: I talk about the first animation sequence, then LifeViewer stops, I get caught up, I hit Enter and start talking about the second animation sequence.
I'm not sure STOPs will always be wanted between transitions, though. Maybe more often what will be needed is a PAUSE with a pop-up label, along the lines of the
heavy-handed narration experiment I tried a few years ago.
That method will work well for a lot of cases, but not so much where I want an instantaneous transition to a different location, instead of a zoom-and-pan transition taking at least one tick.
For example, I might want to move to a totally different subpattern, as if it was in a different universe. Subpatterns could be stored in different regions of the same RLE, but I'd want to keep the view zoomed in, and make the transfer during a PAUSE with no visible panning, and no time passing on the Life clock. Having a sudden visible transition in some random direction would just be confusing to a viewer.
Resetting the view to 0, or whatever generation might be wanted, could also be done during a pause. In most cases a small additional delay to do the reset wouldn't be a problem, so I don't know how much extra cleverness would really be needed in the snapshot system.
Anyway, short summary: it would be useful (to me, if not anyone else) if the requirement could be removed about T values having to increase, so that I could jump from any spacetime location to any other spacetime location, however I wanted to.
I seem to recall that allowing two T=n waypoints in a row would have done terrible things to the interpolation system, so possibly any zero or negative delta T would always be an instantaneous transition?
Unfortunately I can also imagine a case where I want to jump from one location to another at T=0 -- Zoomed In View #1 to Zoomed Out View to Zoomed In View #2 (with label) to Zoomed Out View again, and so on. In that case, interpolation is still needed for everything except the generation count... but then it's no longer possible to use the GPS setting to figure out how fast LifeViewer has to make the transition.
Seems like that might require a RealTime setting for each waypoint, or something strange like that.
Obviously if these instantaneous transitions are implemented, it will be possible to do arbitrary animations by stacking frames in a grid and insta-zooming to each frame in turn. That could be useful, too -- have one copy of a pattern that's just the pattern, and another copy with circles and arrows and history cells and whatever other labels and annotations, that are helpful in a close-up view but you wouldn't want to see them in the overview.
(I guess that could be done by customizing the colors to hide marked OFF cells, history, etc. -- except when you want two or more different objects to be displayed in the same place in different parts of the animation. That case seems best handled by allowing the "same place" to be two or more different places that just look the same.)