-
-
Notifications
You must be signed in to change notification settings - Fork 2.6k
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?
-
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 )
- 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/ )
- oF Project structure ( src, bin , bin/data, core and addons ) and how testApp works (
setup()
/update()
/draw()
/ keyboard, mouse, windows events ) ( http://wiki.openframeworks.cc/index.php?title=OF_code_structure_%28image%29 ) - Compiling your first project. Basic guide to start compiling the awesome OF examples
-
Some basic programming principles ( We can follow Toddy book or Daniel Shiffman order )
- 2D Cartesian coordinates, drawing some stuf (
ofCircles()
,ofRectangles()
,ofColor()
,ofFill()
, etc ) ( Basic OpenGL drawing http://wiki.openframeworks.cc/index.php?title=OpenGL_in_openFrameworks ) - Variables ( native C++ type:
bool
,char
,int
,float
,double
and some openFrameworks variables:ofGetWindowsWith()
,mouseX
,ofGetFramerate()
, etc ) - Loops and conditions
- 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 )
- Math handy stuff:
ofRandom()
,ofNoise()
,ofPoint()
,ofVec2f()
,ofVec3f()
,sin()
,cos()
,atan2()
,abs()
,mod()
(Next step in this direction it´s hard-math-freaking knowladge likeofQuaternions()
andofMatix3x3()
andofMatrix4x4()
) - Methots and Classes ( examples: we can start making a PARTICLE EXAMPLE http://wiki.openframeworks.cc/index.php?title=Basic_particle_system )
- 2D Cartesian coordinates, drawing some stuf (
-
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()
andofTrueTypeFont()
- Events:
ofEvent()
andofEventListener
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 ) - 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 ( https://github.com/openframeworks/openFrameworks/issues/896 )
- A generic map and explanation about
-
Going further or beyond the limits ( ADDONS )
- some stuff that use 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)
-
Deep and Punctual Tutorials: from here it´s more about going deep on a particular subject.
- 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
- Animation: ofxTween... / ofxTimeline
- Computer Vision: ofxOpenCV / ofxOpenNI / ofxKinect / ofxFaceTracker ( http://wiki.openframeworks.cc/index.php?title=Color_Tracking )
- Physics: Games! Collisions, using Vanderlin's Box 2D libraries...
- Mobile: ofxiPhone and iOS ( http://wiki.openframeworks.cc/index.php?title=OfxiPhone_comprehensive_guide ) / ofxAndroid (I don´t know )
- I/O: ofxXmlSettings ( http://wiki.openframeworks.cc/index.php?title=Using_XML )
- ofxOSC / ofxTUIO
- Threath: ofxThreath
- GUI: ofxGui / ofxUI
- Network: ofxHttpsUtils / ofxNetwork
- Hardware: conecting to arduinos, Cannon cameras, etc
-
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.
-
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.
- 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