From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by yquem.inria.fr (Postfix) with ESMTP id E219ABB88 for ; Wed, 20 Jul 2005 02:30:15 +0200 (CEST) Received: from smtpout.mac.com (smtpout.mac.com [17.250.248.88]) by concorde.inria.fr (8.13.0/8.13.0) with ESMTP id j6K0UEnF020239 for ; Wed, 20 Jul 2005 02:30:15 +0200 Received: from mac.com (smtpin07-en2 [10.13.10.152]) by smtpout.mac.com (Xserve/8.12.11/smtpout01/MantshX 4.0) with ESMTP id j6K0UCoU005800; Tue, 19 Jul 2005 17:30:12 -0700 (PDT) Received: from [192.168.0.100] (dsl092-032-215.lax1.dsl.speakeasy.net [66.92.32.215]) (authenticated bits=0) by mac.com (Xserve/smtpin07/MantshX 4.0) with ESMTP id j6K0U7jT027701 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NO); Tue, 19 Jul 2005 17:30:11 -0700 (PDT) In-Reply-To: <200507200058.41178.jon@ffconsultancy.com> References: <9cc3782b05071411004b27b6a4@mail.gmail.com> <69AEC165-A85D-4292-8B6A-32756AF1FD9C@mac.com> <200507200058.41178.jon@ffconsultancy.com> Mime-Version: 1.0 (Apple Message framework v733) Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed Message-Id: Cc: caml-list@yquem.inria.fr Content-Transfer-Encoding: 7bit From: Paul Snively Subject: Re: [Caml-list] (Mostly) Functional Design? Date: Tue, 19 Jul 2005 17:29:57 -0700 To: Jon Harrop X-Pgp-Agent: GPGMail 1.1.1 (Tiger) X-Gpgmail-State: signed X-Mailer: Apple Mail (2.733) X-Miltered: at concorde with ID 42DD9B16.000 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Spam: no; 0.00; caml-list:01 hash:01 geometric:01 o'caml:01 admittedly:01 geometric:01 o'caml:01 variants:01 lablgl:01 ocaml:01 tracer:01 tracer:01 ocaml:01 productive:01 compiler:01 X-Spam-Checker-Version: SpamAssassin 3.0.3 (2005-04-27) on yquem.inria.fr X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=disabled version=3.0.3 -----BEGIN PGP SIGNED MESSAGE----- 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 -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.1 (Darwin) iEYEARECAAYFAkLdmw4ACgkQO3fYpochAqLfKQCfSEWaRAxnfV3W880ZD7i191YY GXsAnA7rezWEZMtV1d3w8B9rXBSKruHD =jgtU -----END PGP SIGNATURE-----