Model 3D wireframe scenes with different projections, edit objects with dynamic controls and specific matrix transformations, and import or export as a simple CSV.
What started as my curiosity with computer graphics solidified into ideas that built this 3D graphics editor. It's built on top of Java's graphics package - no preexisting 3D Java APIs went into creating the scene - using an original backend transformation class, custom line class and GUI. It is capable of translation, scale, and rotation of wire objects along the x, y, and z axis in a 3 dimensional space. Transformations are concatenated using matrix functions and applied to lines stored in a 3D space as separate matrices. All matrices are handled in the Jama Matrix package for instantiating a matrix data structure and computing simple low-level matrix math (such as multiplication and inversion) within the graphic transformations. All GUI Components are Java Swing.
- Ctrl O: Import/Open
- Ctrl S: Export/Save
- Ctrl A: Select/Deselect all wires
- Ctrl C: Copy all selected wires as a new object
- Ctrl Z: Undo last object addition
- Ctrl N: Parallel projection
- CtrlM: Perspective projection
- Ctrl D: Set perspective depth value
- Ctrl LMB: Drag to translate objects along z-axis
- Ctrl RMB: Drag to rotate objects along z-axis
- LMB: Drag to translate objects on X-Y plane
- RMB: Drag to rotate objects on X-Y plane
- MMB: Scroll to increase/decrease scale on all axis
To run: Download the executable JAR file of the packaged HighWire3D.
HighWire3D was built in Ecipse Mars IDE and has project files supplied. Simply download HighWire3D as a zip and import as existing project into your Eclipse workspace to best view and edit the source code.
JAMA: A Java Matrix Package gives the matrix constructor from a double array and the basic matrix multiplication method needed to compute more complicated transformation matrices.
Icons8 provided the menu bar icons, and hosts tens of thousands more for free use.