Not logged in, Join Here! or Log In Below:  
News Articles Search    

Submitted by Alex Babkin, posted on March 10, 2005

Image Description, by Alex Babkin

Statement: This is a sailboat simulator, which is a model of how a sailboat would behave in real life in response to actions of the user controlling it and changing weather conditions. In addition, the "god mode controls" would be available that would allow a user to change the wind behavior. The simulation is set in an environment consisting of limited area of terrain with multiple water bodies in it (rivers, lakes, etc.) For enhanced realism, sky would be rendered above the setting and ripples on the water.

The project will involve completing the following subtasks: modeling the boat and the terrain; drawing and implementing a sky-cube; implementing reflections and procedurally generated bump-mapping for the water plane; physical simulation of floating body dynamics, interaction of cloth with the wind (sails and a flag); implementing a reasonable UI that will allow a user to control the boat with steering (rudders) and changing the orientation of the sail planes. Also it will allow to change viewing angles of the camera, to be able to observe the boat from all reasonable angles.

The uniqueness and how elaborate this project is, is what makes it interesting and challenging.

Goals: All of the physical phenomena in the dynamics simulation should be visualized as physically plausible, at least to the "naked eye". (i.e. if the user will not analyze it too much) The environment should be made looking reasonably realistic, which will be achieved by using techniques that were described in the “Statement” paragraph. In general, the user should feel that the visual feedback of the simulator is natural and would resemble that of how a real sailboat would look in real life.

Technical outline: Cloth physics simulation is based on the works of Xavier Provot 1995. In essence, it suggests using a network of springs to model a piece of cloth, updating each 'node' every time step by performing Euler integration of all the internal and external forces that act upon each node in the model.

Floating solid body physics is calculated straightforwardly using Euler integration on the standard physics formulas.

Terrain is a standard gray-scale image based heightmap mesh. For improved realism it is textured and lit.

Waterplane reflection effect is achieved through first rendering from underneath of the waterplane, and then appropriately texture-mapping the result onto the waterplane while performing the main rendering pass, procedurally perturbing the texture coordinates to create a ripple effect.

A standard skybox (textured 3d box around the camera) is used to create the sky and an illusion of 'infinite' environment.

The boat was modeled in an external 3d modeler and imported into the simulator through an *.obj importer.

A convenient UI for controlling the boat is the use of mouse and keyboard buttons and moving the mouse while holding down appropriate buttons to perform desired actions. A compass control will be used to show the current orientation of the camera relative to the orientation of the terrain.

Bibliography: "Deformation Constraints in a Mass-Spring Model to Describe Rigid Cloth Behavior", Xavier Provot, 1995

More screenshots:

Image of the Day Gallery


Message Center / Reader Comments: ( To Participate in the Discussion, Join the Community )
Archive Notice: This thread is old and no longer active. It is here for reference purposes. This thread was created on an older version of the flipcode forums, before the site closed in 2005. Please keep that in mind as you view this thread, as many of the topics and opinions may be outdated.
Danny Chapman

March 10, 2005, 09:59 AM

Go on - give us an executable to play with!


March 10, 2005, 10:12 AM

And get a better web host while you're at it! ;-)


March 10, 2005, 02:21 PM

Now just wait one cotton pickin' minute. Sailing games are copyrighted by ummm...have to pay me $50 if you want to continue working on your project. Actually, give me a buzz if you want any source code, I already made a sailing game, and anything you can use from it is fine by me.


Aaron A

March 10, 2005, 02:51 PM

As long as he approached it on his own merit then he too owns a copyright to his version. If you had patented it on the other hand ...

Anyways. That looks great.
The water and physics obviously has been your main focus so far ;)


March 10, 2005, 03:01 PM

Names starting with the letter A are also copyrighted by me, Aaron...looks like you owe me $100.

Of course I was kidding! my humor that weak these days?


March 10, 2005, 03:36 PM

wot no fresnel :)


March 10, 2005, 03:57 PM

Yes. Yes it is. ;)

Victor Widell

March 10, 2005, 08:16 PM

The water looks good, but you really need to wotk on the terrain. Why not grab any of the dozens of good terrain engines here on the IOTD gallery?


March 15, 2005, 03:19 PM

Excellent! I always welcome any sailing simulators into my life, being a sail boat owner. Keep us posted as to the progress.

By the way, have you checked out vsk3 ( They make a sailboat simulator, the demo looks promising anyway. Their vsk2 game was nice.

This thread contains 9 messages.
Hosting by Solid Eight Studios, maker of PhotoTangler Collage Maker.