Batavia, Illinois August 17, 1990 WHAT IS THIS? MovieApp is a program that interactively plays movies. By "movie", I mean a simple linearly arranged set of bitmap im- ages. You can use MovieApp for all sorts of purposes; I created MovieApp because I wanted to see my favorite ray- tracer scenes animated, with the POV, lights, or objects all moving around. Unfortunately, the ray-tracing engine sup- plied in the NeXT software distribution wasn't (and still isn't) fast enough on existing hardware to work in real- time. Therefore, I set up a few little programs to generate .nff (ray-tracer) files, send them through the ray-tracer engine, and save the .tiff files. Then MovieApp plays back the results, at a more reasonable speed. Let me stress that MovieApp itself has nothing to do with ray-tracing; it just stupidly plays a set of frames in order. MovieApp and all its source code is in the public domain. Use it in any way you wish. No rights reserved. THE .MOVIE FORMAT A movie file is actually a directory. That directory must have a file suffix of ".movie". Inside the .movie directo- ry, there must a file named "index". The index file must have three numbers, like this: 48 48 60 That particular index file signifies a movie with a frame width of 48, a frame height of 48, with 60 frames. Continu- ing this example, there must be 60 TIFF files in the .movie directory, named "0.tiff", "1.tiff", and so on up to "59.tiff". There can be any other files you want in the .movie directory, they will be ignored. To make the Workspace Manager acknowledge movies as open- able by MovieApp, put MovieApp in your ~/Apps directory (or /LocalApps, or /NextApps) and tell the Workspace to "Find Applications". A (convenient?) side-effect of doing this is the Workspace will now treat .movie files just like any oth- er file, instead of as a directory (you can still get into the .movie directory with command-O). A FREE BONUS A sample movie has been included for your viewing pleasure, and as a demonstration of the kinds of movies you can make on the NeXT without any particular artistic talent: "zoomspin.movie". It is created by repeatedly ray-tracing a scene with a gradually changing camera position. The movie-creation code uses the NeXT version of Mark VandeWettering's ray-tracing engine, located (in the 1.0a release) at /NextDeveloper/Demos/Ray.app/MTV_ray_engine. Creating the movie takes about 15 minutes, with my system configuration (your mileage may vary). You can create the movie by typing "make" in the zoomspin.movie directory. WHY REINVENT THE WHEEL? MovieApp uses two excellent classes written by other peo- ple: SliderDualActing (and SliderCellFine), by Andrew Stone, and Animator, by R. E. Crandall and other folks at NeXT. The full SliderDualActing distribution should be availible from wherever you got Fun_With_Movies. The SliderDualActing documentation is extensive, with a demonstration program too. Animator is in several of the examples in /NextDeveloper/Examples. Also, a small piece of code has been lifted and modified from Carl F. Sutter's ViewGif2 app. A NEXTSTEP TUTORIAL? MovieApp features many NextStep concepts that I consider "intermediate beginner": things there isn't time to discuss at NeXT's Developer Camps, but that would be covered if the Camps could be extended for another week or two. Specifi- cally, MovieApp makes use of multiple .nib files, the Anima- tor class, NXPing(), miniwindow icons, (somewhat clumsy) main window management, and the aesthetics of placing new document windows a reasonable distance from previously opened windows. I have already begun writing an article that discusses MovieApp on a method-by-method basis, aimed at the NextStep programmer who is somewhat familiar with the general con- cepts, but short on experience. Hopefully this article would be published in NeXT Users' Journal. If you think this is a good idea, or want to stop me before it's too late, I can be reached at joerg@alliant.mcs.anl.gov. Yours in Dobbs, David S. Joerg
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.