Pioneers 10 and 11, which preceded Voyager, both carried small metal plaques identifying their time and place of origin for the benefit of any other spacefarers that might find them in the distant future. With this example before them, NASA placed a more ambitious message aboard Voyager 1 and 2-a kind of time capsule, intended to communicate a story of our world to extraterrestrials. The Voyager message is carried by a phonograph record-a 12-inch gold-plated copper disk containing sounds and images selected to portray the diversity of life and culture on Earth.
se dialect. Following the section on the sounds of Earth, there is an eclectic 90-minute selection of music, including both Eastern and Western classics and a variety of ethnic music. Once the Voyager spacecraft leave the solar system (by 1990, both will be beyond the orbit of Pluto), they will find themselves in empty space. It will be forty thousand years before they make a close approach to any other planetary system. As Carl Sagan has noted, "The spacecraft will be encountered and the record played only if there are advanced spacefaring civilizations in interstellar space. But the launching of this bottle into the cosmic ocean says something very hopeful about life on this planet."
The definitive work about the Voyager record is "Murmurs of Earth" by Executive Director, Carl Sagan, Technical Director, Frank Drake, Creative Director, Ann Druyan, Producer, Timothy Ferris, Designer, Jon Lomberg, and Greetings Organizer, Linda Salzman. Basically, this book is the story behind the creation of the record, and includes a full list of everything on the record. "Murmurs of Earth", originally published in 1978, was reissued in 1992 by Warner News Media with a CD-ROM that replicates the Voyager record. Unfortunately, this book is now out of print, but it is worth the effort to try and find a used copy or browse through a library copy.
Media: http://goldenrecord.org/
Good idea (although visual/typography could easily be tighter). Try using this as a data source for sound.
This is a mirror of an article by Lee Byron. View the original: http://www.leebyron.com/else/mesh/
Mesh – A Processing Library
Mesh is a library for creating Voronoi, Delaunay and Convex Hull diagrams in Processing. After searching online for a Java package for creating Voronoi diagrams and failing to find anything simple enough to fit my needs I decided to make my own as simple as possible. I did find the wonderfully useful QuickHull3D package, which the algorithms for creating these diagrams are based on. These complete in O(n log n) time.
Voronoi Diagram
Voronoi Diagrams show the regions of space closest to each point. This can be used to create interesting visual patterns or as a preprocess for determining which point is closest to any given place in space. This is particulary useful for optimization in game design.
new Delaunay( float[][] points )
This creates and returns a new Delaunay object, which you can later ask for edges and links. It takes a two dimensional array for describing points, you can think of this as an array of points.
float[][] points = new float[3][2];
points[0][0] = 120; // first point, x
points[0][1] = 230; // first point, y
points[1][0] = 150; // second point, x
points[1][1] = 105; // second point, y
points[2][0] = 320; // third point, x
points[2][1] = 113; // third point, y
Delaunay myDelaunay = new Delaunay( points );
getEdges()
getEdges() returns a two dimensional array, or an array of lines. Use this to draw lines for connections.
float[][] myEdges = myDelaunay.getEdges();
for(int i=0; i<myEdges.length; i++)
{
float startX = myEdges[i][0];
float startY = myEdges[i][1];
float endX = myEdges[i][2];
float endY = myEdges[i][3];
line( startX, startY, endX, endY );
}
getLinks()
getLinks() returns a two dimensional array, or an array of links. This is similar to getEdges() however rather than returning the actual coordinates of the edges, it returns integers which are indexes to the points array used to create the Delaunay object. This can be useful when the links themselves are important, such as when building springs in a particle system.
int[][] myLinks = myDelaunay.getLinks();
for(int i=0; i<myLinks.length; i++)
{
int startIndex = myLinks[i][0];
int endIndex = myLinks[i][1];
float startX = points[startIndex][0];
float startY = points[startIndex][1];
float endX = points[endIndex][2];
float endY = points[endIndex][3];
line( startX, startY, endX, endY );
}
getLinked( int index )
Similarily, getLinked( int index ) returns indexes to the original points array. It takes an index and returns those indexes which are linked to it in the Delaunay diagram.
int[] localLinks = myDelaunay.getLinked(0); // those linked to point #1
println( localLinks );
// outputs:
// [0] 2
// [1] 1
Convex Hull
A Convex Hull is the encompassing shape around a group of points. As if you were to wrap a piece of string around all of the points. This is handy when doing collision tests on complex shapes, or finding the most extreme points within a dataset.
new Hull( float[][] points )
This creates and returns a new Hull object, which you can later ask for region and extrema. It takes a two dimensional array for describing points, you can think of this as an array of points.
float[][] points = new float[3][2];
points[0][0] = 120; // first point, x
points[0][1] = 230; // first point, y
points[1][0] = 150; // second point, x
points[1][1] = 105; // second point, y
points[2][0] = 320; // third point, x
points[2][1] = 113; // third point, y
Hull myHull = new Hull( points );
getRegion()
getRegion() returns an MPolygon of the Convex Hull. MPolygon contains the points of the polygon, and can be drawn to the stage.
MPolygon myRegion = myHull.getRegion();
fill(255,0,0);
myRegion.draw(this);
getExtrema()
getExtrema() returns an array of integers which are indexes to the original points array. These points are extrema within the set of points and are the vertices of the hull. The order of which are clockwise from the topmost point.
int[] extrema = myHull.getExtrema();
println( extrema );
// outputs:
// [0] 1
// [1] 2
// [2] 0
Greg Borenstein's notes from Andres' class at itp.nyu.edu
This is the personal/professional web page of Andrés Colubri. Here you will find information about my current and past projects in art, science and coding, as well as some materials from courses and workshops I have taught previously at universities, conferences, and other events. For a complete reference about my professional and academic background please check the CV section.
Currently I’m visiting professor/researcher at the Universidad Nacional de Colombia, Bogotá campus, and assistant professor in the area of Data Visualization and Systems Biology at JNU, South Korea. I’m also a developer in the Processing project, working in the OpenGL and GStreamer integration for improved real-time graphics and video.
Additional online resources:
- codeanticode: blog with updated information on my coding projects
- nauté: blog about artistic experiments
- twitter: for brief updates and news, mostly programming-related
- delicious: a list of websites I found of interest
- linkedin: professional network
Contact by email
Via NYU ITP Summer 2011
|