Category: Open Frameworks

Please Log In or Register

Poco with SSL for OpenFrameworks 0073

OpenFrameworks does not ship with SSL support on OSX. I compiled the OpenSSL lib dependency and included an example 0073 Xcode project. This allows you to load https features of APIs like twitter and instagram user data.

OF_0073_POCO_SSL


ofPrimitives

New primitives that extend ofNode. ofPlane, ofSphere, ofIcoSphere, ofIcosahedron, ofCylinder, ofCone and ofBox.

Source Code: https://github.com/NickHardeman/openFrameworks/tree/feature-3dGraphics

OF 3dPrimitives

Calculate face normals to get a different lighting effect. Smooth normals is also a convenience function.

OF 3dPrimitives Vertex normals

Changing texture coords is easy, even after the primitive is created. Planes and meshes have the option to resize to the texture and do appropriate mapping for arb and non-arb textures. So repeat textures is easy to create.

OF 3dPrimitives tex coords

Easily map live videos.

OF 3dPrimitives - textured video

Manipulate the meshes by accessing the mesh faces individually. The texture coords will stay put. You can also access sides or parts of the mesh with functions like box.getSide( ofBox::FRONT );

OF 3dPrimitives - mesh manip

Calculate the normals based on the triangles (ofMeshFace) if you move the faces around in 3d space.

OF 3dPrimitives mesh manip


OpenFrameworks Circle Packed T – Shirt

A while ago I wrote some circle packing code to pack as many circles into a image based on colors. I had some free time and I didn’t want to stare at the computer anymore so I ran the software on the OF logo and made this design.
OF 007 XCode project available on github: https://github.com/NickHardeman/CirclePacker
In the 600 x 600px image there are 201 circles and the software took 7.35 minutes to complete. Could use some optimization, but it worked as well as I needed it to. :)

I printed the pdf on my crappy printer, taped the 4 pieces of paper together to make a larger logo and then painstakingly cut out all of the circles with an xacto knife.

OF Circle Packed Stencil

I liked the imperfections that would be inevitable due to the uneven paper and human error while spray painting the stencil onto a shirt. I really like the inconsistant components; the spray paint, the cut outs and the uneven stencil visualizing computer generated conciseness.

OF Circle Packed T - Shirt

Now the shirt is available for purchase on spreadshirt, with some of the proceeds going to OF! woohoo. It comes in many different sizes and colors. Get one now.

 


Paik Times Five

I provided some additional software dev help for the Paik Times Five project by Flightphase.
Creative Director: Karolina Sobecka
Technical direction and lead software development: Jeff Crouse
Additional software development: me :)

Karolina wrote a thorough description of the project here.


Audio Reactive Kinect Experiments at IAC

I created some audio reactive visuals using the kinect for the Tribeca Film Institute Interactive Day. It was an extremely short timeline. The video wall was impressive, at 120ft wide and 11ft tall. Video coming soon!

Line Visual

Kinect Particles

Meta Ball Visual

Last minute tweaks.

OF tweaks


OpenFrameworks Icons

I created some icons for use with OF. Download of-icons. Read more about how to use them from this post.


Clean

of-clean
of-clean-debug


Scanner

of-scanner
of-scanner-debug


Pen

of-pen
of-pen-debug


Stand-Alone Application in OpenFrameworks

Include data folder inside application

OpenFrameworks is great for developing applications quickly and the data folder is easy and convenient when you are developing. But after the application is complete and you are ready to distribute/move it around, it can become problematic. For example, if you have more than one OF application in the same folder and they both need a data folder, you have a problem. The best solution I have found is by mazbox in his of64 screensaver example. He used a command that will copy your entire data folder into your resources folder relative to your application:

cp -r bin/data "$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/Resources";

This needs to be added to the Run Script command found in the application target. See image below.

You can check that it have been moved successfully by right clicking on the application and choosing “Show Package Contents” and it will be in Contents / Resources / data. Now that your data folder is being copied over, we need to tell OF where to look. So we need to set the path root by calling ofSetDataPathRoot("../Resources/"); in the setup function. Now you can move the application around and not worry about its relation to the data folder.

MORE INFO


Sphere Displacement

Playing around with ofxMPMFluid to create a displacement map for a sphere.

Sphere Displacement

Screen Shot 2012-01-31 at 1.42.42 AM

Screen Shot 2012-01-31 at 1.40.53 AM


Extrude Any Font into 3D

For the video below, I needed a way to extrude any font into 3D objects for use with ofxBullet.

There are many ways to do this and other examples using OpenFrameworks in this thread. My approach was a little more complicated than it should have been, but it worked. I used the following to get the paths of the letters for any font:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<code>
ofPath path = font.getCharacterAsPoints(letter);
vector <ofpolyline> polys = path.getOutline();
// resample the font points so that we have a point every (x) pixels;
for (int i = 0; i < polys.size(); i++) {
 
	// now resample and draw new dots
	ofPolyline sampled = polys[i].getResampledBySpacing(samplePixels);
	sampledPolys.push_back( sampled );
	// outline
	for (int j = 0; j < sampled.size(); j++) {
		points.push_back( ofVec3f(sampled[j].x, sampled[j].y, 0.));
	}
}
</code>
</ofpolyline></code>

MORE INFO


ofxBullet

ofxBullet Examples from Nick Hardeman on Vimeo.

ofxBullet is an addon for OpenFrameworks for the incredible Bullet Physics library. Included are all of the primitive shapes; sphere, cone, capsule, box and cylinder. Joints are supported as well, between two shapes and a shape and a location. Collision events can be enabled to fire an event. The object passed contains information about the collision, including the two colliding objects, the location of the collision, etc. Mouse events can be enabled as well, and pass an event similar to the collision events. Mouse grabbing is also supported. The custom shape example illustrates passing a mesh from a loaded collada file (the OF logo) and building the bullet shape. This custom shape class also takes all of the primitives and supports multiple meshes.
MORE INFO


Older Posts