Jon Miller – Project 2

by Jon Miller @ 7:32 am 15 February 2010

Get Adobe Flash player

Update (2/17/10)
I have updated the project. The footprints are now smaller, and after several optimizations, the flash does not slow down. Thanks for the tips everyone!

Note: The flash is above: it begins as complete whitespace.
left arrow/esc: reset
up arrow: spawn footprints quickly
down arrow: spawn footprints leisurely
numbers 1-9: level of independence, or “propensity to carve one’s own path”
clicking and dragging the mouse across the screen: suggest new paths

Zip file containing flash and noResizeHtml page:

(zip this to your desktop and open the html file to view).

Initial Murmurings – Conceptual Development
I have spent a lot of time walking through snow recently, and so my first idea was to procedurally generate lots of different kinds of footprints. The idea was to create all kinds – reptilian, mammalian, hooves, paws, claws, etc – some similar to existing animals and many created through random chance. As I began to work on this project, I began to think about how the footprints should travel across the page.
I noticed when walking through snow that it’s much easier to take a path already traveled, even if it doesn’t lead directly to my destination. I decided to work on modeling this behavior, where footprints tend to follow pre-existing paths. I dropped my original idea because I felt this new development was interesting enough and different shapes and sizes of prints would clutter the screen.

Underlying Tech
To create this behavior, I initialized a 40×30 vector field that spans the screen that would gradually be altered as footprints traveled across it. For example, a footprint traveling east would influence the vector field in the locale of the footprints in an easterly direction. Secondly, I added the vectors local to the footprint as a weighted average to the footprint’s original trajectory – thus, it both influences the vector field as it travels across it, and its path is influenced by the field. As time passes, vectors which coincide become stronger, leading more footprints to more firmly stick to the path. Eventually, clear routes are

Playing with the Program
I allowed the user to manipulate several parameters. Namely, they can influence the vector field using the mouse, allowing for users to create their own path, either on the fly or before running the simulation. They can also change how “independent” the footprints are using the number keys – highly independent footprints will not follow preexisting paths as much while highly suggestible footprints will almost immediately join previous tracks. Both of these can lead to a variety of terrains appearing with their own subtleties. The controls are listed near the top.

Looking Ahead
The next step, I believe, is to render it in three dimensions, with mountains and valleys dynamically forming from traveled paths. With 3D topography, I think the project would become aesthetically inspiring as terrain formed in front of you.
Secondly, there are a number of other behaviors that could be modified or added. For example, currently footprints will tend towards the most commonly traveled path, seemingly forgetting (or never having had) a destination to begin with. This leads to river-like behavior. However, with a set destination, perhaps road-like routes would form.
Another consideration would be to add an interface to allow people other than me to use the program. However, since the project is currently in its infancy, I think simply describing the controls is sufficient.

Jon Miller

1 Comment

  1. Hi Jon – here is the crit feedback (pre-revision) from the class PiratePad.


    You could speed it up by having a bitmapData object as the background and just cumulatively draw the lines on the bitmapData. That way, Flash doesn’t have to render all those dots each frame
    maybe alpha will make the trend more obvious?

    Would love to see the vector field with the “influence” of the friends next to the vector field without the influence of the friends (to see just how strong the influence is.) Whoops, I spoke too soon, the “heart” example demonstrates that nicely. Neat idea for a project. You know, I think the debug visualization is actually just as interesting and engaging (if not moreso) than the real visualization. 🙂 -SB

    It’s really nice the see them wander at first and then snatch on to someone else’s path. Though, I feel like the lines don’t have a purpose. Where are they going? Why follow someone going the north if your destination is south? Granted, this might only apply to one of your scenarios, but I was slightly put off by someone traveling to the right and then following someon traveling in the opposite direction.
    well, think about working in the snow- we pick path stepped over already, sort of forming the pattern. — I agree, but at some point we have to consider our destination.
    Perhaps speed could be influenced by how many people have already traveled in that path. The first feet are slow, and as more people beat down the path, they get faster.
    yay the kinetics could be more organic.

    It would be great if you could add an actual ui to set the parameters, this would be fun to play around with

    I’d love to see this done with opacity and/or color, I feel like it could be really beautiful

    Nice work, I somehow like the simple aesthetics.
    As you are not animating the shapes the fast way would be to draw into an image buffer and just add to that each time.

    awesome! agree footprints would make it very interesting

    Comment by golan — 18 February 2010 @ 2:56 pm

This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.
(c) 2016 Special Topics in Interactive Art & Computational Design | powered by WordPress with Barecity