NCSA Portfolio is a collection of utility objects to use with in your Java 3D programs. It comes with full documentation for the objects in the library, and even comes with example source code on how to use them! This new version has been compiled and tested with Java 3D 1.1.2.

Download NCSA portfolio

See our documentation

Version 1.3 beta 2 is a maintenance release. No new major features have been added. If you have experienced any problems with the previous betas, check the list below for possible fixes.

Fixes since beta 1

New in NCSA Portfolio 1.3:

Other NCSA Portfolio features include:

Universal model loader interface. All supported 3D model types can be loaded through a single call to a ModelLoader object which acts as an interface to all 3D model readers. These are meant for importing only. Supported loaders include:

You can also add your own loader interfaces, and the ModelLoader will automatically recognize them.

Unified InputDevice Interface Starting in NCSA Portfolio release 1.3 beta 1, we've added support for a unified input device interface. Using this interface, we can create a way to interchange input devices in programs without having to recompile the program itself. This is really useful if you're working on one device (say a desktop) and have to move the program to another type of device (such as a four-screened Portal).

To achieve this, we describe how the devices are set up in a Java properties file called "". The format for these files is fairly straight forward. This document describes how the properties files are set up. We've included sample files for each of the devices we support through this interface.

In future releases we expect to individually address how buttons are mapped on input devices. We're introducing the unified input device interface in preparation of this.

Event management The object library provides a mechanism for managing events within Java 3D programs through the ToolManager and its Tools. Using ToolManager, application developers can easily switch between operating modes. In this release of NCSA Portfolio, we include a PickTool to manipulate 3D models in a scene and a ViewTool for changing the View within a scene. Application developers can also write their own Tools to use with the ToolManager.

Collaborative real-time updates Imagine two people starting Java 3D programs on two different machines, and have either of them control the program! NCSA Portfolio includes networking objects that allow you to easily create real-time collaborative applications. You can couple this capability with another NCSA software package, NCSA Habanero to create even richer collaborative applications.

Canvas snapshots Take a snapshot of the current Canvas3D view and save it as a JPEG file!

Record and replay of application events. The NCSA Portfolio library can record the actions of Tools controled by the ToolManager. Once the actions are recorded and saved, they can be loaded and replayed. You can use this to script live animations.

An example utility with sample source code We also include sample code for a utility called NCSA Display to give you an idea of how to use NCSA Portfolio in your own programs. See the NCSA Display's README file for details on it's features.