Giter Club home page Giter Club logo

3d-object-viewer's Introduction

3DOVE: 3D Object Viewer

A 3D object viewer that runs on a bare-metal Raspberry Pi (no standard libraries).

Created for the Stanford CS107e final project (Winter 2021).

Contributors

Ari Webb (AriWebb)

Tejas Narayanan (tnarayanan)

Features

  • Fast triangle rendering using z-buffers
  • Directional lighting
  • Loading .obj files from file system
  • Moving camera around model using arrow keys

Upcoming

  • GPU acceleration

Dependencies

Requires the libpi set of libraries built in CS107e, which includes implementations of standard library methods as well as some extras:

  • Strings (strlen, strlcat, printf)
  • Memory (memset, memcpy, malloc)
  • GPIO
  • Graphics (mailbox, framebuffer, drawing)
  • Keyboard (PS2 interface)

References

Rendering concepts/math

Math library

3D Models

GPU Library

Photos

Video demo: https://drive.google.com/file/d/1jsQI91-H1OuIeEY4wmy1Li1u-xQmRkDC/view?usp=sharing

Suzanne, the default Blender monkey: Monkey

An orange-colored wolf: Orange wolf

A z-buffer demonstration on the wolf model. Lighter colors are closer to the camera than darker colors. Z-buffer of wolf

A deer: Deer

3d-object-viewer's People

Contributors

tnarayanan avatar ariwebb avatar zelenski avatar mcevoypeter avatar

Stargazers

Ehichioya Prior Famous avatar Justin Yao Du avatar  avatar

Watchers

James Cloos avatar  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.