Posts Tagged ‘demos’

Procedural Clouds

November 21st, 2007 shyam No comments

A procedurally generated, real-time, GPU-based cloud module, written on top of the OGRE 3D engine. Cloud formation, movement, lighting and layers. One version was also done in pure OpenGL/C++. Both implementations make use of GLSL.

There is also a paper that goes along with this project, to better explain the techniques used.

Download: source (Ogre), source (OpenGL)

Categories: Code Tags: , , , , ,

Wallpaper Algorithm

January 6th, 2006 shyam No comments

This is an implementation of the Wallpaper Algorithm as described in “The New Turing Omnibus” by A.K. Dewdney. The algorithm creates a repeating pattern of dots based on user supplied values. In addition, the UI allows for 3-D navigation. Done in C#.

Download: source

Categories: Code Tags: , , ,

Kohonen Self-Organizing Map Demos

December 5th, 2005 shyam 4 comments

In artificial intelligence, SOMs, or Self-Organizing Maps, are a type of neural network. They can be used to ‘teach’ a computer to recognize various attributes. This project deals with two demos: SOM_Color and SOM_Image. Both are written in C#.

SOM_Color is a color recognition program. A grid of nodes is initialized with random colors. The application learns how the colors are related to each other, and will sort the colors so that like-colors end up near each other. Color “similarity” is defined by their respective RGB color vector Euclidean distance.

SOM_Image is an image recognition program. A database of images is presented to the application (Madden NFL ’06 images are provided with the download). The program will group similar images near each other. Two classifications are used for this similarity calculation: a histogram of lights/darks and colors. This application works surprisingly well.

There is also a paper that goes along with this project, to better explain the utilized techniques.

Download: source

Categories: Code Tags: , , ,

Particle Engine

May 5th, 2005 shyam No comments

Project Goals:

Our goal with this project is to effectively implement a particle engine in a 3 dimensional environment. By a particle engine, we mean a system which will effectively implement realistic weather-type effects through the use of small, continuously moving particles throughout our scene. A system like this takes a lot of “background” programming in order to both manage and manipulate the several different systems we plan to create. More importantly, memory management is a very real issue here as we will be creating hundreds, if not thousands, of particles accross all of the different systems should they all be turned on at the same time. Thus we will start with a basic 3 dimensional environment with the user having camera control of moving fowards, backwards, left, right, rotate left, and rotate right. Once we have this basic “arena” set up, we will texture the environment to make it a more realistic-looking area with a grassland base and appropriately stitched skybox for the atmosphere.

As for the details regarding the actual particle engine, we will start with a top down design, having a particle manager at the top of the hierarchy to create, destroy, and manipulate all of the different systems we will be implementing. This particle manager will have methods for adding and removing systems from the scene as well. In addition, we will be creating a base class with virtual initialization and update functions to be overridden in the classes we define for each specific type of system.

On the smaller scale of particle management, our particle system objects will hold a livelist and deadlist for managing our particles. Whenever a particle moves out of the range of the scene, or where we want the system’s particles to exist in the scene, they will be moved to the deadlist to be re-initialized and used again, versus destroying and re-creating each particle to simulate continual motion, which would be rather memory intensive and slow. Our actual particle object, to be created and re-initialized within each system, will be rather small in the amount of data it will hold, but items such as it’s texture, current location, lifetime of the particle, and x,y,and z velocities to control its motion will be among them.

As for the differing aspects of each individual system, there aren’t many variations other than the “origin” from which each system’s particles will emanate from and the boundaries of each system.

Planned Effects:

  • Rain, Snow, Fire, Smoke, Water (Fountain), Other

Reference List:

Images:

Download: source

Categories: Code Tags: , , , ,