Maxilla: an OpenGL-based viewer for dentistry-related VRML files

This is
Maxilla.TK



Copyright © 2008-2009 by Zack Smith

Introduction

Maxilla is an OpenGL-based viewer for dentistry-specific VRML files as well as binary STL files. It could be extended for other VRML without too much effort. Presently it runs under Windows however I've done a little work on a Linux version. The Windows version is more useable since it has Windows-specific popup dialogs, such as file-open dialog.

Note:

  • VRML is a file format for 3D represention of objects and scenes.
  • STL is a file format for modeling 3D solids.
  • Maxilla is covered by the GNU Public License version 2.

Philosophy

The design philosophy for Maxilla is one of keeping it simple, insofar as that is possible. The larger goal is to achieve a program that is:
  • Not unnecessarily complex
  • Not bloated
  • Sufficiently documented
If the program could offer the needed functions of VRML viewing and measuring, and yet remain smallish, that would be a great success.

  • Current the source code length is (inclusive of comments) ~8300 lines.
  • Current Windows .exe is 327 kB.

Screenshot

Click to enlarge.

Animation

I produced this as follows.
  1. I generated the frames manually using Maxilla (the d key dumps the OpenGL subwindow to a BMP).
  2. I created an Avisynth script to collect the frames into a video and resize that to 640x480.
  3. I opened that in VirtualDub and exported as an animated GIF.

Click to enlarge.

Non-reliance on other software

One key aspect of Maxilla that keeps it compilable, reliable, and small is that it uses only a few other projects' code. It requires only the following.

Windows

  • OpenGL (provided by Windows as DirectX)
  • GLUT 3.7.6
  • GLUI
  • Zlib
  • My own bmplib (included)
  • My own httplib (included)

Linux

  • OpenGL (use Mesa)
  • FreeGLUT
  • GLUI
  • Zlib
  • My own bmplib (included)
  • My own httplib (included)

Compilation procedure

Windows

Maxilla requires Microsoft's Visual C++, but don't worry: Microsoft now provides a free version of their development system called Visual C++ Express. It lacks support for MFC, which is one mechanism for creating GUI widgets or "controls", but this is not a problem: Maxilla's GUI widgets are produced by the free, OpenGL-based GLUI widget system.

Note that compiling zlib under Windows is a little tricky, since there is no VC++ project file included. I found that downloading libpng was helpful since it has a project file for zlib. Libpng is not required by Maxilla.

Linux

Download, compile and install FreeGLUT and GLUI if you don't have them. You've already got zlib. Then build using the makefile.

Note! I haven't tried compiling under Linux in quite some time, nor even under Cygwin.

Download

Status

This initial version supports many but not all parts of VRML files.

A few versions back the program was able to display the included non-dentistry VRML file snoman.wrl, but presently that's not displaying properly again. Not sure why.

Links





Valid HTML 4.01 Transitional

eXTReMe Tracker