Deprecated: Creation of dynamic property AIO_WP_Security_Simba_Two_Factor_Authentication_Plugin::$version is deprecated in /home/nickhardeman/nickhardeman.com/blog/wp-content/plugins/all-in-one-wp-security-and-firewall/classes/wp-security-two-factor-login.php on line 32

Deprecated: Creation of dynamic property wpdbBackup::$backup_dir is deprecated in /home/nickhardeman/nickhardeman.com/blog/wp-content/plugins/wp-db-backup/wp-db-backup.php on line 128

Deprecated: Return type of Requests_Cookie_Jar::offsetExists($key) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/nickhardeman/nickhardeman.com/blog/wp-includes/Requests/Cookie/Jar.php on line 63

Deprecated: Return type of Requests_Cookie_Jar::offsetGet($key) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/nickhardeman/nickhardeman.com/blog/wp-includes/Requests/Cookie/Jar.php on line 73

Deprecated: Return type of Requests_Cookie_Jar::offsetSet($key, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/nickhardeman/nickhardeman.com/blog/wp-includes/Requests/Cookie/Jar.php on line 89

Deprecated: Return type of Requests_Cookie_Jar::offsetUnset($key) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/nickhardeman/nickhardeman.com/blog/wp-includes/Requests/Cookie/Jar.php on line 102

Deprecated: Return type of Requests_Cookie_Jar::getIterator() should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/nickhardeman/nickhardeman.com/blog/wp-includes/Requests/Cookie/Jar.php on line 111

Deprecated: Return type of Requests_Utility_CaseInsensitiveDictionary::offsetExists($key) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/nickhardeman/nickhardeman.com/blog/wp-includes/Requests/Utility/CaseInsensitiveDictionary.php on line 40

Deprecated: Return type of Requests_Utility_CaseInsensitiveDictionary::offsetGet($key) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/nickhardeman/nickhardeman.com/blog/wp-includes/Requests/Utility/CaseInsensitiveDictionary.php on line 51

Deprecated: Return type of Requests_Utility_CaseInsensitiveDictionary::offsetSet($key, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/nickhardeman/nickhardeman.com/blog/wp-includes/Requests/Utility/CaseInsensitiveDictionary.php on line 68

Deprecated: Return type of Requests_Utility_CaseInsensitiveDictionary::offsetUnset($key) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/nickhardeman/nickhardeman.com/blog/wp-includes/Requests/Utility/CaseInsensitiveDictionary.php on line 82

Deprecated: Return type of Requests_Utility_CaseInsensitiveDictionary::getIterator() should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/nickhardeman/nickhardeman.com/blog/wp-includes/Requests/Utility/CaseInsensitiveDictionary.php on line 91
OpenFrameworks | Nick Hardeman | Page 4

Viewing items tagged with: OpenFrameworks

Please Log In or Register

Bass Shapes

Bass Shapes is a stand-alone computer application that is visually stimulated by audio input. Three dimensional primitives are generated and react to the beat of the music using 3d physics. The app was originally intended to be available on the Mac App Store. The app was rejected by Apple who gave the reason “it is not very useful.” Apple suggested adding more features to the app including “multiple scenes/themes, strobe lights, blurring, etc.” The suggestions opposed the original aesthetic, concept and goals, so I decided to release the app for free download for OSX here: http://yellquietly.com/bass-shapes/


The Bermuda Tapes

The John Lennon: The Bermuda Tapes iPhone / iPad application is an interactive documentary about John Lennon’s journey creating his last album Double Fantasy. We developed quite a few interactive experiences that lead to over 40 minutes of interactive content.

The app is available for download from the iTunes store John Lennon: The Bermuda Tapes.

More information about the app can be found on the official site: http://lennonbermudatapes.com.

Made while the Minister of Interactive Art at Design I/O.

We did a bunch of early interactive experiments on the iPad for the project. We also made several tools for creating scenes including a ‘Parallax Editor’ that was used for the side scrolling scenes. The video below shows some of the early-on experiments.


Preparing an OpenFrameworks Application for the Mac App Store

I had to figure out a few things to get an Openframeworks 008 application ready for submission to the Mac App Store. Below are some of my findings.

Remove Quicktime and QTKit

Apple no longer supports the Quicktime API. So remove all of the ofQuicktime and ofQTKit files from the source files in the video folder of the OpenFrameworks XCode project. Remove the QTKit and Quicktime frameworks from the Openframeworks project and your Xcode project inside the frameworks folder. Make sure the libraries are not present in the Build Phases > Link Binary with Libraries.
No Mo QT!
If you need a video player, kronick’s addon that uses AVFoundation, is a good solution. I haven’t tried to find a solution for grabbing video using AVFoundation, so do your research if you plan to use it in your application.

Support Retina displays

As of this writing, OF does not support retina displays on osx. But Theo offered up a fix for GLFW to support Hidpi. So make sure to use GLFW for the windowing. Don’t forget to set ‘High Resolution Capable’ to YES.

Info.plist High Res Capable Settings

Add some preprocessor macros for convenience

I think it’s useful to know if you are in release mode or debug mode, so I add some preprocessor macros in the build settings of the project. I usually use OF_DEBUG and OF_RELEASE respectively. This usually comes in hand at some point during the dev process. Like only showing debug GUIs #ifdef OF_DEBUG. I’ll go over some more uses a little later.

Preprocessor macros in xcode
(only focus on OF_DEBUG + set OF_RELEASE for Release)

MORE INFO


MipMap Textures with Anisotropy in OpenFrameworks 008

If you have worked with meshes and textures in OpenGL, than you probably have experienced aliasing on textures bound to meshes. Unfortunately OpenFrameworks 008 only supports mip mapping of textures that have compression on them. I usually work with straight jpgs or pngs for my textures, so that is not an option. Recently some friends over at Incredible Machines brought up the issue, so I thought it might be useful to post. Both for other people and myself.

Below is an example of a texture without mip mapping. Notice the jaggedness on the checkered image. It is more apparent when there is a sharp angle from the vertex to the camera.
Regular ofTexture

Now here is the mip mapped version of the texture. Notice how it appears more anti-aliased. (Click to enlarge.)
Mip Mapped ofTexture

Anisotropy limits how much “aliasing” is applied between the mip maps. A value of 1 will do nothing, as the value increases so does the appearance of anti-aliasing.
I wrote a convenience function that is based on ofTexture, but includes the mip map and anisotropy functions.

MORE INFO


Change Main Menu in OSX and OpenFrameworks

Main Menu

Attached is a project using Openframeworks 008 that allows you to change the menu items in the application for OSX using GLFW.

MainMenuExample

 

 

 


Kinected Portraits

Kinected Portraits is a series that explores the relationship between computer generated depth information and human perception. The Microsoft Kinect is used to capture the depth information and the associated color image of the subject. A mesh is created from the depth information with densely packed lines representing darker areas and more loosely packed lines for lighter areas.  The mesh lines are traced over the watercolor by hand to give them a delicate, intimate feel. The ‘mesh hatching’ not only provides a shading method similar to ‘cross hatching,’ but also represents the portrait conveyed by computer data. Read about the process here.


Self-Portrait

Self-Portrait – 14.75″ x 16″ – watercolor and pen on paper, 2013 Nick Hardeman

nick_crop_eyes

Victoria

Victoria – 19″ x 26″ – watercolor and pen on paper, 2013 Nick Hardeman

vicky_crop_mouth

Ryan

Ryan – 23″ x 19″ – watercolor and pen on paper, 2013 Nick Hardeman

ryan_nose_crop

Kimmie Jean

Kimmie Jean – 22.5″ x 27″ – watercolor and pen on paper, 2013 Nick Hardeman

kim_eye_crop


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


Weather Worlds

Made with Design I/O. See a full project description on the Design I/O site.


Driving Simulator

I was finally able to post about a driving simulator I created using Unity3D that is driven by a steering wheel and controlled by an iPad.
It is part of a much larger installation.


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


Older Posts
Newer Posts