Header from Wallpaper Flare and paint brush icon from Videoplasty.com [CC BY-SA 4.0].

What Is This?

This was developed as my final project for the programming studio class CS 126 at the University of Illinois at Urbana-Champaign. It is a drawing app with a few nice extra features written to follow good coding style (one of that class’ main goals) to the best of my ability.

Features of this app beyond the bare bones of a drawing app include:

  • A two window design with the toolbox and canvas separated.
  • Drag and drop file loading and the ability to load a background image to draw over.
  • Multiple brushes (with adjustable color and width).
  • An interface to ply the user with an assortment of random dinosaur facts that they can consult for inspiration.

More Information and Challenges Encountered

A more complete explanation of the project, its proposal, and a log detailing my work on it are all available and can be found in the README.md, PROPOSAL.md, and DEVELOPMENT.md files in the project repository. DEVELOPMENT.md does a pretty good job of documenting chronologically in a fun style my approach to the project, the issues encountered, and how I solved them.

Screenshots!

DinoDoodle demo screen recording DinoDoodle example drawing
Screenshots of DinoDoodle. From left to right: screen recording of demo and beautiful example drawing of a dinosaur.

Technical Information!

DinoDoodle is built with:

  • C++ with OpenFramworks for the GUI.
  • OpenFrameworks for the canvas framebuffer rendering and the plugin ofxGui for the GUI.
  • JsonCPP to parse the dinosaur JSON data.

Awards

None, but who doesn’t like drawing apps and dinosaurs!

The code is open source, and you can check it out on Github here.