HaskLS

From HaskellWiki
Revision as of 12:50, 13 April 2006 by Boegel (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Welcome to the HaskLS page, a Haskell implementation for Lindenmayer Systems (L-systems). The goal is to implement L-systems in Haskell, and provide a way to visualize them using HOpenGL (otherwise, they just produce a bunch of crap).

website: http://www.elis.ugent.be/~kehoste/Haskell/HaskLS

contact: kenneth [dot] hoste [at] UGent [dot] be

This project is a part of a bigger project, called ["H3D"]. Its goal is to start up a 3D modeller project in Haskell.

Current Status

First (context-free and deterministic) L-system implementation. Graphic support: simple visualization with HOpenGL, GUI which allows to set some parameters...

The code is available in a darcs repository located at http://www.elis.ugent.be/~kehoste/Haskell/HaskLS/darc/haskls.

It also includes a nice HOpenGL example (RotatingCube.lhs).

There is also a port to "Gtk2Hs's OpenGL widget" rather than using GLUT. (screenshot)

Some links for more information

* http://en.wikipedia.org/wiki/L-system (general info on L-systems)
* http://www.nbb.cornell.edu/neurobio/land/OldStudentProjects/cs490-94to95/hwchen (3D L-system using C and Direct3D)
* http://www.director-online.com/buildArticle.php?id=1119 (implementation info on 2D and 3D L-systems)
* http://www.alesdar.org/oldSite/IS/chap4-4.html (3D L-system in C++)
* http://www.mario-konrad.ch/index.php?page=20016 (3D L-system in Java using OpenGL)
* http://cgm.cs.mcgill.ca/~msuder/courses/557/tutorial/tutorial.html (OpenGL tutorial)
* http://www.cin.ufpe.br/~haskell/hopengl (old HOpenGL tutorial, most of it wont work with HOpenGL-2.0)
* http://www.tfh-berlin.de/~panitz/hopengl/skript.html (big tutorial for HOpenGL)
* http://www.coscorrosa.com/programs/lsysexp/source/latest/src/builtin.h (lot's of L-System examples)

HaskLs and splines

hints by bourbaki:

* <bourbaki> boegel the idea is that ... ie think of the first think of the tree the root
* <bourbaki> it starts in one point and that is on the ground on the ground you have a circle as a shape
* <bourbaki> and then in the next position you have lets say an ellipse
* <bourbaki> then you want to have something like
* <bourbaki> spline1( lambda ) = pos_on_spline_1
* <bourbaki> spline2( mu ) = pos_on_spline_2
* <bourbaki> and now the homotopy comes into play
* <bourbaki> hom( spline1, spline2, t1, t2 ) = spline( spline1( t1 ), spline2( t1 ), t2 )
* <bourbaki> boegel i mean that along the < and turn symbols you also have a variable along that tells you the amount
* <bourbaki> that way you can do animations of the thickness of branches of changeing textures like makeing the bark     darker where the tree is older or so
* <bourbaki> there also are growth models with lsystems that make use of the nutrition of the plant propageteing stuff throught the lsystem string and so

boegel