I'm working on a mod (of Scratch 1.4) to add a timeline to Scratch. The timeline lets you see what the code was doing when it ran so that you can better understand it.
Here's the demo video.
Why am I doing this? It is clear to me that many kids do not understand what their robot programmed with Enchanting is doing, and I want to make a new version of Enchanting, one that runs on the Raspberry Pi with the BrickPi as a brain for LEGO robots, with features like this to make it easier to understand. In working on it, I can see there is value in having a version of “regular” Scratch with a timeline mod.
I'd love some help, and a lot of the help doesn't require any coding skills.
- What should I call this mod? (It can't have “Scratch” in the name.)
- What should the user interface look like? Should I add a separate pane for the timeline, and do I need way to hide/show each of the panes (the parts palette, the scripting area, the stage and list of sprites area)?
- How does one zoom in and out (and should it work both horizontally and vertically)?
- Do you want to be able to see the timeline for multiple sprites at once? (How?)
Also, I want you to know that this is just a demo so far. While I do have a change set advanced users can ‘file in’ to Scratch 1.4 , there are a number of things that don't work.
- scrolling the timeline area is not really implemented. (It works in the demo because I placed a command block down and far to the right).
- there is no keyboard control for scrubbing through the timeline
- not all blocks yield sensible results when you hover over them.
- I have no idea what the performance is like.
- I need to make it forget the oldest information when the timeline has gone on too long.
- Only ‘motion’ state information is stored and restored currently. (Doing the same for most of the other settings, such as ‘sound’ and ‘looks’ settings is straightforward. The pen commands will be tricky, though, as I’ll need to take regular snapshots of the stage.)
Other desirable features:
- allowing someone to change a variable and see the results change the timeline, without making them run it again
- making it so you can see the entire path that a sprite will and has traversed (mapping time onto space).