"Rube Goldberg" Machine Maker

By Seth Helm-Burger



Project Overview:

   
This 3D program is designed to allow the user to interactively create their own animated sequence of events using the various objects provided. On the most basic level, the "point" of the program is to move the marble from point A to point B. However, in true Rube Goldberg fashion, the user is encouraged to make this simple task as complicated as possible and in doing so, make it an interesting journey for the marble. By use of various structures, such as walls, ramps, floors, cogwheels, flow fields, and more, the user truly has total control over the pathing of the marble.


Animation Components:

   
Many of the various structures the user can place on the playing board will be independently animated, and can each in turn effect the marble in their own manner.

    Fans (flow fields):  "Blow" the marble with a directional force that is proportional to the length of their arrow; arrow length is set by the user on creation by use of the mouse. In addition, the user directly controls the area that is going to be affected by the flow. This field is shown as a semi transparent red area based around the arrow itself.
Furthermore, the arrow itself shows which direction the flow will be traveling.



    Cogwheels:   Rotate at a static speed, however upon creation the user is able to define their size using the mouse. These are actually comprised of 4 line segments that rotate in tandem, providing 4 differing normals and collision surfaces so that any impact angle is acceptable.



    The Marble:  The marble itself will roll along surfaces, and will be the only object affected by gravity (user defined amount). The marble will pick up momentum as it moves downward, and lose it if forced to roll against gravity. It will also be affected by a static air resistance / friction to give it a more realistic motion. It will also have a rebound effect when striking an object at rapid paces. The marble's accerleration and movement are based on the RK2 algorithm.

How it Works:

    There will be two modes that the user can toggle between, Creation and Run.

    During the creation mode, the user is able to interact with the play space, create new objects and move the ball around . The user will be restricted to a static flat orthogonal viewpoint in this mode, and all objects will be placed on the same X,Y plane. Once the user is satisfied with the placement of all game objects, they press the Run button to switch to the running mode.

    During the run mode, all objects possessing of movement capablities will begin to move, including the marble. However, during this phase the user will Not be able to interact with their Machine in any way.
    In addition, in the Run mode, the marble and all other objects will operate on a fixed Z position. Meaning that the marble will not be able to fall out the the Positive or Negative Z value sides of the machine.


The Program in action! (static action...)

     The general idea for a program. Incorporates all elements (ball not yet placed)


   More about flow fields. Amusing to see the ball fly around forever.

    So many cogs!