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... some of this things are already on the openFrameworks Vimeo account but seem unaccessible from openframeworks.cc )

  2. Some basic programming principles ( We can follow Toddy book or Daniel Shiffman order )

  3. Going deeper in to OF

    • A generic map and explanation about openFrameworks/lib/openFrameworks and base libraries ( openGL, assimp, etc..) in order to give a general more clear idea what OF is. And people start geting excited about the things they CAN do with OF
    • Transition tutorial from other frameworks and lenguajes: like OPP tutorial ( http://wiki.openframeworks.cc/index.php?title=Ooops%21_%3D_Object_Oriented_Programming_%2B_Classes) and P5 Tutorial ( http://wiki.openframeworks.cc/index.php?title=OF_for_Processing_users ) both from the wiki. ( Example: one way to put all this things on the road it´s through start bulding a BASIC PARTICLE EXAMPLE that first make an object and the makes array of it )
    • 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). ( Example: in this point we can return to the previous example and make an ADVANCE PARTICLE EXAMPLE using vectors and lists )
    • Tutorial on arrays - Array of ints, array of strings, array of images, array of objects, array of arrays (multiple image sequences & simple particle system)
    • I/O: ofFile() / ofDirectory() / ofURLFile() (More like Ruxlu powerpoints but with examples.)
    • Sound: (More like Ruxlu powerpoints but with examples.)
    • Text Examples: a mix of chars arrays, string, ofToString() and ofTrueTypeFont()
    • Events: ofEvent() and ofEventListener Tutorial on Event Handling and maybe how to build a simple GUI button or slider ( http://wiki.openframeworks.cc/index.php?title=OF_Event_System )
  4. Going further or beyond the limits ( ADDONS )

  5. Deep and Punctual Tutorials: from here it´s more about going deep on a particular subject.

  6. Advance use && contribute

    • 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)
    • How to make good addons that can be compiled succesfully over all platforms.
    • Code style
    • Good oF practices: ofLog() ( https://github.com/openframeworks/openFrameworks/issues/858 ) , ofGetAppPtr() ( http://forum.openframeworks.cc/index.php?&topic=3962.0#p20661 ), maybe a little explanation about smartPointers
    • Core contribution. maybe here it´s a good place to talk about the history of openFrameworks Core and how/why things are like they are.

Some idea for the tutorials

  • 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

  • port everything from the old wiki. / Potentially moving some of the tutorials from the wiki to the site, or cleaning them up / modernizing them.

  • 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