Source code and sample output for Matlab and OpenCV based image processing software generated as part of Iowa State University's graduate level Computational Perception course (HCI 575x). Homework projects included mathematical morphology, barcode and license plate reading, vehicle and pedestrian counting, object tracking (with and without occlusion), face detection, and implementation of eigenface based facial recognition and reconstruction. My final group project focused on a brain-computer interface, in which EEG data was used to detect emotional response to visual stimuli. The detected emotional state was then used to control video effects applied to the original stimuli.
Source code demonstrating how to apply FreeFrame plugins (open-source cross-platform real-time video effects plugin system) to video/webcam footage in concert with Intel's OpenCV.
Maya file demonstrating interparticle collisions constrained to a surface. Two separate particle systems use per particle radial fields to simulate interparticle collision. A per particle expression is then used to constrain the particle simulation to a specified surface.
Maya file demonstrating a particle dynamics system developed to simulate complex chemical and molecular reactions. Two separate particle systems (blue and yellow) serve as the per particle goals of one another so that the emitted particles weakly gravitate towards the other color. A runtime script (partCollisionGen) is then applied to a locator so that it can perform a per frame check for interparticle collisions. If a collision occurs between a blue and a yellow particle, they are deleted and a green particle is added to a third particle system. A turbulence field keeps the green particles moving around the scene after emission.
Maya file demonstrating level of detail geometry swapping within a particle system. Three different geometric primitives are added to a single instancer. Then a new per particle attribute, LODindex, is added to the particle system. A per particle expression is added to the LODindex attribute that selects the proper instanced object index based on the particle's distance from the active camera. Finally, the instancer's ObjectIndex parameter is set to LODindex to enable its control over the visible geometry.
GUI based MEL script that imports Protein Data Bank data into a set of particle systems. A separate particle system is created for each atom type present. All particles are created with the proper atomic radius and CPK color value.
MEL script that randomly scatters copies of a specified object across the currently selected surface or subsurface. The random placement is calculated based on surface area (large faces are more likely to get picked, etc). The particle system version distributes particles over the selected surface instead of objects. You can always use this version, then instance geometry on to the particles later.
GUI based MEL script that exports the geometry of an entire scene for use in the Torque Game Engine. The script traverses through the scene, exports each object individually using the existing Maya2DTS Exporter, and writes a Torque mission file that arranges the objects correctly to match the Maya environment. Level of detail and collision meshes are supported as long as you adhere to my simple hierarchical scheme (sample file).