A Very Supernatural Map of United States


Uh… This is purely out of boredom. In welcome of the Season 6 of CW show Supernatural, I took a look at the path Sam and Dean have traveled. Guess which state hosted the most monsters?

Congratulations to Illinois! Then there goes South Dakota, Nebraska, Kansas, Pennsylvania, Ohio, Iowa, Indiana, Colorado, Missouri, Wisconsin, Oklahoma, Minnesota and California. The supernatural communities, be them spirits, creatures, mutants, psychics, witches, demons, angels or gods, definitely share taste in choosing playgrounds.

Click here to play with the interactive map:

I’m aware that there are a few fictional towns in the show. Coordinates are selected from the first result returned by Google Maps, so, if a circle falsely falls on your neighborhood, don’t panic! Corrections welcomed.

I am also aware that my lines between cities show shortcuts rather than actual trips. But you see, the brothers don’t always drive; they travel in time, in dream, in spirit forms; they have been zapped here and there by angels, demons and god himself. No such data is available as far as I know. Though I’d love to, watching the 5 seasons all over again is not in my short-term plan.

Data source: The Supernatural Wiki, Google Maps
Tools used: Google Maps API

HashTable: An Algorithm for Material Reuse


There is a great deal of waste in fabrication shops. According to our observation, 1/2 – 2/3 of the material surface area is left out in most CNC cuts. Due to their irregular shape, scrap material usually fails to fulfill another cutting request and are therefore discarded.

In MadFab — an MIT student furniture design competition — we¬†proposed a program that recognizes usable regions from the photos of scrap material and algorithmically search for an optimized layout to cut out a given design. Unlike ordinary digital fabrication systems, this process contains feedback loop from the physical object to the CAD environment to the physical object. By doing this, the material cost and waste of digital fabrication may be greatly reduced.
To implement the process, the user should photograph scrap sheets on a distinct background:

Then, through an interface implemented in Java, the user may pick a size and shape for the desired table/bench. The program will vectorize the photos and recognize reusable regions.

It will then search within these regions proper placement for the parts of the table. If a part is too large to fit in, it will be subdivided in a way that can be reassembled. Finally, the program will output the results to files that can be directly sent to the CNC cutting technology of choice (laser, router, water jet).

Upon cutting the scrap material, the final pieces can be assembled following an instruction generated by the program.

At this stage, the algorithm has been fully implemented. In the mock-up program the shape of table is chosen among six Cyclotomic Rhomb 7-Fold Tiling shapes which can be subdivided into their scaled selves.

Placing the parts is recognized as a 2-D packing problem with irregular shapes. In our current implementation pieces are placed in the order of area. The quality of a placement is measured by the distance between the vertices of the piece to the vertices of the scrap sheet. A hill-climbing algorithm is used in the searching.

The project was final listed in the competition.

Tools used: Java, Illustrator
Collaborator: Ari Kardasis

Twitter Tag Cloud Live!


When analyzing the web contents of SNCF, I made this realtime tag cloud charter for Twitter. It’s a lot of fun.

Category tree view:

Relevance network view:

Click to play with the app:

Tool used: Processing

Curtain That Tells Time


It was winter holiday and I always stayed in bed till 1pm. Sometimes I didn’t mean to, but it was really hard to get out of my warm bed just to check the time. That’s how this lovely curtain came along – you read time using the shadow dropped by sun.

Tools used: Graph, Illustrator