Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Tutorials, Examples and Documentation
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
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
What kinds of tutorials are needed or need to be improved? There is a lot of stuff on the old wiki (analyzed at Old-Wiki-Analysis) and interlaced throughout the list below.
Possible tutorials order from zero knowledge to advance stuff
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 )
- 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 ??) ( http://wiki.openframeworks.cc/index.php?title=OF_Start_Up_Guide https://docs.google.com/document/d/1J20kpNou9SANkKy89jx-qBVEnNH6ciQjIOgxMxDvfNY/edit?hl=es http://www.betasix.net/install-openframeworks-codeblocks-in-linux/ http://web.onassar.com/blog/2011/05/08/getting-openframeworks-to-work-on-osx-command-line/ )
- 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 ) ( http://www.openframeworks.cc/setup/ https://vimeo.com/33985058 http://www.sparkfun.com/tutorials/318 )
- oF Project structure ( src, bin , bin/data, core and addons ) and how testApp works (
draw()/ keyboard, mouse, windows events ) ( http://wiki.openframeworks.cc/index.php?title=OF_code_structure_%28image%29 http://www.quietless.com/kitchen/getting-started-with-openframeworks/ https://docs.google.com/document/d/1s1s0wPWiVA1AIpbke1CnJehl1eMkqcB4kshML0HM2Xs/edit?hl=es http://www.lucaswerthein.com/blog/?p=567 https://vimeo.com/13159856 http://www.41post.com/3291/programming/configuring-openframeworks-add-ons-in-codeblocks http://www.doc.gold.ac.uk/~ma501ed/Open%20Frameworks.pdf)
- Compiling your first project. Basic guide to start compiling the awesome OF examples ( https://vimeo.com/13159243 https://vimeo.com/13159451 https://vimeo.com/13160134 https://vimeo.com/13268726 https://sites.google.com/site/ofauckland/tutorials/project-templates )
Some basic programming principles ( We can follow Toddy book or Daniel Shiffman order )
- 2D Cartesian coordinates, drawing some stuf (
ofFill(), etc ) ( Basic OpenGL drawing http://wiki.openframeworks.cc/index.php?title=OpenGL_in_openFrameworks https://vimeo.com/13268791 )
- Variables ( native C++ type:
doubleand some openFrameworks variables:
ofGetFramerate(), etc )... // timing / timers timers , fDelay, ofGetTimerate, -> may this could be a tutorial to tools (progress bars, timers, alarms, etc)
- Loops and conditions
- Math handy stuff:
mod()(Next step in this direction it´s hard-math-freaking knowladge like
ofMatrix4x4()) Math basic trigonometry (tutorial & example?? / Keith: at what point we have to stop? ): sin(), cos(), atan2(), abs() ,mod() , etc. Good P5 reference http://processing.org/learning/trig/ Good ofNoise examples ( 1D, 2D, 3D, simple, perli noises )
- Methods and Classes ( examples: we can start making a PARTICLE EXAMPLE http://wiki.openframeworks.cc/index.php?title=Basic_particle_system / Spanish example: https://docs.google.com/document/d/11nWCPHqy5dw1Ys7yqL_9vE66yz3P4hjWqhHc_GlDs2g/edit?hl=es / http://www.benmcchesney.com/blog/2011/07/attraction-repulsion-pixels-in-open-frameworks/ )
- Arrays and Pointes ( examples: pixel by pixels stuff and other mirror applications http://wiki.openframeworks.cc/index.php?title=Image_processing http://wiki.openframeworks.cc/index.php?title=Making_VectorFields_from_images / spanish https://docs.google.com/document/d/1aUhvjuBWcaN4p1Vze4yKeEAeTdM1hzxVylCeq-4E24A/edit?hl=es )pointers / vector of pointers / delete-new / pass by copy / pass by reference / pass by pointer (important: focus on operators ) / ASCII art generator / pixel value // getColor getPixel getPixelsRef ( Green Screening from James , Color Tracking )
- 2D Cartesian coordinates, drawing some stuf (
Going deeper in to 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 / this is a spanish translation https://docs.google.com/document/d/1piMIfBW_RlKn_q7cjdQ4kvtJIl6Pl-3DSPDvaDPETsg/edit?hl=es / It seams that it´s a Chiness one that Kyle found / http://vormplus.be/blog/article/introduction-to-openframeworks / http://argentgray.com/programming/openframeworks-tutorial-1 ) both from the wiki. ( Example: one way to put all this things on the road it´s through start building a BASIC PARTICLE EXAMPLE that first make an object and the makes array of it )
- breakpoints / debugging, operators (operator overloading)
- Tutorial on arrays - Array of ints, array of strings, array of images, array of objects, array of arrays (multiple image sequences & simple particle system)
ofURLFile()(More like Ruxlu powerpoints but with examples: http://www.roxlu.com/blog/entry/145/openframeworks-007-presentations ) ( ofBuffer -> brute force for html pages. ofHttp )
- Sound: (More like Ruxlu powerpoints but with examples: http://www.roxlu.com/blog/entry/145/openframeworks-007-presentations )
- Text Examples: a mix of chars arrays,
ofEventListenerTutorial on Event Handling and maybe how to build a simple GUI button or slider ( http://wiki.openframeworks.cc/index.php?title=OF_Event_System )
- Graphics: General openGL and GPU pipeline: ofTexture, ofShaders, ofMesh, ofVbo, ofNodes, 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 Meshes + ofx3DModelLoader and ASSIMP ( http://forum.openframeworks.cc/index.php/topic,519.0.html / Port this http://www.creativeapplications.net/tutorials/shaders-geometry-and-the-kinect-part-1-cinder-tutorials/ http://www.creativeapplications.net/tutorials/guide-to-meshes-in-cinder-cinder-tutorials/ http://www.creativeapplications.net/tutorials/images-in-cinder-tutorials-cinder/ to oF , simple ofShader example (ofxFx and kyle ofxBlue and DoF vertex shader ) , ofCamera example (3D cameras) -> Zach: camera based on ofFbo )
- A generic map and explanation about
openFrameworks/lib/openFrameworksand 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
- OS specific tutorials. How to go down to ... libraries... Poco... ios... etc.
Going further or beyond the limits ( ADDONS )
- 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 ( http://wiki.openframeworks.cc/index.php?title=Adding_addons http://wiki.openframeworks.cc/index.php?title=Making_addons https://github.com/openframeworks/openFrameworks/issues/896 https://vimeo.com/34092591 )
- Make some tutorials that show what behind some addonExamples
- 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)
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 / log / logging (4 example: writting to a file / events) pre-debugging tips tutorials ( commong practices ) / breakpoints / debugging / operators (operator overloading)
- 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.
Deep and Punctual Tutorials: from here it´s more about going deep on a particular subject.
- Computer Vision: ofxOpenCV / ofxOpenNI / ofxKinect / ofxFaceTracker ( http://wiki.openframeworks.cc/index.php?title=Color_Tracking )
- Mobile: ofxiPhone and iOS ( http://wiki.openframeworks.cc/index.php?title=OfxiPhone_comprehensive_guide http://www.memo.tv/archive/iphone ) / ofxAndroid (http://www.openframeworks.cc/setup/android-eclipse/ http://www.multigesture.net/articles/how-to-setup-openframeworks-for-android-on-windows/ http://www.flickr.com/photos/kylemcdonald/4636699390/ http://forum.openframeworks.cc/index.php/topic,3961.0.html http://www.creativeapplications.net/iphone/camera-apps-iphone-tutorial-openframeworks/ http://julioterra.com/downloads/open_framework/set-up_tutorial.pdf http://www.memo.tv/simple-openframeworks-application-on-iphone-sample-1/)
More tutorials ideas or sources
Found this examples that seams part of a workshop https://github.com/obviousjim/OFIntros
ofAuckland Examples and tutorials! https://sites.google.com/site/ofauckland/
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
Which examples are in dire need of improvement? Which core functionality needs examples in the first place?
- ofBuffer / ofFile / ofDirectory need examples now. (working on a ofBuffer/ofFile example loading .csv files -jvcleave)
- 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.
- "myApps" in "examples", containing emptyExample