COMP-239 Final Project Proposal
Interactive and Immersive
Free-Form
Surface Modeler
Using 2D and 3D Input/Output Devices
Kenny Hoff
2/21/97
Abstract
In this project, I would like to implement a free-form surface modeling
system in which to explore many 3D interaction techniques using 2D and
3D input/output devices. My goal in this project is not to provide a complete,
robust, and accurate modeling system, but rather a system in which the
user can interact and model with free-form primitives in an artistic and
intuitive way. The interaction techniques will be designed with modeling
speed and efficiency in mind; the user should be able to quickly create
scenes based on free-form surfaces with minimal effort.
One additional important aspect of the project concerns the use of 2D
and 3D input/output devices. I would like to be able to compare the use
of a standard 2D mouse and display monitor with the use of the more futuristic
head-mounted display and 3D tracking system. An important and potentially
difficult part of the project will be in maintaining such an abstraction;
for each new object manipulation and world navigation strategy, I will
have to figure out how to do it with both systems.
Most Compelling Aspects
- The use of a wide variety of navigation and object manipulation strategies
using both 2D and 3D input devices.
- The ability to work with the system with the standard mouse and display,
and with a head-mounted display and 3D trackers.
- The ability to manipulate curved surfaces by directly grabbing the
control points.
- Two-handed interaction when using 3D input.
- The variety of methods of creating free-form surfaces: NURBS, general
sweeps, surfaces of revolution, lofted surfaces, etc.
- Ease of use (hopefully).
Development Plan
- 1-week: Using the viewer from my homework #2 project, add support for
multiple models. Currently, only world navigation is available; I must
incorporate the ability to manipulate individual objects. This will initially
include rotation, translation, and scaling of each object. World navigation
will still implemented in the same way as the original viewer. The most
difficult task here is to incorporate the selection of objects and the
creation of appropriate transformations from the user input. This will
complete my minimum requirements in its most simple form.
- 2-weeks: Begin exploring different object manipulation and world navigation
strategies.
- 1-week: Add support for simple NURBS surfaces. Attempt to add some
simple surface deformation control.
- 2-weeks: Begin adding other free-form surface generation strategies.
- 2-weeks: Add constraints.
Many of these estimated times will overlap; I will begin researching
the next step while implementing.
March 24 Meeting
- I am actually planning on being able to demonstrate
my minimum requirements along with NURBS surfaces (1 and 2 below) by this
time.
Completion Criteria (starting with minimum requirements
for a good grade)
- A simple object management program with a complete viewing system that
can use 2D and 3D I/O devices. The user should be able to work with
multiple objects and do some forms of simple manipulation, including: translation,
rotation, scaling. This minimal version will not have any modeling capabilities;
the models will be loaded from external files.
- NURBS surface manipulation. The user must be able to directly deform
the surfaces using both forms of I/O.
- Add free-form surface generation methods to the system, including one
or more of the following: general sweeps (translational surfaces), surfaces
of revolution, lofted surfaces, Meta-Balls, etc.
- Simple constraint-based modeling methods: grid-snapping, alignment,
collision-detection, etc.
Equipment Needs
- SGI machine (preferably, an infiinite reality - of course)
- 2D I/O: standard mouse and display
- 3D I/O: Ascension Tracker, two pythons, VR4 head-mounted display
Foreseeable Pitfalls and Alternatives
I feel quite confident in being able to complete my minimum requirements.
I will make adjustments as necessary by restricting the number of object
manipulation and world navigation strategies. Even without any free-form
surfaces, this project can be quite interesting because of the many possible
object manipulation and world navigation techniques that can be explored.
As the project proceeds, I will be able to determine if it is better to
continue working on these interaction methods or to start adding free-form
surfaces. I should be able to demonstrate a very compelling system even
with these primitives.