Discuss Scratch
- Discussion Forums
- » Advanced Topics
- » Demo of Scratch with a Timeline
- clintonb
- Scratcher
19 posts
Demo of Scratch with a Timeline
Hello everyone.
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.
For example,
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.
Known shortcomings:
Other desirable features:
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.
For example,
- 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.
Known shortcomings:
- 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).
- k9lego
- Scratcher
1000+ posts
Demo of Scratch with a Timeline
Cool!!! You know a lot!
Since your a scratch vet, I would add a profile pic. That makes you look more expert to go with being expert. Get my point? Nice job at that, keep It up, k9lego.
Since your a scratch vet, I would add a profile pic. That makes you look more expert to go with being expert. Get my point? Nice job at that, keep It up, k9lego.
- Hardmath123
- Scratcher
1000+ posts
Demo of Scratch with a Timeline
This is positively amazing! I love the idea. It would be so cool to have a feature like this in a Scheme editor, to (for example) illustrate the difference between a recursive and iterative process graphically—my CS class grappled quite hard with this.
The Worrydream link is pretty interesting. It reminds me of a lecture I heard a couple of years ago: an artist should be as close to the product as he can possibly be. He had a demo where some JavaScript drawing code could be edited “graphically”: hovering over “#00FF00” would pop-up a color picker, and the result changed instantly. Beautiful stuff.
I noticed you considered Snap! as a good option for your 4.0 platform. Go for it. Snap! is amazing to hack on because it is extremely open. Jens and Brian are extremely supportive of others developing on Snap! (unlike the Scratch Team, who keep development strictly within the Team because they have too big a community to handle code snippets from).
In fact, regardless of what you do with Enchanting, I think the timeline feature should be a part of Snap!.
Technoboy10 has already built several plugins, one of which can do rudimentary NXT controlling (he demoed this at Barcelona this year—very exciting). Of course, you should keep compiling to LeJOS because you can do so much more with it! Go LeJOS!
GitHub is great. I don't care much about version control, etc., but it gives you a great way to track issues, host code/releases/Wikis/READMEs/Licenses that you would otherwise have to hack together yourself.
(By the way, I was one of the big Enchanting fans back when it was released—we came 4th at Robofest with LeJos/Enchanting. Thanks! Hack on!)
The Worrydream link is pretty interesting. It reminds me of a lecture I heard a couple of years ago: an artist should be as close to the product as he can possibly be. He had a demo where some JavaScript drawing code could be edited “graphically”: hovering over “#00FF00” would pop-up a color picker, and the result changed instantly. Beautiful stuff.
I noticed you considered Snap! as a good option for your 4.0 platform. Go for it. Snap! is amazing to hack on because it is extremely open. Jens and Brian are extremely supportive of others developing on Snap! (unlike the Scratch Team, who keep development strictly within the Team because they have too big a community to handle code snippets from).
In fact, regardless of what you do with Enchanting, I think the timeline feature should be a part of Snap!.
Technoboy10 has already built several plugins, one of which can do rudimentary NXT controlling (he demoed this at Barcelona this year—very exciting). Of course, you should keep compiling to LeJOS because you can do so much more with it! Go LeJOS!
GitHub is great. I don't care much about version control, etc., but it gives you a great way to track issues, host code/releases/Wikis/READMEs/Licenses that you would otherwise have to hack together yourself.
(By the way, I was one of the big Enchanting fans back when it was released—we came 4th at Robofest with LeJos/Enchanting. Thanks! Hack on!)
- bharvey
- Teacher
1000+ posts
Demo of Scratch with a Timeline
Yes, please! It's asking a lot since our code base is totally separate from either Scratch (1.4 or 2.0), but I'd love to have this. It would help enormously in our Snap!-based classes. In fact, regardless of what you do with Enchanting, I think the timeline feature should be a part of Snap!.
- scratchisthebest
- Scratcher
1000+ posts
Demo of Scratch with a Timeline
Here's my 2 cents:
You are super talented – pleaseplease try working on Snap! - it's based off of morphic.js so you should have no trouble
What should I call this mod? (It can't have “Scratch” in the name.)Think of variations on the word “Temporal”, e.g. tempora, try pulling a tumblr with temporl, try making a typo with temopral, etc
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)?I really don't think this is needed. 1.4's “small stage” mode should leave enough space.
How does one zoom in and out (and should it work both horizontally and vertically)?Zooming would sort of be silly imo
Do you want to be able to see the timeline for multiple sprites at once? (How?)oh, that's a tricky one… maybe tabs at the bottom you can switch between? Or you could assign shapes to sprites, like the first sprite uses round dots and the second square, or something.
You are super talented – pleaseplease try working on Snap! - it's based off of morphic.js so you should have no trouble
- clintonb
- Scratcher
19 posts
Demo of Scratch with a Timeline
This is positively amazing! I love the idea. It would be so cool to have a feature like this in a Scheme editor, to (for example) illustrate the difference between a recursive and iterative process graphically—my CS class grappled quite hard with this.
Oh, I agree. I hope that by actually implementing this, I can help raise the bar and inspire other coding environments to include such features.
The Worrydream link is pretty interesting. It reminds me of a lecture I heard a couple of years ago: an artist should be as close to the product as he can possibly be. He had a demo where some JavaScript drawing code could be edited “graphically”: hovering over “#00FF00” would pop-up a color picker, and the result changed instantly. Beautiful stuff.
I agree. You've got to see the worrydream video "Stop Drawing Dead Fish". (Bret has put up lots of other interesting and inspiring videos and essays, too.)
I noticed you considered Snap! as a good option for your 4.0 platform. Go for it. Snap! is amazing to hack on because it is extremely open. Jens and Brian are extremely supportive of others developing on Snap! (unlike the Scratch Team, who keep development strictly within the Team because they have too big a community to handle code snippets from).
In fact, regardless of what you do with Enchanting, I think the timeline feature should be a part of Snap!.
Technoboy10 has already built several plugins, one of which can do rudimentary NXT controlling (he demoed this at Barcelona this year—very exciting). Of course, you should keep compiling to LeJOS because you can do so much more with it! Go LeJOS!
Wish I could've made it to Barcelona. I hope to make it to MIT next year if they have another Scratch conference. I'll post some comments on Snap! in reply to Brian, in a post below.
GitHub is great. I don't care much about version control, etc., but it gives you a great way to track issues, host code/releases/Wikis/READMEs/Licenses that you would otherwise have to hack together yourself.
(By the way, I was one of the big Enchanting fans back when it was released—we came 4th at Robofest with LeJos/Enchanting. Thanks! Hack on!)
That's great! Thank you, I appreciate it.
- clintonb
- Scratcher
19 posts
Demo of Scratch with a Timeline
Yes, please! It's asking a lot since our code base is totally separate from either Scratch (1.4 or 2.0), but I'd love to have this. It would help enormously in our Snap!-based classes. In fact, regardless of what you do with Enchanting, I think the timeline feature should be a part of Snap!.
Hi Brian!
Wow, three people asking for support in Snap! in one thread.
I wish I didn't feel apprehension about hacking on something based on HTML5 technologies. It's been 14 years (!?) since I've worked with JavaScript in earnest. I'm sure it is not a big deal, but I must say, working in Squeak has spoiled me. (I think about that now and again when writing scripts in Python, which is a great language, but I can't ‘see inside’ and tell what is going on. If I thought any future coworker would have a hope of figuring out what I'm doing, I'd sure look at using Pharo for small projects at work.)
I suppose that one of these days I need to download the Snap! source and dive into it. (I don't suppose I could arrange a video conference (or skype call) and get a tour of the code?)
Here are my current thoughts:
- I'm speaking in 5 weeks on programming robots, and would really like to have something to demonstrate using the timeline
- I'd also like it to work on the Raspberry Pi (which isn't going to run Snap!)
- although, it could possible run a server that Snap! talks to. I've wondered about that.
- having help, of course, can change the balance of my decision :-)
The most straightforward approach I can see at present is to make it work as a Scratch 1.4 derivative.
That said, it is a very interesting idea, and I'll think about it. Maybe I can find time come December. I have wondered about having multiple UIs for the next version of Enchanting – especially since it'd be handy to support different devices that way (ex. native app on a Raspberry Pi, web app on an iPad) – but it does seem like a lot of work.
- clintonb
- Scratcher
19 posts
Demo of Scratch with a Timeline
Here's my 2 cents:What should I call this mod? (It can't have “Scratch” in the name.)Think of variations on the word “Temporal”, e.g. tempora, try pulling a tumblr with temporl, try making a typo with temopral, etc
Hmm… Not a bad idea at all.
…
How does one zoom in and out (and should it work both horizontally and vertically)?Zooming would sort of be silly imo
I rather think it'll be important. Drawing a polygon required scrolling and it is a really simple program.
…
You are super talented – pleaseplease try working on Snap! - it's based off of morphic.js so you should have no trouble
Morphic.js sounds like a good thing, I must admit. Thanks for putting the request in; it does make a difference. As I said to Brian, I'll think about it, but it may have to wait.
- drmcw
- Scratcher
1000+ posts
Demo of Scratch with a Timeline
That is fantastic. Very nicely done. Such a shame Scratch 2 dropped even the minimal debug support from 1.4.
- clintonb
- Scratcher
19 posts
Demo of Scratch with a Timeline
Hmm… Really struggling with a name.
I'll start with a few that I like but can't use for trademark reasons:
Here are some other thoughts:
Hmm… I'd love to have some more ideas.
I'll start with a few that I like but can't use for trademark reasons:
- DeLorean
- The Wayback Machine
- Tardis
Here are some other thoughts:
- Ephemera
- Trails
- Crumbs, or maybe Breadcrumbs
- Jigawatt
- 88
- Scrubber
- Skein, or Hank
- Vinyl
- Deep Groove
- Temporal Loop
- Relativity
Hmm… I'd love to have some more ideas.
- djdolphin
- Scratcher
1000+ posts
Demo of Scratch with a Timeline
How about something with “chrono” in the name, like ChronoBlocks?
Edit: It turns out Chrono Blocks is a Chilean board game.
Edit: It turns out Chrono Blocks is a Chilean board game.
Last edited by djdolphin (Oct. 16, 2013 21:14:03)
- technoboy10
- Scratcher
1000+ posts
Demo of Scratch with a Timeline
Wibbly-wobbly timey-wimey? JK.
I like Jigawatt(s?) and Breadcrumbs.
I like Jigawatt(s?) and Breadcrumbs.
- drmcw
- Scratcher
1000+ posts
Demo of Scratch with a Timeline
Theseus for a name? (He's the one who killed the Minotaur by following thread through the labyrinth)
- clintonb
- Scratcher
19 posts
Demo of Scratch with a Timeline
One of my co-workers suggested “Tracks”.
There are several of these names I like. Love to hear more.
Clinton
There are several of these names I like. Love to hear more.
Clinton
- clintonb
- Scratcher
19 posts
Demo of Scratch with a Timeline
Thank you for the thoughts on the name. I've decided to go with “Breadcrumbs”.
I have put up a very preliminary release, here:
http://static.robotclub.ab.ca/source_code/breadcrumbs/
You only need the .image file. No, there is no installer yet.
The easiest way to use it is to go to your Scratch folder, rename Scratch.image, and then rename Breadcrumbs-0.1.image to Scratch.image, and then run Scratch.
How to use
If you try it out, please let me know what you think.
(And now I need to make this work with robots!)
I have put up a very preliminary release, here:
http://static.robotclub.ab.ca/source_code/breadcrumbs/
You only need the .image file. No, there is no installer yet.
The easiest way to use it is to go to your Scratch folder, rename Scratch.image, and then rename Breadcrumbs-0.1.image to Scratch.image, and then run Scratch.
How to use
- Build and run your programs like normal.
- When you are ready to see what happened, click on the timeline button, which is found right beside the buttons to change the stage size and enter presentation mode.
- Move your mouse over the timeline to see what happened, when, and how.
- Or, use your keyboard. Once you move the mouse into the timeline window, the border will change. At that point, pressing the left and right arrows will move to the previous and next command executed. Alternatively, press shift and an arrow key to see the last or next time a certain command was executed.
If you try it out, please let me know what you think.
(And now I need to make this work with robots!)
- nathanprocks
- Scratcher
1000+ posts
Demo of Scratch with a Timeline
An easier way would be to open Breadcrumbs-0.1.image with Scratch.exe because you can not change files in Program Files unless you are an administrator. The easiest way to use it is to go to your Scratch folder, rename Scratch.image, and then rename Breadcrumbs-0.1.image to Scratch.image, and then run Scratch.
- davidkt
- Scratcher
1000+ posts
Demo of Scratch with a Timeline
Awesome! So you're continuing Enchanting? Great!
- clintonb
- Scratcher
19 posts
Demo of Scratch with a Timeline
An easier way would be to open Breadcrumbs-0.1.image with Scratch.exe because you can not change files in Program Files unless you are an administrator. The easiest way to use it is to go to your Scratch folder, rename Scratch.image, and then rename Breadcrumbs-0.1.image to Scratch.image, and then run Scratch.
Ah. Good point. Right-click on the .image file and choose “Open With…” (or whatever the specific term is for your operating system) and then choose Scratch.
Thanks.
- Discussion Forums
- » Advanced Topics
- » Demo of Scratch with a Timeline