Marble-ous Week of Code results

marble-ous logo

Our Week of Code project to build a physics simulation resulted in us “exceeding customer expectations”, as Mike put it (but we suspect he’s easily pleased!) However, our expectations were really exceeded by the above logo that our designer Gary Ritchie created for us.

To summarise the project, here’s Mike’s initial list of ideas for what he wanted:

  • Design
    • Only element of motive force is potential energy
    • Variables:
      • Gravitational force
      • Mass of object
      • Size of object
      • Diameter of Loops, Angle of Banks, Length of Track
      • Aerodynamic coefficient of friction
    • Equations for potential and kinetic energy along with rolling and aerodynamic resistance should be displayed in design mode
  • Race Mode:
      1. # of loops
      2. # of turns
      3. height of launch
      4. mass of marble
      5. lateral acceleration
      6. gravitational force
      7. aerodynamic coefficient of friction (this will be varied from vacuum, earth’s atmosphere at sea level, perhaps underwater
    • Hidden designs until ready for race
    • First person, Third person, Bird’s eye view and follow-me cam
    • Selection of backgrounds: Earth, Other planetary object (Moon, Other Planet, Asteroid), Space – {either Earth’s atmosphere or none}
    • Objectives can vary:
      • “Design” track to accomplish:
        1. stay on track
        2. get marble to end first
        3. launch marble certain distance
        4. launch marble to achieve a certain height + distance
        5. or cross finish line fastest
        6. longest distance covered on track
        7. longest time in motion
    • Display vertical and horizontal acceleration as objects go through tracks
    • Display energy as objects go through tracks
    • Game will define objectives randomly (so it’s a different race every time) and variables will be constrained by certain parameters defined by game logic:
    • These variables should be selected secretly by collaborators / players. The game logic should determine success or failure mode prior to “launch” based on “level of difficulty”….easy means remaining variables will be selected to ensure success
  • Crash / Impact Mode:
    • Skee ball
    • There is no lateral acceleration that can be accommodated without a bank in the turn, this will simplify that component
    • Spatial coordinates as to the target need to be specified (x,y,z)

However, we managed to negotiate our way to something that seemed achievable in four days of development. Miriam wrote up a great summary of our approach and Mike’s acceptance tests. I’m pleased to say that the team achieved and exceeded everything we had promised Mike and had no known outstanding bugs by the time we presented the final software to him on Friday afternoon. The test script that Mike agreed was:

  1. Login from two users
  2. Insert cell by one user
  3. Add/remove segments BUT NOT ALL AND NOT THE FIRST
  4. Change properties of a segment
  5. Run a sim by one user
  6. Stop sim by same user
  7. Replay by same user
  8. 3 x view billboard, shift-click
  9. Reset by one user
  10. {Repeat x2, with alternate user}

Unfortunately, we missed the one additional goal that we set ourselves: to produce a short video of the project. Better late than never, here’s a very brief demo that follows the test script.

Those of you with a physics interest might be interested to know why energy has decreased as the marble goes around the loop: what we’ve modelled as friction is simulated by collisions of the marble against the tracks.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: