Sin( x y ) Image Border.

Prentice - An Artist's Software Assistant


Overview

I've discontinued this effort as the free software Blender can do the job much better. However, it remains as an example of a Java GUI which displays an image with graphics.

A software assistant to help artists create pictures.

Vision

With recent improvements in computer power it is possible to use a desktop computer to aid artists in sketching and rendering pictures, saving them hours of toil.

As an amateur artist, I've often wished for a tool which can help me craft a scene from the imagination, relieving me of the drudgery of making preliminary sketches, laying out the perspective and shadows, and using photographs, props and clay models.

Prentice will be such an artistically knowlegable intelligent software agent.

Specifications

Planning

This is an ambitious project for one person doing it in his limited free time, so needs extremely careful planning.

Milestones

Test Plan

Configuration Management

Can be simple: frequent archiving of tested snapshots with versioning.

Software Architecture

Probably will be GUI objects derived from Java's basic ones, coordinate transform and projection objects, illumination objects, general purpose model objects/ file I/O and data conversion objects. Here's the preliminary software design and the Javadoc software documentation

Download

Source code is distributed under the terms of the GNU General Public License. You will need to download each of the .c and .h source files below, compile and link them. For compiling and running, follow instructions below. Current version is 1.1

Click on the symbol Compact disk icon for source code download. to view and download the source files below.
Compact disk icon for source code download. Prentice.java Top level program for Prentice. Creates the main and GUI threads. Constructs the application, frame, view, image, and model objects.
Compact disk icon for source code download. PrenticeConstants.java Application wide constants.
Compact disk icon for source code download. DebugLog.java Debug logging to file.
Compact disk icon for source code download. PrenticeModel.java Graphical Model.
Compact disk icon for source code download. SwingWorker.java My own simple implementation since SwingWorker is absent in Java SE 5. If you have Java SE 6, you don't need to include this.
Compact disk icon for source code download. ModelFileParser.java Read and parse model files.
Compact disk icon for source code download. TransformMatrix.java Matrix transformations including perspective.
Compact disk icon for source code download. PrenticeCanvas.java Rendered image upon which we draw.
Compact disk icon for source code download. PrenticeFrame.java Top level of the GUI: the frame which handles menus and buttons.
Compact disk icon for source code download. PrenticeView.java Top level view within the frame containing the image and special buttons.
Compact disk icon for source code download. ScrollableImage.java Container for the image, with scrollability.
Compact disk icon for source code download. FileAction.java A class for opening a file.
Compact disk icon for source code download. PrenticePrint.java A class for printing.
Compact disk icon for source code download. MouseHandler.java Handles all mouse events.
Compact disk icon for source code download. makefile Makefile for Unix or Windows/Cygwin.

Install and Run

  1. First install the Java platform following instructions. Be sure to install NetBeans as it has a source level debugger.
  2. Create the parent directory, C:/Sean/WebSite/Prentice on Windows PC systems, and /Users/Sean/WebSite/Prentice on Mac OS X.
  3. Then create the following subdirectories,
  4. Use the makefile to compile, generate documentation and run.

Here's how to compile and run by hand without using the makefile:

  1. Set the Java classpath, on a Windows PC, in autoexec.bat or in Settings->System->Environment, modify set the CLASSPATH environment variable to CLASSPATH=%CLASSPATH%;C:/Sean/WebSite/Prentice/Project/SourceCode
  2. Open up a new terminal window and do echo $CLASSPATH to check.
  3. Go to the /build directory and type javac -g -d ../class -classpath ${CLASSPATH} ../SourceCode/Prentice/Prentice.java to compile the main program and all the other source files for debugging.
  4. To run Prentice, go to the /build directory and type java -cp ../class Prentice.Prentice.
  5. To create a JAR file, first cd to the CLASS_DIR. Remove the old jar file, rm -rf Prentice.jar. Create the new jar file, jar -cmfv manifest.txt Prentice.jar Prentice Model View Run using java -jar Prentice.jar

Copyright © 2005-2009 by Sean Erik O'Connor. All Rights Reserved.     last updated 01 Jan 09.