Hello,
I am writing to find out whether other people around here are interested
in a major 3D graphics project.
My (personal) goal is to port a pretty large library of minimal surface
parameterizations away from Mathematica to another math software
package,
and Maxima has become choice #1.
The current support of 3D graphics in Maxima is somewhat limited (as
far as I can see)
in that only simple 3d plots of parameterized rectangles are supported.
It would for instance be nice if one could combine various 3d plots and
add other primitives like text etc. (can one access and manipulate the
result of a plot from within Maxima, btw?).
I have, however, something different in mind. My current Mathematica
set-up
uses PoVRay (this is an open source raytacer) as an external viewer.
For a parameterized surface, I create triangle meshes for the surface,
thin cylindrical
pieces for the parameter lines, and little spheres for the intersection
points where the
parameter lines intersect. These data are written to a file, which is
rendered by PoVRay, and then imported back into Mathematica.
This whole process is surprisingly fast, and unless one insists on
production quality
perfectly anti-aliased images, the bottleneck lies clearly at the file
operations.
All this functionality can (and will be) easily reproduced from within
Maxima.
So here is (finally) my question: What about building a raytracer into
Maxima?
One could set up special data structures for 3D objects which can be
generated (even symbolically, say for animations), and then call a
function 'render' that would
raytrace an image of the objects in the scene. The mentioned bottleneck
would disappear, and one could
have the highest quality rendering engine ever built into Maxima.
Is there any interest in such a project?
For the beginning, one could emulate the behaviour of a built-in
raytracer
by writing Maxima code that writes the objects to files and uses PoVRay
as
an external raytracer, this would then extend the package I am working
on.
Packages of this kind have been written for Mathematica, but none has
reached a stage of perfection.
I'd be happy to talk to people who have similar interests.
Matthias