A vi-interface to creating 3D scenesby Dan Lynch and Barry Martin
Vim3D™ is a viewer/graphical interpreter for 3D scene descriptions using c++ and OpenGL.
Vim3D originated from Dan Lynch, while coding a Bezier curves assignment for Ravi Ramamoorthi's CS 184 course at UC Berkeley, Spring of 2010. Dan had started the first prototype based off of the popular vi clone known as Vim, which is a bare-bones developer text editor. In this assignment, he coded a framework to allow a vi-style user interaction with 3D objects and commands. Barry Martin and Dan took this codebase as the foundation for a more advanced 3D Modeling application that they built as a project for the succeeding assignment.
Many basic building tools are available through commands much like the ones used in unix which are accessed through the vi-style command line in the lower portion of the screen. The target users for this software are developers and engineers, in particular, people with an interest in computer science, creativity, visualization, and a love of the vi editor.
The nature of Vim3D's scene-building capabilities allow a developer to have a flexible work environment, through commands and scripts. Animations and object properties can be controlled through channel files, which can can be generated or imported from a MatLab or GNUPlot dat file. Relative references allow objects to reference each other's parameters, such as one object changing color to the position of another object, or perhaps in step with information emanating from an audio waveform.
Vim3D has found its way into some other courses as well, due to the mathematical foundation it was built upon. The idea is that this could be used for helping in calculations, for example, generating commands to control a robot. Here is a Demo from Cal Day at Cory Hall at UC Berkeley for CS 149. We used Vim3D's channels to calculate wheel speeds for a robot.
We just recently demonstrated Vim3D at IEEE / CSUA DemoDay at UC Berkeley. This event was super fun and full of tons of great ideas.