User Tools

Site Tools



After writing several rendering programs for viewing and processing 3D data, I decided to port my code to Java for the cross-platform compatibility and simplifications of not having to manage platform specific implementations of OpenGL source or the 3D algorithms which I have been developing. Hence, the name ShaRP is really an acronym standing “So Heres another Rendering Program.” This reflects my indifference in developing yet another program for dealing with 3D data be it meshes, point clouds, voxels… whatever.

There are lots of parts to ShaRP and it is open source. We are currently looking for developers and test users so if you are interested contact me.

arwillis 2006/05/20 14:34

Developing in ShaRP

The ShaRP source is available via CVS remote access to the UNC Charlotte Vision Lab. Registered developers may upload their modifications and extensions to ShaRP.

How to compile ShaRP


How to Run ShaRP

Option 1 : The easiest way to run ShaRP is to use theJava WebStart link available on the UNC Charlotte Vision Lab website. If it does not work, then check the System Requirements to ensure you can run the application. If your computer meets or exceeds the stated system requirements then try the section on Troubleshooting. If you still cannot find a solution to your problem, post a message in the forums.

Option 2 : One may also download the source, compile it, and run ShaRP from the command line. However, in this case you must ensure that you have installed all the necessary Java libraries Compilation and that your computer meets the System Requirements.

ShaRP Menu

ShaRP has five classes of operation menu: File, View, Options, Interface and Datasets.


This is the file operation menu.

  1. Open File: Load one or one more object to the ShaRP environment.
  2. New Window: Open a new window with no object loaded.
  3. Close Window: Close current window.
  4. Quite: Close all ShaRP windows.


It controls how the objects are displayed in the rendering window. This menu can also be accessed by right clicking on the object title in the Java3D SceneGraph Root window and then left clicking on the floating menu of view.

  1. orthogonal projection: project the object to the x-y-z orthogonal axis.
  2. look x: Simulation the view from axis x.
  3. look y: Simulation the view from axis y.
  4. look z: Simulation the view from axis z.
  5. insert plane: Inser a x-y plan to the object.


This is the options for Screen capture and background color.

  1. Screen Capture: Capture and save current view as a bmp file to certain location in the user's computer. If you want the continuous scrren capture, then check the box.
  2. Choose Backgroud Color: Choose any color as background. If you want to allow point picking, then check the box.


  1. Change sensitivity: set the sensitivity of the mouse form less sensitive (smaller value) to more sensitive (larger value).
  2. Select data points:
  3. Pick surface points: Choose any point on the surface and lable it.
  4. Align fragments: get the Special Window with Bone Puzzle, Archaeolog Puzzle and some other functions overlapping the data window.
  5. Old: Objects Algnment Algorithm Development: get the floating Surface Editing Window.
  6. Sculpt a Shape:


A series operations on 3D data sets.

ShaRP Interface

After the initiation of ShaRP, the basic interface, a single main frame, within which exist 3 sub-windows, will appear.

The topmost window on the left side is the Java3D Scenegraph Root Window, a tree view of the 3D scene graph which is similar (but different from) to the actual 3D scenegraph used for rendering. This window displays all of the 3D objects within the scene as branches or leaves of a tree structure. The user may position objects in the scene by first clicking on the object within the tree and then clicking in the Rendering Window by Basic Controls. User may also right click on the title of the 3D object and then left click the View or Actions floating menu window to take more operations.

The bottom window on the left side is the Data Window, which display the data set and transform information.

The right side of the window is the Rendering Window, and is responsible for rendering the objects in the scene graph as a 3D scene. Within this window, the user may watch the demonstrations of the 3D objects in different ways and the result of the user operation on the 3D objects. User may also manipulate the objects by Basic Controls in this window.

For the operation on 3D objects, ShaRP have some additional operation interfaces, which are designed for different research purposes. By left clicking on the object title in the Java3D Scenegraph Root Window and then right clicking on the actions\edit menu, user may get the Plugin Interface Window, which contains the general operations for 3D objects. The Special Window and the Surface Editing Window are introduced in the menu\interface section.

Operation on 3D Surfaces

Loading 3D Surfaces

Currently ShaRP supports reading and writing Alias / Wavefront / Maya OBJ files and the VRML2.0 a.k.a VRML97 files. There are a number of possible ways of loading data into ShaRP including command-line options and the typical File→Open menu-driven interface.

Editing 3D Surfaces

A complete interface is provided for editing 3D surfaces. The editing options appear in the Plugin Interface Window. For details on 3D surface editing see the Editing 3D Surfaces page.

Editing 3D Surfaces for Special Purpose

Some more supplimental interfaces are provided as: Special Window and Surface Editing Window for special research purposes. These windows include some special designed functions for bone puzzle solving, archeology puzzle solving and other purpose.

Basic Controls

There are three basic controls :

  1. Left Mouse Button : Rotate the selected object(s) in the XY (right/left movement) or the YZ (up/down movement) plane.
  2. Right Mouse Button : Translate (move) the selected object(s) in the X direction (right/left movement) or the Y direction (up/down movement).
  3. Middle Mouse Button : Zoom in/out (up/down movement). This is equivalent to translation in the Z or depth direction.

For users having only two mouse buttons, the chord mouse click, i.e., pressing both left and right buttons simultaneously, should be equivalent to the “middle” mouse button. This will work on some platforms and not for others. Hence, we have a second method to zoom which follows.

For PC and Mac users with only two button mice. You can zoom in and out by holding down the shift key, and right-clicking (on the 3D rendering window) and dragging (up/down).

sharp.txt · Last modified: 2010/08/24 16:33 by