EMVISE
What does EMVISE stand for?
It hasn't really been decided yet. Take your pick:
- EMVISE Modelling / Visualization In Scripting Environments
- Enhanced Modules -- Virtually Imaginative Scriptable Extension
- Expertly Mastered Vision Integrated Scalable Enhancement
- Eeak! More Verbose Initialing. So Exhausting!
Okay, so the name is meaningless. What can EMVISE do for me?
Nothing much at the moment. It is still in the pre-alpha stage.
EMVISE aims to become a collection of dynamically loadable modules for
TclTk, Perl, Python to ease the task of building
custom 3D modellers and rendering engines. It is not the intention to
produce one comrehensive completely integrated monolithic application
(say, like 3D Studio Max, or Lightwave, or Maya).
Instead one builds small tools to handle a restricted set of tasks as
the need arises -- the aim is to make it possible to do this rapidly
by supplying components that are easy to connect (or integrate, if you
prefer).
The scripting language environments (Python, TclTk, Perl, etc) are the
means by which integration is achieved -- a simple form of "middleware".
What is the current status?
There is source code but it's in pieces --
in the form of separately loadable shared object files (.so files, or
dynamically loadable libraries). No real integration yet. But you're
welcome to play with the code.
- 3D homogeneous vector transform library has been implemented.
- There is a
simple tessellation framework for triangulating parametric
surfaces (such as NURBS).
- A very rudimentary triangle rasterizer is ready for testing.
- 2D image interpolator (i.e. morphing) has
just been added.
- The beginnings of the z-buffer template has to be fleshed out.
- An OpenGL extension for Tk is in the begining stages -- this
should grow into a component for prototyping interactive 3D modellers.
Update: I've since discovered SWIG and FLTK and will be refocus the architecture for these components, though this should not preclude the integration of other GUI libraries.
- A small amount of Python code is used to test out algorithms
before implementing as a C/C++ module. A lot of 3D manipulation can
be performed using Python alone.
I still need to make a start on the programmable shading, motion blur
support, tangent plane continuous surfaces, etc. So much to do. So
little time...