What it is
This project is an interactive solar system that uses physical computing and p5. Using a sensor we were able to create a spherical controller that when turned, also rotates the planet. There are many interactive solar system applications online but ours is different because it integrates physical computing in a way that we have not seen before for these kinds of projects. The controller and how one interacts with it is what makes our project unique.
Why we made it
We started this project out of a love of outer space. It slowly transformed into something educational, so we could share that love with others.
Who uses it
Our audience is people, particularly children, who do not know much about the solar system and want to explore. It is especially for people who are tactile learners. Our alternative controller allows the natural movement of turning an object around in one’s hands to translate on to on-screen exploration.
How it works
It is an online program that is controlled by a physical remote and the mouse. The planets and sun are rotating in space. Using the mouse, you can click on planets/sun and it will zoom in on the planet and display information such as name, size, surface gravity, and more, in the upper left hand corner. From there, the controller can be rotated and the planet will mirror this rotation on the screen. To zoom back out, you must click on the space around the planet and the project will go back to the first screen displayed.
The process of making it was a tough one because we had a lot of ideas but not all of them were possible given what we’ve learned and the time constraint. Our first idea was to build a planet creator, so that anyone could customize their own solar system in Unity. We talked this out with one of the residents, Jenny Lim, and we realized that this was not going to be able to be made in time. So, we switched to p5 and Arduino and decided to create our solar system.
At first, we created the planets on a side view that rotated around the sun using webGL. Then, we made a planet class so that we could standardize the planets and their information. To make it work so that the planets were more easily clickable, we changed the idea so that the solar system side view had the planets just rotating in place and not around the sun. We added a zoom so that when the planet is clicked, it is the focus on the screen. Finally, we added some ambient space-themed music looping in the background.
The controller uses a 6DOF (six degrees of freedom) sensor to sense the rotation (Euler angles) of an object. With serial processing, we fed the values that the sensor recorded into the rotateX, rotateY, and rotateZ values of the planets. For the enclosure, we laser cut a pattern out of poster paper and folded it into a sphere-ish shape. The sensor then went inside a smaller, geometric paper shape and was suspended in the middle by string. At first, the sensor was connected directly to the Arduino with shorter, stiffer wires. For a more polished interaction and stable connection, we soldered on flexible wires, then translated all connections to a solderable breadboard. Both the breadboard and the Arduino when then placed inside a box, to prevent any wires from being pulled out.
Link to p5 sketch:
Processing Teapot sketch (used to test sensor in beginning stages):