Inspiration

Celes-tial-Sketch was inspired by the iconic scene in “A Beautiful Mind” where mathematician, John Nash, is able to connect the dots in the night sky to form any shape imaginable. With an easy to use interface Celes-tial-Sketch places this extraordinary power at your fingertips. Watch your sketches come to life as Celes-tial-Sketch’s algorithm optimally fits them onto the existing stars in the night sky. Reshape the constellations as we know them, doodle all over the night sky or simply relax and listen to some sonorous music while staring into the stars.

How We Built

Celes-tial-Sketch uses a Unity front end connected to a Python back end. The back end makes heavy use of the numpy library to rapidly find the optimally matching set of stars. Implementations exist for both a randomly generated night sky, and for the visible night sky, based on NASA star brightness and position data. A user can draw an image using the front end, and when they are finished, the data is sent to the back end. There, it is scaled and rotated while being compared to the starry backdrop. The stars that were found to make up the most similar image are then connected in order to draw a constellation as similar to the input drawing as possible.

Challenges We Faced

We initially wanted to learn about quantum computing using Python and Qiskit. Despite knowing that current quantum computers could not support the number of bits required, or maintain the fidelity of the existing bits for long enough, we wanted to see if we could break a hashing function like md5 or sha-256. However after learning all we could about Grover's algorithm, we realised that it was a "simple" matter of implementing the algorithm on the gate level, with classical gates. We then decided to pivot and generate new ideas. This reduced the time we had to work on our final project but we think it was worth making the switch.

Built With

Share this project:

Updates