to top:  kelp forest exhibit modeling project
Top Who & What Fish Images & Videos Mail * Models Physics References Help!


The models subdirectory contains 3D VRML scenes with embedded behavior models. Contributions are organized by student:

Boyd Cannon Christie Duman Gagnon Hauth Key Leitz Liles McClain McLean Schalm Tenney Usta

Mark Boyd

I am working with Todd Gagnon on the architecture of the kelp forest exhibit tank (minus the tank floor). I am also messing around with fish and starfish prototypes we can slap a texture and some movement on.

VRML 3D model Complete exhibit
VRML 3D model Kelp tank model alone
VRML 3D model Fish shape using an Extrusion node

Joseph Cannon

I designed the giant kelp using animated extrusions for the blades and simple cylinders for the stipes. Since the kelp is a big user of resources, it was important to reduce the number of polygons to maintain performance. This was done by introducing a low-resolution version in a LOD node where the blades were reduced to static indexed face sets.

VRML 3D model Kelp plant using extrusions (K7_KELP)
VRML 3D model Kelp plant using extrusions (test_kelp_proto)
VRML 3D model individual bulb and leaf

Kevin P. Christie

I am working on physical boundaries and coordinate systems. A collision avoidance algorithm for such a large number of fish would be extraordinarily difficult. It is probably best to allocate space for each fish or group of fish. We could then determine which algorithm to use based on the species and periodic behaviors (night, day, feeding, etc.). But we must first determine what is out-of-bounds based on tank dimensions, rocks, kelp, and other physical boundaries.

Some questions:

  • Should we first begin with the entire tank and allocate space as rocks, kelp, etc. are built in?
  • Should we delay space allocation until all physical objects are in place?
  • What is the most efficient way to allocate the space? Should we build it into the model?

Ildeniz Duman VRML 3D model Black Surfperch
I am LTJG Ildeniz Duman (TUN). I am in CS4470 and I am working on modeling and animating schools of fish.

I am also trying to write a tutorial about "3D Computer Animation with Euler Angles and Quaternions" (it is a draft). You can find some useful information and formulas for simulation and animation. Also I have a quaternion class in C++ and some sample code. You can find both of these from this URL:

VRML 3D model Blue Rockfish group
VRML 3D model Circle Fish
VRML 3D model Circle Fish LOD PROTO
VRML 3D model Generic Circle Fish PROTO
VRML 3D model Garibaldi
VRML 3D model Halfmoon Group
VRML 3D model Halfmoon PROTO
VRML 3D model Kelp Bass
VRML 3D model Kelp Surfperch
VRML 3D model Sardine School
VRML 3D model Sardine PROTO
VRML 3D model Striped Surfperch

Todd A. Gagnon

I am working on the following:

  1. With Mark Boyd to add to his kelp tank by designing more of the components of the aquarium and kelp exhibit outside the tank. Mark and I will add to the model until we have the floors, viewing areas, and 3rd floor architecture above the surface (including the aerator tank, pump, and lights) modeled.
  2. I am also working on a suitable wave model for the surface water that matches the wave caused by the pump.
  3. I am also trying to keep up with the coordinate system diagrams from class discussions.
VRML 3D model Water circulation pump house
VRML 3D model Water surface

Dave Hauth

I'm working on modeling the hydrodynamics of the display. I have a first set of equations describing the motion in a very general sense (rectangular tank with null boundary conditions) finished, but they already require some changes at the surface (ie. air-sea boundary conditions). I haven't had an opportunity to run them in something like Matlab to see how things look but hope to do so soon.

Here are preliminary water displacement plots and corresponding equations of motion.

Scott Key

I am working with Kevin Christi on fish motion, and a bit with the physical boundaries. I will also be compiling a list of frequently asked questions for answering (if you already have some good ones, send them to me).

Jeff Leitz

I'm working with Scott and Kevin on fish/marine life movement in the kelp tank. I'm also taking photos of fish in the kelp tank that we can use without worrying about copyright.

Here's a illustrated fish diagram diagram of major fish components and a spreadsheet of fish dimensions.

Stewart Liles

Stewart provided his "boids" animations which demonstrated flocking and herding. Originally implemented in Java, then output to create interpolators.

