Inspiration
Last summer, I had the opportunity to intern at the Southwest Research Institute (SwRI), which helped build certain instruments on Europa Clipper. This was my first introduction to the mission. The mission was so interesting to me I wanted to tell others about it--at the time of its launch, I also decided to show NASA's informational video to my school's astronomy club. So, prompt #4 "Space Exploration Visualizer" really spoke to me.
What it does
In the game, the player controls a 3D model of the Europa Clipper spacecraft orbitting around Jupiter's icy moon Europa. On large screens (e.g., laptops), x and z directions are controlled by W/A/S/D and y directions by Q/E. On smaller devices (e.g., phones and tablets) a joystick replaces the role of the WASD keys and buttons determine y direction. These controls allow the player to accomplish the goal of collecting ice particles spewn into space by Europa's geysers. These geysers erupt from random points on Europa (which is also revolving) that appear in advance to allow the player to aim for them. This represents one of the goals of the Europa Clipper mission, on which more information can be found in a button on the top right, as well as another button for information on Europa, since the goal of the game is to interactively educate.
How we built it
Both the spacecraft and the moon are rendered 3D models of what they actually represent. Rendering is done through ThreeJS. Styles for the buttons and information are stored in a CSS file. The game logic is done in vanilla JS. These key features include rendering the objects with proper lighting, locking the camera on them when the "more information" button is clicked, orbitting the spacecraft around the moon in a realistic way, picking random points for geysers and then emitting geyser particles, and subsequently detecting collisions of the spacecraft with both those particles as well as with the moon itself.
Regarding the track goals, this 3D simulation game hopes to engage the public, particularly a younger audience (elementary to high school), while also teaching them about the latest innovations in space technology and discovery.
Challenges we ran into
When beginning to code this site, I began with a wireframe revolving sphere, instead of loading in the 3D model. This worked surprisingly well, but when it came time to import the model, it was not visible. In the debugging process, I read the documentation for ThreeJS, learned of the different formats of 3D models, the importance of camera and lightning positions, scaling, and, frankly, perseverance. I also had to play around a lot with the controls (on both computer and mobile devices) and the amount of geyser particles emitted and how often.
Accomplishments that we're proud of
Besides being proud of the fact that the overall game even loads (even if it takes a while for the 3D models) and is playable, I'm also proud that I was able to implement a mobile-friendly design as well. After my first working prototype was done, I asked my friends to test it, and I'm proud they were able to enjoy it. Additionally, I'm glad I implemented the informational aspect to the site.
What we learned
Evidently, I learned how to use the ThreeJS library for 3D models, but in a broader sense, I learned of the importance of best coding practices since the project got quite complicated at times and being organized was crucial. I also learned of how important it is for other people besides the developer to test. When I first asked my friend to, one said it didn't work on their phone, so I added mobile controls. Another said it got confusing once the spacecraft flew off-screen, so I added the reset button.
What's next for Europa Clipper: Plume Pursuit
In the future, I might add difficulty settings to the game, since I think an easier version would engage younger audiences even more, while avoiding potentially boring older students. It would also be interesting to mimic other functions of the Europa Clipper mission, such angling it towards a target on the surface to take a picture of. Also, in actuality the Europa Clipper spacecraft does not orbit Europa, but Jupiter, and performs fly-bys of Europa, which could potentially manifest in a game mode where, from an orbit of Jupiter, the player needs to aim to fling the spacecraft around Europa, similar to the iOS game "Orbit." Above all else, though, I hope to promote it among young people and hopefully get them interested in this mission and space in general.
Log in or sign up for Devpost to join the conversation.