My Master's thesis at Virginia Tech
VizCraft is a problem-solving environment that aids aircraft designers during the conceptual design stage of a high-speed civil transport (HSCT). At this stage, an aircraft design is defined by a vector of 10-30 parameters (typically 29 parameters). The goal is to find a vector that minimizes a performance-based objective function while meeting a series of constraints. Finding this vector is not a trivial task. Considering the high dimensionality of the problem, and given the range of values in which a variable can lie, there are almost an infinite number of values the objective function can assume. Thus the task of minimizing the objective function can take years, even on a supercomputer. An alternative method could be to visualize this optimization problem, not in 2-D or 3-D space, but in a 29-dimensional design space. Each set of 29 design variables forms a design case, and can be viewed as a point in a 29-D space. A design case is a specific configuration of the aircraft, and yields one value for the objective function. This objective function is the Take-Off Gross Weight (TOGW) of the aircraft, and is a nonlinear implicit function of 29 variables.
In order for a particular design to be feasible, it must satisfy a series of 68 nonlinear inequality constraints that consist of geometric, aerodynamic, and performance constraints. These constraints are devised to ensure feasible aircraft geometries, and to impose realistic performance and control capabilities. If any of these 68 constraints is violated, it renders the design meaningless, so one of the objectives of the visualization tool is to help the designer in a careful selection of design variables so that all design constraints are satisfied. The other, and more significant, objective is to help in visualizing trends in the objective function.
VizCraft offers a convenient way for the user to model the 29-dimensional design space. It offers a menu-driven graphical user interface to the HSCT code, which is a collection of C and Fortran routines that calculate the aircraft geometry in 3-D, the constraint values, and TOGW, among other things. Since this is a problem of very high dimensionality, most known visualization techniques are of little help. VizCraft makes use of the parallel coordinates technique for visualizing the design space. Parallel coordinates offer a convenient way for the user to model this multidimensional design space while retaining all the important mathematical information contained in it. By making efficient use of parallel coordinates, VizCraft allows the designer to visually manipulate the design space while searching for patterns, and to eliminate portions of the design space from consideration by carefully selecting regions of interest.
The application of parallel coordinates along with the interactive capabilities incorporated into VizCraft make it a solid visualization tool for modeling higher dimensional systems like the HSCT design problem. VizCraft is a classic example of an application where complex operations are abstracted into a coherent form at the level of the user interface. Sample VRML models rendered using VizCraft: sample 1, sample 2. The Master's thesis is available here.
My Bachelor's final-year project at IIT Delhi
Web3D features a new interpreted language that provides developers with simple yet powerful high-level constructs for describing three-dimensional scenes and animations in non-immersive virtual worlds. Virtual worlds described using these constructs give Web3D enough information to render those worlds efficiently. Virtual worlds are modelled using the four 3D geometric primitives: cubes, cones, cylinders, and spheres; point light and parallel light sources; and orthographic and perspective cameras (observer) placed at a given location and looking in a given direction in space.
Web3D supports various rendering modes: wireframe, hidden line, and flat shading. Visual realism is enhanced by setting surface attributes of objects (gloss, shine), and by describing foggy scenes (depth cueing). Each object is rendered using a fixed number of polygons. The level of detail in rendering a scene can be controlled by varying the number of polygons used to render each object in the scene. Web3D is capable of displaying both static and animated worlds. The animations implemented are real-time, which are described by specifying time-variant functions. These functions could range from simple linear motion to complex helical motion functions. Quaternion interpolations are used to achieve smooth rotations between specified key frames.
Besides describing graphical objects and their attributes, Web3D is also capable of embedding these objects within text documents and linking the documents by means of hypertexts, giving the user the ability to prepare 3D presentations online. Hyperlinks can be to other virtual worlds or to HTML documents, in which case Web3D invokes a standard WWW browser (Netscape, Explorer, or Mosaic). Web3D, too, can be invoked by a properly configured WWW browser. Web3D provides an integrated development environment for creating 3D worlds by incorporating an editor that can be used to create, edit, and view output of source files all in one interface. Web3D provides the basic display and interaction functionalities, and a pleasing user interface. Sample virtual worlds rendered using Web3D: sample 1, sample 2, sample 3.
Web3D uses a Cartesian, right-handed, three-dimensional coordinate system. By default, objects are projected onto a two-dimensional device by projecting them in the direction of the positive Z axis, with the positive X axis to the right and the positive Y axis up. Web3D has been developed in C for UNIX using X Window Motif user interface toolkit. It was developed on Sun SPARCstations, but Makefiles are provided for DRS6000 and SGI as well. The Bachelor's thesis is available here.