English version
Accueil     À propos     Téléchargement     Ressources     Contactez-nous    

Ce site est rarement mis à jour. Pour les informations les plus récentes, rendez-vous sur le nouveau site OCaml à l'adresse ocaml.org.

Browse thread
(Mostly) Functional Design?
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: 2005-07-20 (00:30)
From: Paul Snively <psnively@m...>
Subject: Re: [Caml-list] (Mostly) Functional Design?
Hash: SHA1

Hello Jon!

On Jul 19, 2005, at 4:58 PM, Jon Harrop wrote:

> On Tuesday 19 July 2005 18:13, Paul Snively wrote:
>> I guess I should mention that I am in the process of attempting to
>> build an F-Rep-based geometric modeling kernel in O'Caml,
> You mean like this?
>   http://cis.k.hosei.ac.jp/~F-rep/
Precisely. Specifically, I'm attempting to essentially go straight  
from the admittedly incomplete VDM spec found in "Pasko A., Savchenko  
V., Adzhiev V. and Sourin A. "Multidimensional geometric modeling and  
visualization based on the function representation of objects",  
Technical Report 93-1-008, The University of Aizu, Japan, 1993," near  
the bottom of the "Publications" page, to working O'Caml code. Some  
aspects of VDM seem to translate essentially directly (e.g. they  
actually use "let ... = ... in ..."). Others seem to require just a  
little bit of thought, e.g. whether a "value" defined as a "Float*"  
actually needs to be a "float option" or whether it's just that VDM  
doesn't have a better way to express variants, and their tree  
structure can be described as a variant without using "option"  
anywhere. At the moment, I strongly suspect the latter.

> LablGL is excellent, BTW. You may find some of my work useful if  
> you're
> learning it:
>   http://www.ffconsultancy.com/products/ocaml_for_scientists/ 
> visualisation/
>   http://www.ffconsultancy.com/free/maze/
>   http://www.ffconsultancy.com/free/ray_tracer/
>   http://www.ffconsultancy.com/free/ray_tracer/comparison.html
Yes, I've seen bits of your work and greatly appreciate them! That  
reminds me that I need to buy your book. :-)

> I think you will find OCaml to be dangerously well suited to this  
> task. I've
> used OCaml for several somewhat-similar projects and find OCaml to be
> enormously more productive than C++ (my previous "favourite  
> language").
Yes, I'd actually begun the project as a C++ project, for no other  
reason than the hope of gaining more collaborators. That hasn't  
happened, and so I've bitten the bullet and started over, partially  
to become as fluent as possible in O'Caml, and partially because I  
already had had the sense that it was the right tool for the job,  
even if ultimately I take longer with it on this project (cf. "become  
as fluent as possible...")

> I am working full-time on our presentation software so I can't  
> afford any time
> to work on new stuff. However, there is probably some overlap and I am
> willing to open source some interesting and useful parts of our code.
That's a very kind and generous offer, especially when I consider  
what you've already made available and published. Thanks! By the way,  
how should an American best purchase your book?

>> Ultimately
>> the goal is to develop a 3D modeling system competitive and
>> collaborative with the UnrealEd etc. tools included with the Unreal
>> technology based games, but there are many subprojects that have to
>> happen first, and a good F-Rep kernel seems like an excellent
>> starting point.
> That sounds like a great project. Best of luck with that. :-)
I meant "compatible" rather than "collaborative" above, although I  
must say that Tim Sweeney at Epic Games has already been both  
incredibly supportive, e.g. sending along the source code to the  
UnrealScript compiler to use as a reference point, and incredibly  
forthright, e.g. pointing out that the published Unreal Tournament  
headers weren't likely to result in a working editor, as they leave  
out far too much, and the CSG code was never built into the Mac  
codebase anyway (I'm typing this on my fantastic new PowerBook 15").

All the more reason, I think, to use this as an opportunity to learn  
O'Caml better: even if I never get a working modeler out of it, I  
will have achieved another goal. But I think my chances of at least  
getting a very nice F-Rep-based modeler going, even if it never reads/ 
writes Unreal archives, are vastly better in O'Caml than away from it.

> -- 
> Dr Jon D Harrop, Flying Frog Consultancy Ltd.
> Technical Presentation Software
> http://www.ffconsultancy.com/products/presenta
> _______________________________________________
> Caml-list mailing list. Subscription management:
> http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list
> Archives: http://caml.inria.fr
> Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
> Bug reports: http://caml.inria.fr/bin/caml-bugs

Many thanks and best regards,
Paul Snively

Version: GnuPG v1.4.1 (Darwin)