Skip to content

Tutorials, Examples and Documentation

patriciogonzalezvivo edited this page Feb 22, 2012 · 31 revisions

Tutorials are descriptions of how to accomplish a task. They are generally accompanied by an example.

An example is a demonstration of something with code. It could be demonstrating how to accomplish a task from a tutorial, or it could be demonstrating how a single function works.

Documentation refers to all of these things, but especially the class-by-class, function-by-function reference at http://www.openframeworks.cc/documentation

Documentation

Pretty much everything can be improved here.

  • Improved and featured (i.e. on openframeworks.cc) version of the P5-to-OF rosetta stone -- GAB

  • Improved descriptions. For example, a widely used class and its first few methods usually have a few sentences or a paragraph explaining what they do, but these tend to fall off as you scroll down the page. Would be nice to have a description for each function in the online docs. -- GAB

Tutorials

What kinds of tutorials are needed or need to be improved?

Posible tutorials order from cero knowledge to advance stuff

  1. BootCamp (All this could be some small and friendly videos)

    • I´m going to a OF Workshop, What I need to do before going?: downloading oF, installing IDE, installing dependences, compiling the core. (May be: installing macport, git-core, python stuff for project generation ??)
    • Some theoretical and friendly introduction to C++ compilers and pre-compilers works. (Basicaly why it´s going to look different from all-in-one Processing IDE´s )
    • oF Project structure ( src, bin , bin/data, core and addons ) and how testApp works ( setup() / update() / draw() / keyboard, mouse, windows events )
    • Compiling your first project. Basic guide to start compiling the awesome OF examples
    • What are addons and how to deal with them? ( In this point it could be really handy to give some basic GIT information in order to start having fun exploring ofxAddons.com
  2. Some

  • openFrameworks Bootcamp - Similar to the Github Help. Step 1 is Set Up (download openFrameworks, installing IDE, dependences, compiling core). Step 2 Opening a project or starting a new project or something like Processing's Overview breaking down how programs are structured and the basics of C++ as applied to openFrameworks. Step 3: Using Addons, the videos on the openFrameworks Vimeo account are great but seem unaccessible from openframeworks.cc Step 4... Not sure

  • potentially moving some of the tutorials from the wiki to the site, or cleaning them up / modernizing them. For example, the OOP tutorial and the OF / P5 tutorial could use some love and I think are better suited for web pages then a wiki.

  • Git workflow: How/why do I work with git? How can I accomplish specific OF-related tasks with git? ([Christoph]: I intend to tackle at least part of this)

  • STL (vectors, linked lists, maps, deques) (should we really make STL tutorials? I figure there must be millions on the net already - Christoph). (I think discussing how STL works with OF objects, some pitfalls, etc will be really helpful. This is already part of the OOP tutorial, but I think it's useful to show how c++ libraries can be a big help).

  • Not sure where this fits in but one of the appealing things about OF is the direct access to a variety of cameras, sensors, external equipment, etc. What if there were a collection (Wiki-like I guess) of equipment used, referenced addons, watchouts, performance... -jvcleave (+1 this is great and has been done informally)

  • There are a lot of workshops that are held by the OF community that produce great work in short periods of time and low barriers to entry. What makes a good workshop and what are good pre-requisites? Should we provide presentation/workshop materials to the community? (thinking of Roxlu's slideshares) -jvcleave

  • A beginners guide to the GPU pipeline with examples using the relevant OF classes: ofTexture, ofShader, ofFbo, ofVbo, etc. (this could also be conceptualized as a reference) -- GAB

  • How to use lights effectively in 3D. The relationship between lights and materials. I feel like there's nearly nothing out there about ofMaterials or ofLight. -- GAB

  • setting up a kinect with OF overview

  • computer vision 101

  • making an addon, adding addons, etc.

  • Games! Collisions, using Vanderlin's Box 2D libraries...

  • Tutorial on Event Handling and maybe how to build a simple GUI button or slider

  • Tutorial on arrays - Array of ints, array of strings, array of images, array of objects, array of arrays (multiple image sequences & simple particle system)

(Here are things that can´t be put on order, that are more like ideas to implement)

  • port everything from the old wiki.

  • video tutorials, everyone should do a short video explaining something. The topic can be anything but probably things like setting up OF make more sense than code related topics.

  • On the same note as the video tutorials, I was wondering if videos of the provided example apps would be helpful. Videos like James' are great for people to get a feel for the capabilities before diving in. The ofxTimeline example and his TSPS+Unity example come to mind. -jvcleave

  • Better beginner examples for standard file handling stuff: load and parse/write and save xml, search through a directory for a file, etc. This could mainly be highly modularized examples that people could work off of. -- GAB

  • Some ofAssimpLoader examples: loading a mesh, playing back existing mesh animations, controlling a rigged mesh. -- GAB

  • More resources for working with networking in OF: basic web API examples, socket communication examples, and tutorials. -- GAB

Examples

Which examples are in dire need of improvement? Which core functionality needs examples in the first place?

  • ofBuffer / ofFile / ofDirectory need examples now.
  • ofDataPath / working directory, etc.
  • ofCamera could use more tutorials and the 3d tutorial is a bit too complex, simpler smaller 3d examples
  • ofPixels / ofPixelsRef, etc could be useful
  • fbo, advanced fbo options. For example, showing how trails in a floating point fbo look vs trails in a non floating point fbo. Sort of "best practices" and ideas to try out.
  • more about shaders and fbos.
  • some sort of OPENGL stress test example, that says, "my machine can do X,Y but not Z". luaAV has a fairly good one to look at.
  • ofMesh, approaches to working with meshes, etc.
  • tweening example (Golan)
  • color example (Golan)
  • Anything vbo related.

Other Changes

  • "myApps" in "examples", containing emptyExample