A contract job. (My first, and only ... sort of.)
I provided the overall design, a 6400-line Pascal program, and a 60-page user manual for this software-only MS-DOS system in 1983-4. It doesn't sound like much, in today's world of software bloat, but it was a big deal for me at the time.
While a graduate student, I was approached to create software for an Addison, Texas based company known as Fanous Jewelers. This company had a need (for advertising purposes) for a program running on an IBM PC-XT (and by this, I mean the original 4.77 MHz Intel 8088 IBM PC), under MS-DOS, which could animate the motion of objects through space. For example, the advertising department might desire to create a video that zoomed in on a view of a rotating diamond. This pre-dated affordable high-speed personal computers suitable for real-time animation, so the program was required to produce a series of plots on an HP plotter, with one page being drawn for each animation frame. Of course, animation frames could also be displayed on the computer's monitor, albeit very slowly, perhaps at a rate of half a frame per second rather than the standard 30 frames per second. With modern computers, the program would undoubtedly run quite adequately in real time.
Because of resource constraints in the early personal computers, the software was not designed to fully render objects, but rather to animate wire-frame models of objects, with hidden-line removal, so that the resulting wire-frame plots could be colored manually. Backgrounds also were added manually. On the other hand, very sophisticated means of controlling rotations, flight-paths, and flight-speeds were provided within the program. Multiple objects could be animated simultaneously, with the possibility of occluding each other. Objects could be quite complicated, with hundreds of faces, holes (like doughnuts), or even consist of spatially-separated disconnected parts.
For each animation frame, the positions, velocities, and rotation angles could optionally be entered into tabular, spreadsheet-like form. Data entry wasn't required for each frame, but only for critical frames (as identified by the artist), because the program could automatically generate data for the missing frames by means of spline-curve interpolation. Special features such as contrails could also be added to objects.
Click here to view the user-manual of the program, which was known as BMOTION, in Microsoft Word format. (Of course, the manual was not written in MS-Word, which did not exist at the time, but I have imported it into Word as an exercise in technological archaeology.)
Here are some screen-shots of the BMOTION program. Admittedly, the user-interface is primitive, but I think it was pretty good for a 1983 MS-DOS program. The opening screen looks like this:
The objects which Fanous Jewelers wanted to animate were typically -- surprise! -- jewels. The test objects I used in most animations were so-called "starcut" diamonds. Here are views of a starcut diamond at various rotation angles (without hidden-line removal) as rendered by the software:
Below, there is a screenshot of the spreadsheet used for entering locations, velocities, and orientations of objects. The columns are frames, and the rows are objects. What you would do is to specify the position, velocity, and orientation of objects at any frames that were of particular interest to you. The program would then interpolate to supply the positions and orientations of the objects in all other frames, and render the frames (with hidden-line removal, as appropriate). In the sample screen below, there is a single object (FREERND2). The positions and orientations are "don't care" ('.') at all frames except frame 1, frame 32, frames 41-43, and frame 60. Because television frames take 1/30 second to display, the complete animation sequence is 2 seconds long.