Home

  
Home Cavernosa
My Site
Intro
Cavernosa
 
Cavernosa
Intro
Instructions
Screenshots
Download
 
Email me
acox@globalnet.co.uk
 
 
  

Cavernosa Instructions

To Run Cavernosa

To run it as a stand-alone GLUT app, the file Cavernosa.py can be dragged and dropped on the supplied python.exe.
To run within Blender, make sure the files Cavernosa.dll and CavernosaBlender.py are on your Python path (Your Blender or Windows folders are good choices) and within Blender press [shift-F11] to get a text windw, then type "execfile('CavernosaBlender.py')" and press [alt-p].

To get a quick look at it in action you can load the supplied CavernosaBlender.blend file and press [alt-p] with the mouse cursor over the already-open text window.

At the moment Cavernosa achieves a higher frame rate outside Blender than it does when run as a plugin. This may not be an issue for people whose machines have a bit of poke but for others, the sculpting process can be more enjoyable if done outside and the result saved (press 'p') then loaded into the plugin and exported.

To Use Cavernosa

As it is basicaly a sketching program with 2d pixels extended into 3d voxels, using Cavernosa requires you to learn to fly through the 3d grid that is it's medium.

There are also 2 key points which must be controled. The focus point is where you can add or remove material and is always dead-ahead of the viewpoint at a varying distance (the distance is what you control). The rotation point is at some offset beyond the focus point or coincident with it. You are able to circle it, simply to get around or with the focus point between you and it, to achieve the same coiling effect that is used to construct clay pots. This all entails a fairly complex control system organised around 4 pairs of keys, each of which affects the action of mouse movements.

The Key pairs are:
  • f & v (camera relative movement):
    • f: mouse look (rotates the camera around the viewpoint).
    • v: forward/back & left/right.
    • f&v: up/down & twist about camera z-axis (just try it).
  • d & c (plane locked translation):
    • d: forwards/back & left/right in the plane perpendicular to the grid axis closest to the camera up vector.
    • c: up/down & left/right in the plane perpendicular to grid axis closest to camera forwards vector.
    • d&c: up/down & left/right in the plane perpendicular to the grid axis closest to the camera right vector.
  • s & x (circling the rotation point):
    • s: up/down & left/right around the rotation point, using the grid axis closest to the camera up vector as the rotation axis.
    • x: up/down & left/right around the rotation point, using the grid axis closest to the camera forwards vector as therotation axis.
    • s&x: Nothing for now.
  • a & z (moving the two key points):
    • a: rotation point away/towards focus point & left/right translate (pointless and often slightly annoying).
    • z: focus point away/towards view point & left/right translate (pointlessly).
    • a&z: viewpoint and focus point together away/towards the rotation point, leaving it where it is & left/right translate (pointlessly).

The left and right mouse buttons add the current tool bit (a preview of which is drawn in green wireframe at the focus point) to the grid or subtract it respectively.

The Blender GUI:
The side panel widgets are broken up into several groups:
  • Resize This:
    • PH: Slider that controls the width of the side panel.
    • BH: Slider that controls the height of the side panel buttons.
  • Display:
    • F: Fog On/Off toggle.
    • W: Wireframe/Solid grid toggle.
    • DB: Display Box stick/follow-focus toggle. (The display box is the volume of the grid which is actualy rendered or output on export. It has two modes: a) follow the focus; b) stay where it is. The second mode is useful if you want to be sure how large the sculpture you are making is or if you want to take a look at a part of it from a distance.)
    • T: Twist Compensation On/Off toggle. (Helps to draw straight lines with the plane locked translators and avoid disorientation among other uses.)
    • A: Author credit On/Off toggle.
    • R: Rendering toggle. Disables the display loop and allows you to read the tool tip messages for the widgets. Once released, this button is reluctant to be pressed again. Clicking around on other buttons or restarting the script is nescessary to make it depress.
    • Count Faces: Print the number of grid faces in the display box to std::cout. As blender has a 64k vertex limit at the moment and I don't remove duplicate verts yet, the limit for exporting is about 16k faces.
  • Display Box:
    • x: X dimension of grid display box. Click on it and drag left or right to change the value.
    • y: Y dimension of grid display box. Click on it and drag left or right to change the value.
    • z: Z dimension of grid display box. Click on it and drag left or right to change the value.
  • Control:
    • Sensitivity: Mouse motion is scaled by this value. Useful to set low when doing detailed work in direct control movement mode (see below).
    • Proportional/Direct: Movement mode. In proportional mode the offset of the mouse cursor from the center of the the viewport is proportional to the magnitude of the resulting motion. In direct mode the motion of the mouse is tranlated directly into movement.
    • Change Affector: Rotates through the available affectors or 'tool bits'. The current tool tip can be seen in the 3d view as a green wireframe.
  • Export:
    • Dimension: Largest dimension of the the bounding box of the resulting Blender mesh. The display box contents will be scaled to fit. Click and drag left or right to change.
    • Mesh: An input edit box to set the name that will be given to the mesh in Blender.
    • To Mesh: Export the current display box contents to the named Blender mesh.
  • Save/Load:
    • File: Input edit box used to set the filename used for saving and loading.
    • Save: Save the voxel grid to the file named above.
    • Load: Attempt to load the voxel grid from the file named above.
    • New Grid: Replace the current grid with a new, empty one.
    • New Grid Levels: Set the number of levels the new grid will have.
      3 levels equates to a grid of 512 x 512 x 512 voxels.
      4 levels equates to a grid of 4096 x 4096 x 4096 voxels.
      5 levels equates to a grid of 32768 x 32768 x 32768 voxels.
      6 levels equates to a grid of 262'144 x 262'144 x 262'144 voxels.
      7 levels equates to a grid of 2'097'152 x 2'097'152 x 2'097'152 voxels.
      8 levels equates to a grid of 16'777'216 x 16'777'216 x 16'777'216 voxels.
    • Quit: Close down the GUI.
Once a mesh is exported to Blender it is a good idea to remove double verts (hit TAB to enter edit mode; press 'A' to select all verts; click on 'remove doubles' in the lower right corner of the mesh edit buttons; TAB out of edit mode). Then it can be used as an S-mesh to round out the sharp corners. This actualy works best with simple models, made up of few voxels as the the rounding out is not enough to smooth a model meant to approximate a curved surface. On the other hand, if there are enough voxels in the model, when used as an s-mesh, the resulting mesh can have a pleasing surface roughness.
Special Keys Used When Running Outside Blender
  • p: Saves the current grid to Test.vox
  • o: Loads the current grid from Test.vox
  • u: New grid.
  • q: Toggles movement mode.
  • e: Changes tool bit.
  • 3-8: Set new grid level.
  • Check Cavernosa.py for any others.

    If you find this explaination confusing (sorry, I wrote it in a hurry) you can email me with your queries.

Copyright © 2000 Andrew H. Cox. All Rights Reserved.
acox@globalnet.co.uk