Lightweight Ray class and operations for openFrameworks (e.g. hit detection, intersection). For more intense use check bullet physics
Switch branches/tags
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
ofxRayLib Fixes Apr 12, 2017
ofxRay_example 0.9.0 Jun 30, 2015
ofxRay_ofPlaneExample 0.9.0 Jun 30, 2015
ofxRay_ofPlanePrimitiveExample 0.9.0 Jun 30, 2015
ofxRay_ofProjectorExample 0.9.0 Jun 30, 2015
src add reflect function Jun 24, 2018
.gitignore move the intersection method to update Mar 15, 2014 Mention the 0.8.0 tag in Readme Jan 13, 2015



A lightweight set of tools for intersection testings (e.g. does a ray intersect a plane).


The current code in this repository is designed for openFrameworks 0.9.0 (which has different base classes). If you are looking for a version of ofxRay which is compatible with previous versions of openFrameworks, please check .



A Ray is defined by the starting point s and the transmission vector t . Check equation (5) at

We define a ray as an infinite line (continuing infinitely forwards and backwards along the line t and - t starting at s .

The line is defined by points s + u * t , where {-inf < u < +inf}.

A Line segment is a line which has finite length. We denote a line segment as a ofRay between s and t where infinite is set to false , i.e. a Line segment is a finite section along a ray


A Plane is defined by a position on the plane c and a normal vector n .

We can also define the plane using the notation a x + b y + c z + d = 0 (by using the appropriate constructor).

For a non-infinite plane, we define the bounds of the Plane segment with the 2D vector bounds, and the up vector up. We presume that the up vector and n vectors are perpendicular.


A Projector is defined by projection matrix and its pose (defined by ofNode which it inherits from).

We can use a projector to preview a projector or camera in a scene, and to generate pixel _ofRay_s.


A Camera is defined the same as a Projector, but has distortion coefficients also.


All objects within ofxRay inherit from ofGeometric.