VRML 3D model Sardine School,
recorded via interpolators
VRML 3D model Flocking boidfish school,
live using Java
VRML 3D model Flocking sardines,

Ray McLain

I am modeling the tank floor using ElevationGrid nodes. In many ways this is similar to a related research project where we are modeling all Monterey Bay bathymetry data as VRML terrain.

VRML 3D model Kelp tank rock floor

Tim McLean

Hello, I am Marine Corps Captain Tim McLean and I made the leopard shark. Creating the leopard shark was challenging. My programming platform was a Windows system using Silicon Graphics' CosmoWorlds. After several attemps with primative shapes, such as the cylinder and cone, I decided to start with a sphere. First I squished the sphere into a cigar shape. I then cut it in half and stretched the first portion so it was longer than the other. When I joined the two halves back together I had the shark body. The fins were made by taking their respective vertices and pulling them away from the body. To get the color I needed I had to split the shark into top and bottom halves and give each a different material property. I then joined them back together and I had my multi-colored shark. Putting the texture on was the hardest part but with the help of John Locke and MultiGen's software, we succeeded. The swimming motion of the shark went through a few iterations before I finally got the motion right. After an hour of studying the shark at the aquarium I finally figured out how the shark moved his body. Then, using CosmoWorlds, I used the keyframe animator to create the animation that makes the shark swim. All this work took about 2 and a half months of "head-to-monitor contact" but it was well worth the time and effort to see the results. You can e-mail me with your comments at

VRML 3D model Swimming shark

Dave Schalm

I collected pictures and descriptive information about all of the biological species in the tank.

I have designed the placard directory aquarium fish placards, which are in front of the windows. I took pictures of all of the placards and recreated them with an image editing program.

I designed the Fish, Plants & other Creatures and Behaviors web pages.

Karl Tenney

I've decided I will model two fish, the Blue rockfish and the Treefish. Both are listed as inhabitants of the MBA Kelp forest exhibit. I have already studied the motion habits of the rockfish. It hovers in one spot, but the surge and draw of the water makes it appear to move from side to side 1-2 feet. I'm still working on the habits of the Treefish. In addition to fish, I'd like to model the bubbles in our project. The bubbles seem to randomly generate from the tank floor. If anyone has advice or has seen something similar that I could use as a guide, I'm open for suggestions.

I created 13 different fish this weekend using Ildeniz's Circlefish proto and the fish length list. I played around with paint this weekend to match some of the unique fish textures. Last week in the lab we discussed just using a color value. The textures I've been working on specifically are the Sheephead and Treefish. The rest of the fish, we may be able to get away with just a solid color.

Developing the starfish. I started with a star that came to sharp points, and found that it did not look like the real thing. Then I decided to work with a more rounded object. At first, I tried using cylinders, however I was left with a non-tapered edge. Then I tried stretching spheres and connecting them to a flat centered cone. My fourth attempt, is the one posted. I removed the flat cone and connected the arms together. Each starfish is made with many polygons, and could be done with much less. This starfish is approximately 30cm from end to end and approximately 3cm high. Many starfish can be cloned and resized from this one star. To change the texture/color, requires the star to be copied, and results in a larger file size.

VRML 3D model Starfish
Umit Usta

I am working on modeling and animating of fish. I didn't pick a specific one yet. There is currently a problem with the fish texture.

I finished fish proto ( FishProto.wrl ), it has three exposedField to create different types of fish.

  1. skinTexture : for texture of the fish ( Default : null )
  2. fishScale : for scaling ( Default 1 1 1 )
  3. fishDifColor : diffuse color of the fish.(Default 0.7 0.7 0.7). As you know, if you define a skinTexture, this exposedField will be disregarded.
I also create a scene that use this proto.But I didn't use any texture for the scene , I just change diffuse colors of fishes.(Fishes.wrl)
VRML 3D model Several fish
VRML 3D model Fish PROTO
VRML 3D model A fish
VRML 3D model Generic Fish PROTO
VRML 3D model Generic Fish LOD PROTO
VRML 3D model Generic Fishes

The Uniform Resource Locator (URL) for this home page is

Contact information: Don Brutzman (, 831.656.2149)
(31 October 99) (official NPS disclaimer)