HaskellWiki

Haskell | Wiki community | Recent changes
Random page | Special pages

 

Not logged in
Log in | Help

H3D

Categories: Applications

Welcome to the H3D wiki. This page is meant for gathering ideas and suggestions for a 3D modelling application written in Haskell. Writing it should be about exploring the possibilites of Haskell, and adding stuff no other language else has.

Current work:

1 Contributors

Please mention your nickname on #haskell, for future reference.

Also, that way we can determine how many people are willing to work on this project in the future.

If you're willing to contribute (in any way: code, idea's, feedback, even money ;)) to this project, please add your name below. (no strings attached)

2 Open questions and suggestions

An open source application that has to do with 3D modelling. Probably something real-time (like Maya and Blender), but not just another 3D modeller. We want to show off Haskell's strengths, and use techniques unique to Haskell and functional programming.

Ogre3D: open source graphics engine; G3D: http://g3d-cpp.sourceforge.net/; L-systems: technique to create plants, feathers and the lot; SDL bindings (Lemmih); HOpenGL: OpenGL binding for Haskell; Monads (in Haskell) -> http://haskell.org/hawiki/MonadsAsContainers

First idea: build an L-system, then create a simple Ogre3D binding to visualize stuff

Second idea: start with a scene graph, and implement simple stuff like polygon soups and parametric surfaces at first

Use a C interface that doesn't exist yet :-)

http://www.ogre3d.org/phpBB2/viewtopic.php?p=76429#76429

or use Hacanon to call C++ code from within Haskell: [1]

Don't know, as long as it's fun !

boegel


One suggestion i would like to make is to use an existing 3D engine like www.ogre3d.org and just write a wrapper in haskell. So one can do all the fancy math stuff in haskell and just push the meshes and such into the engine.

[The problem with this approach is that it constrains one to use the features of that engine. It is far more interesting to write new kinds of renderers.]

This would make it necessary to write a good and flexible mesh class. I would prefer something with which you can do fancy things like glueing two meshes. Maya has some interesting features that could easily be implemented that way.

bourbaki

3 Suggestions - idea's - stuff we can use

Here are some ideas (feel free to add !):

Any suggestions are welcome !


boegel


Note to self:

L-system information

* http://www.inf.ed.ac.uk/teaching/courses/inf1/fp/assignments/ex3.pdf
* http://planet.plt-scheme.org/
* http://matt.blissett.me.uk/programming/haskell/lsystem/

Useing Hray to render the Lsystems maybe useing metaballs for the branches



Retrieved from "http://www.haskell.org/haskellwiki/H3D"

This page has been accessed 3,000 times. This page was last modified 16:22, 5 October 2008. Recent content is available under a simple permissive license.