To encourage users to use the remix visualization, it needs to be somehow both interactive and educational. The evolutionary history of a world is unlikely to be that interesting to most children. The incremental change of a program is something that a more advanced programmer would be more likely to explore and analyze than a beginner. A user with more experienced would be interested in exploring how an animation has changed over the course of multiple remixes because it is something that could help them make adjustments to their own programs.
For beginning and younger programmers, the remix pathway is more likely to serve as a motivating device or inspirational item. Younger programmers are generally much more proprietary about the code that they have created. They expect to gain more reputation or status from having built a “top viewed world” or a “most remixed animation.” They will probably be much more excited to see that someone has remixed their world into something else and what that something else is than in learning the intricate details of how the code has been changed. This excitement will hopefully prompt them to build more interesting worlds and animations that others will choose to remix.
As an inspirational item, the remix pathway should display to users the various worlds that can be developed from a particular animation. Originally, I believed that tracking from animation to animation would be the best way to learn because it would isolate the constructs that had changed in the remix. However, I now think, to show the flexibility of remixing, tracking from animation to world would better. This way, a user could see the same action in a variety of settings. The animation may have changed slightly, but it will more than likely still be recognizable from animation to world.
As a result of this desire to encourage new programmers to build interesting projects and to teach programmers of any level how code can be altered to create something new, the design of the remix visualization should focus first on promoting remixes into a category of its own. As it stands, remixes are a tool for repurposing code in an animation. If remixes are given an elevated status, it should encourage users to build worlds or animations that other users want to remix.
For example, someone might build a world that is a compilation of all the movements a dancer might have, taking care of the details of positioning each and every joint in the right place at the right time. This world could then be remixed by multiple users into dance recitals or prom night (maybe a little early for middle-school students). Alternatively, users could also remix in the other direction. If there are several worlds that have animations that are related, they can remix them all into a single world.
In either scenario, the original author of an animation or animations will hopefully have some sense of accomplishment when they see that their creation has been remixed by someone else. The remix visualization can facilitate this by showing users the different pathways that a particular animation can take. It can also show the parts of a particular world that others users thought were useful enough to remix and encourage them to do the same.
To promote the status of remixes, users need to be encouraged to make animations that others will want to remix. There could perhaps be a badge for having an animation that other users have remixed a certain number of times. Animations can also be tagged with their important constructs so that they can be identified as an example for Skills Badges. Clicking on a badge could lead you to an animation that is a good representation of how to achieve that badge. This makes it easier to isolate the section of code in a world that actually resulted in earning a badge. Furthermore, traversing the remix path could give an “exposure” badge if they see worlds that all have a certain set of constructs that result from this one animation.
There could also be a “Featured Remixes” section that shows interesting animations that many other users have been remixing. Clicking on the animation would show all of the worlds that contain that remixed animation, leading to the remix visualization to show how the world can be made from multiple remixed animations and how it can be further remixed into other things.
On the world show page, I plan to remove the worlds remixed from and remixed into on the sidebar. Instead of showing just the last three worlds that have been remixed from the world and the first three worlds that have been remixed into the world, there should be a remix information section. This section would display the number of worlds the current world remixed from, as well as, the number of worlds the current world has been remixed into. In this section would be a button, “Explore!” that would lead to the remix visualization.
In terms of the remix visualization itself, I think expanding the path from its more linear design to a more interconnected style would be better. This way the users would have more fun tracing out the different pathways that lead from one world to the next. This remix visualization would be based around both worlds and the associated animations instead of just one or the other. The central video would be the world itself. It would be a central hub of the visualization, using remix animations to connect to both the worlds it came from and the worlds it becomes. There would be a button beneath the central video that leads to the world show page.
On the left are the animations that have been remixed into the world. These could be pulled from the video clips taken when a user makes a remix (There may need to be some modification to this depending on if a user separates a single remix into two separate animations). These clips would be from the original world and show how the action was used in the original world. Just to the left of each of these animations would be an arrow leading off screen. Following this arrow would lead to the world that the animation came from, replacing the video in the center.
To the right of the world in the center are the various clips that are remixed from the central world into other worlds. These are the animations that users pull from the central world to put into other worlds. Similar to the animations on the left, there would be arrows leading off screen to the right. However, where in the other case, each animation can only originate from one world, a particular animation could be remixed into a variety of worlds. In this case, the arrow would branch off into several different worlds. Selecting one of these worlds would bring it to the center.
The visualization would be like a side-scrolling world that alternates between worlds and animations. All of the animation clips originate from the world on their left. The vertical component displays either the various animations that have been remixed into the world or the animations that other worlds have remixed from it. This allow us to make the evolutionary connections between worlds using the remix clips and also show the intricate branching structure that remixing can take.
Something that we should consider for the future is building something that would permit exploration of the code. While beginning users may not be as interested in this, as they learn more concepts and gain experience, exploring the code and not just the animations would be something that can further their education in programming. This would work best on the IDE because I think it would require users to download a copy of the code from two worlds connected through a remix. The code from the remix would be highlighted in the copy so it could easily be identified.
The key here is that education comes not through simple copying and pasting, but copying and making the knowledge their own. To assist in this, the users can enable and disable sections of the code and the IDE would play the modified version to show how things have changed due to the missing code. For example, someone could write a method that does flips in the air and have a section of code before the method that makes the character jump into the air. Playing around with enabling and disabling the code could help a person see this relationship between the code and the animation more clearly.
Furthermore, comparing to the other world where the flip has been changed to a forward roll on the ground, the user can see that the set-up code is different between the two worlds and learn from the differences. This would be associated with the remix visualization because it would require being able to pull the connected worlds. The way to find these two worlds that are connected by this remix is through the remix visualization.