Superficie (surface) is a small program that allows to visualize 3D surfaces, and to have certain interaction with them. It allows to rotate, to move away, to show illumination, etc. on the surface at issue.
It works like this: You generate the data in the program of your selection, like Mathematica, Mupad, Octave, some interpreter like scheme, or plain C. Then you start superficie and read the data (from a file or a pipe).
Look in the 'mathematica/' folder for the mathematica functions that you need to generate the data [There is a package now]. It would not have to be very difficult to write the routines that do the same in any other language, which I plane to do in the next release, perhaps. I'm especially interested in Mupad and Yacas [update: Look in the 'yacas/' folder].
In order to compile it you need OpenGL (Mesa is OK) , gtk+, Gnome, gtkglarea, imlib. If you don't have any or these, there is also a reduced version that only needs fltk and glib.
We are working in Linux, but thanks to autoconf you should not have problems in some other UNIX.
By the way, superficie is
completely free (GPL). If you use it, the only thing that we
requested is that you send your printings, commentaries, critics to
us (constructive, please), and reports of errors.
[4 august 99] I think making a hierarchical model will be harder than I expected. Perhaps I should add some other features first, like integrating it with yacas. With the new version (0.6.5) you can use yacas to obtain some graphics.
[21 june 99] I've changed for n-th time the internal structure. This time a GNode tree is used. Also I've been struggling with OpenGL; my goal before v0.7 is to have a full hierarchical model.
I really hope one day there will be better gtk documentation. Having to read source code to understand what a function does is very very time consuming (at least for me).
[6 June 99] Superficie 0.6 is out. Almost all non-gui routines are now in a c++ library. In addition to the gnome version, I've made a small fltk program;
[17 may 99] Supeficie 0.5 is here. Bug fixes, code reorganization, etc. I've decide this will be the last C release. Next releases will be developed with wxWindows and/or fltk. I would like to work very close to Yacas.
[1 january '99] Here is a snapshot, it doesn't contain radical changes, but is worth the upgrade.
[30 december] superficie is now using autoconf. Also,
i've just finished the switch to gnome-0.90.
The current version is 0.4b
This version only fixes the ElectricFence related bug. So, superficie is almost usable.
There are several changes since v0.3, and i must say it is somewhat broken. You must link libfence, for superficie to work properly. I hope solve the problem in a few days
[17 october] This version includes support for several object types, including polygons, lines, and compound objects.
[30/sept/98] I have been busy with school this days :(, but hope to get back coding next week.
[20/sept/98] Well, things are
going smooth now. Last night i got multiple objects in one "scene"
working. You can have each object rotating independently of the
others, and set some properties for each. Also, i've added support
for different class of objects. The format that exist today became
"MESH". Later i'll add "LINE", "POINT",
and "POLYGON". Oh, i made a mathematica package
(superficie.m), which makes really easy to display parametric plots
with superficie within mathematica (the syntax is identical to
ParametricPlot3D). My intention is to incorporate the types
mentioned above into superficie, and let modules handle other
formats, like geomview's (some of them, at least).
(648k) This package has only the fltk static binary and the examples.
Right now, i'm learning gtk/gnome/opengl while coding superficie. This fact makes the development a little slow, but I hope things become faster as I progress in this things, and better documentation be available. At this moment the people who are programming are:
Juan Pablo Romero: OpenGL, GUI, code in general
As I said before, I am working with Linux, GCC (egcs), Mesa, gtk, gnome, etc.
Why to write a program of this type, if already exist Geomview, and MathGL3d, for example?
Well, geomview is an excellent program that already has several years of development. In spite of it, it is not exactly what i wanted. In the first place, geomview uses Motif. Luckily lesstif exists, that at least allows to compile it.
In fact, my original plan was to port it to gtk. I was reviewing the code a couple of hours, and I realized that the program was of a greater complexity than I had in mind. What I wanted was a simple and efficient program. So I decided to begin from zero.
MathGL3d also seems a nice program, but it's too tied with mathematica (i think), is written with glut and last time i checked, it does not allowed arbitrary rotations. mhhh...
And of course the main motivation is to
learn, and to do something useful.
The plans that we have for superficie are:
Multiple objects in one scene; individual manipulation of each [partially done].
The possibility for another process to control superficie.
Perhaps to use guile, or mzscheme.
Multiple lights (currently only one).
Save to PostScript.
Read/write geomview files.
If your program needs 3D output, perhaps superficie is (will be) the answer.
If it interests to you to collaborate in the development, or you have some question or commentary, you do not doubt in writing to me.
Help needed! I really would like that superficie could be used from Octave, or another free system. If you are interested in this, please send me message.
Assistance with translating and
checking this page will be greatly appreciated.
gtk, Good toolkit. It is free, is actively being developed, has binding for lots or languages.
Mesa. A free implementation of OpenGL.
OpenGL. The official OpenGL site.
GtkGlarea Gtk+ wrapper for opengl.
Geomview Visualization of geometric objects.
MathGL3d mathematica object interactive viewer.
Mupad Computer algebra system. I think is very complete; what i hate is it's interface, and the c-like language.
Octave Another computer algebra system. This one is GPL. I haven't look at it (yet), but again, really dislike the language.
Yacas. The beginning of a free computer algebra system. Very similar syntax to mathematica. I find it very promising.
Mathematica I think it's one of the best software systems made.
fte. This is an excellent text editor. It is FAST, does syntax coloring for several languages.
ddd. A front End to gdb.
Glade. A gtk+ user interface builder. It has save me several hours of boring work.
last modified August 7, 1999 by Juan