Inspiration

We've always had a hard time expressing our ideas with conventional brainstorming tools such as paper or modeling software. We noticed that paper's 2D limitation makes it very hard to accurately draw out our ideas, while 3D modeling software is too time-consuming and complicated to use effectively. To try and solve this problem, we created 3D Paper, where users can quickly sketch 3D ideas.

What it does

3D Paper tracks a phone's movements using the phone's accelerometers and gyroscopes and draws them as a sketch on a 3D graph.

How we built it

The app was built using an Android SDK to build an android application. We used a library called Javalin to create a small HTTP server which handled all of our data requests, which our client-side code demanded. The client-side code was written in Javascript and HTML, along with a library called Plotly to draw our graphs.

Challenges we ran into

Our main challenges arose from our implementation of the algorithms used in the motion tracking of the phone. Some problems we ran into included the line constantly drifting in random directions, rebounding after traveling to a location, and many hidden bugs. We were also hoping to add a color selector and stroke size changer, which we were unable to add due to limitations in plotly.

Accomplishments that we're proud of

We were able to get a server up and running for our app that connected the inputs from the phone to the display on the laptop. Using this, we were able to update the graph in real time using inputs from the phone.

What we learned

Coming into this, we were unfamiliar with android studio and UI creation, which we learned a lot about in this hackathon. Through making our app, we familiarized ourselves with Android Studio's UI creation tools, as well as servers and connections.

What's next for 3D Paper

We plan on fine tuning the motion tracking of the app to make it more accurate relative to the user's movements. We also plan on adding features such as a color picker or stroke size selector to allow the user to customize the lines they draw.

Share this project:

Updates