This project was created by Dan Lynch and Barry Martin.
Below is a list of some of the features of vim3d:
orthogonal snapping for drawing curves
undo/redo command history
insert commands and watch geometry recook
-
input and output
read & write scene files
read & write obj files
-
write out framebuffer to image file
can set up renders to generate animation sequences
-
computational geometry
sweep
hallway
revolve
extrude faces
extend lines
circle/ellipse faces
cubes
grid meshes
-
perlin noise
generating terrain
-
history
undo and redo commands
-
allows you to go back and insert a command
for example, you revolve, and wanted to do a bspline interpolate before
-
normals
computes normals
also smooth normals computations when vertices are shared
-
textures
custom commands for s and t values
procedural objects fully texture mapped
-
relative references
control attributes/parameters of one object based on another
allows switching between camera
look at objects
follow path objects
-
animations
channels
read music files to control objects
generate sinusoidal functions for animation
-
windows
splitting windows horizontally or vertically
-
geometry
diffuse
specular
ambient
emission
shininess
-
lights
-
spot
spot cutoff angle
direction
spot exponent
directional
point lights
linear, constant, quadratic attenuation
-
-
objects
object groups
-
object hierarchies
ability to write out a combined obj of nested objects
-
display lists
display lists are enabled by default, but can be toggled off
Here are a list of some of the keyboard commands (not vim3d commands) to toggle various features
a: toggle lights display t: toggle textures s: smooth shading u: undo v: redo w: wireframe o: orthogrid 2: top view i: insert new curve j: select previous object l: select next object n: display lights as geometry p: points display 5: toggle display lists on/off 6: toggle terminal display on/off 9: capture current frame buffer to disk 8: toggle orthogonal snapping for drawing 0: toggle display mode
There are many commands, so only a few will be listed here. To enter command mode, type ':'
Interpolations
bezier <lod> bezier2 <lod> bspline <lod>adding objects
add cam add grid <divisionsX> <divisionsZ> <step> <dx> <dz> add sphere add channel file some.obj o cat.objThis names a selected object:
name <somename>Load a scene file (with these types of commands)
load <sceneName>Load in a channel for animation
load channel <Channelfile>Register an animation with an object and a channel
register <object> <param> <channel> [<freqScalar> <scalar> <offset><timeShift> <start> <end>]Write out the selected geometry as an obj file
write some.objSweep the the specified cross-section along the selected curve
sweep <crossSection> [<hallway>, <onpath>]Create a relative reference, for example, control the color of an object based on another objects position.
reference <refObject> <refParam> <object> <param> [<freqScalar> <scalar><offset> <timeShift> <start> <end>]Modify the polygons of an object, or texture coordinates
poly <centoid|zmin|zmax|...|texture> [<s> <t>]Put an object along a path over time
path <target> <path> [<dx> <dy> <dz> <freqscalar> <timeShift> <start> <end>]Modify the timeline
timeline <play|stop|set> [<arg>]change the view to model or channel view
view <model|channel>Split the screen vertically
VexploreSplit the screen horizontally
SexploreMultiply texture coordinates
poly st <s> <t>Generate texture coordinates
poly texture <s> <t>Modify polygons based on their vertex positions
poly ymin poly zmax poly centroidCompute normals or smooth normals(blending)
compute compute smoothGroup objects hierarchically
obj group <obj1> <obj2> ... <objn> obj child <parentObj> <childObj>Copy objects (to objects or just plain copy). The geo option will keep the geometry and its matrix referenced, otherwise only the polygons of the object will be referenced. If align is specified, the template object will be considered a curve and a coordinate frame will be built for each point copied and the objects will align themselves to the curve.
copy <object> copy <object> <templatePoints> [<align> <geo>]Write out a hierarchical group as a single obj
geo write <somelobj>