Giter Club home page Giter Club logo

teddyar's Introduction

TeddyAR

This is an augmented reality (AR) app for Android implementing Teddy (Igarashi 1999), an inflation-based sketch-to-mesh algorithm.

(These GIFs take ~15 seconds.)

Constrained Delaunay Triangulation (CDT) is currently implemented using poly2tri, since it was fast enough to run in real-time. Specifically, the approach of Sloan 1992 (implemented here using tutorials from habrador.com) was much too slow.

"Teddy_C++" contains a C++ implementation which uses OpenGL. This is useful if you want to see Teddy in action with minimal setup. Just run "make" in the directory of "Teddy_C++", and run "./main". Draw in 2D using the cursor. The mesh will be generated automatically, after which you can drag using the cursor to rotate the camera and inspect the mesh. (However, the C++ program does not check for bad input and will segfault if the sketch is self-intersecting. The C# version does check for bad input, and simply has the user re-draw.) You can also hit "c" to toggle the results of the CDT, or "p" to toggle the results of the re-triangulation procedure.

"Teddy" contains the materials used for the Android app, which was developed in Unity (with scripts in C#.)

There are currently some issues with speed (takes ~10 - 15 seconds to do sketch-to-mesh conversion on a Samsung Galaxy S9, mesh manipulations like translation and enlarge/shrink are laggy), and a minor issue with mesh appearance. This project was intended as a proof of concept and as an exercise in AR, so the user interface is really only intuitive to the creator.

This project may be useful as an example of:

  • using Google ARCore + Unity
  • drawing in 2D screen coordinates
  • creating, drawing, and manipulating meshes
  • using plane detection
  • C# programming
  • an implementation of the Teddy drawing system

The PDF includes a further explanation of the Teddy algorithm and the app.

teddyar's People

Contributors

nzfeng avatar

Stargazers

George Profenza avatar stick avatar Ben Ahlbrand avatar

Forkers

learntostick

teddyar's Issues

Source file for halfedge

Hey! I hope you're doing well.

I was looking for a halfedge data structure implementation and somehow ended up on your project. I really liked your project. Amazing work!

The halfedge implementation you did in Teddy_C++, I wished to see the source code that you based it on. I am not able to find Kevin Li's implementation. If possible, can you share it.

Thanks

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.