Coder Social home page Coder Social logo

csci5619-finalproject's Introduction

Final Project

Due: Friday, December 18, 10:00pm CDT

This project allows users to create a Christmas themed scene by using their Oculus Quest controllers to draw a variety of objects on a canvas in the virtual environment. The machine learning model was written following a tutorial blog on Medium (medium.com/tensorflow/train-on-google-colab-and-run-on-the-browser-a-case-study-8a45f9b1474e). The model was written in Python and trained on Google Colab, and then converted to TensorFlow.js to use in our project. The model would predict which mesh the user wanted to draw. After confirming that this prediction is correct, this mesh is then placed in the scene.

Name: Kathryn Altpeter, Quynh Do

UMN Email: [email protected], [email protected]

Build URL:

How to use:

Draw an object

Use the ray cast to draw on the white canvas, hold the trigger button to draw, you can use either left or right controller. You could draw any objects in this list: snowman, lollipop, table, circle, snowflake, crown, cookie, star, ice_cream, candle, sock, tree, flower, broom, bear.

Redrawing

If any time you need to redraw the object, click the "Clear" button to clear the canvas and start again.

Predicting and creating the object

Click the "Predict" button when you finish drawing. If the prediction is correct, press the "Confirm" button to create and add the 3D model to the scene.

Moving the object

Point the laser pointer to the object you want to move, and press and hold the squeeze button to move it around. You can use the thumbstick to move it in and out, and rotate the controller to rotate it.

Delete an object

Grab the object you want to delete, while grabbing them, use the other controller and click the "Delete" button (using the trigger button) to dispose the object from the scene.

Third Party Assets:

Make sure to document all third party assets.

Be aware that points will be deducted for using third party assets that are not properly documented.

Local Development

After checking out the project, you need to initialize by pulling the dependencies with:

npm install

If TensorFlow has not been previously installed on your computer, then install TensorFlow.js onto you computer from https://www.tensorflow.org/js/, and initialize it using:

npm install @tensorflow/tfjs

After that, you can compile and run a server with:

npm run start

Under the hood, we are using the npx command to both build the project (with webpack) and run a local http webserver on your machine. The included package.json file is set up to do this automatically. You do not have to run tsc to compile the .js files from the .ts files; npx builds them on the fly as part of running webpack.

You can run the program by pointing your web browser at https://your-local-ip-address:8080.

License

Material for CSCI 5619 Fall 2020 by [Quynh Do and Kathryn Altpeter] is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

The intent of choosing CC BY-NC-SA 4.0 is to allow individuals and instructors at non-profit entities to use this content. This includes not-for-profit schools (K-12 and post-secondary). For-profit entities (or people creating courses for those sites) may not use this content without permission (this includes, but is not limited to, for-profit schools and universities and commercial education sites such as Coursera, Udacity, LinkedIn Learning, and other similar sites).

Acknowledgments

The initial inspiration for this idea can be found here: https://stackoverflow.com/questions/37943753/best-approach-for-2d-gesture-recognition-in-vr.

csci5619-finalproject's People

Contributors

dndquynh avatar altpe001 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.