This is a collection of general purpose Java code I have written and which I
use in various projects.
- A makefile-based (also see the build system doc) generic recursive build system
for mostly-Java projects. It can handle subprojects in other languages that
use their own makefiles. And it includes features beyond just compilation,
including documentation build, distribution packaging, and pubishing.
- CompileServer (also see
the build system doc) accelerates Java builds by
delegating compilation tasks to an always-running server process, thereby
avoiding JVM startup costs for each complier invocation.
- Some additional developer scripts (also see the
build system doc).
- A color sublibrary including a command-line colorspace conversion utility,
ICCConvert,
and a color
scheme generation system based on [Bourges, Jean. (1997). Color
Bytes. Forest Hills, New York: Chromatics Press, Inc.].
- RMIWrap, a code
generator that eases the difficulty of adding RMI capability to an arbitrary
Java class.
- Utilities for detecting Java version compatibility issues and
working around them.
- Utilities for dealing with
Java3D scene graphs outside Java3D, including a JOGL-only replacement for
Java3D's
GeometryArray and accessors for Java3D vertex, index, and primitive
datastructures.
- a JOGL-only immediate mode
renderer for Java3D scene graphs, with optimization for JOGLGeometry and Widgets that define collections of
geometries, including a number of pre-defined simple shapes like SphereWidget.
- ActionMapper, a
layered system for dynamic mappings from key and mouse actions to
handlers.
- Some conveniences for using VT100-compatible
terminals in Java, including terminal type detection, cursor placement, and
text coloring.
- A log implementation that
integrates with Java's standard
Logger infrastructure but which
also generates colored terminal output and behaves reasonably well in applet
contexts.
- SuperClock, a timebase
that can be accelerated or decelerated with respect to wall-clock time.
- VonaMath, a collection
of (mostly geometric) short math routines I've found useful.
- An SVD driver infrastructure
with JLAPACK and netlib-java backends.
- A generic prioritized damped
least squares real-time numeric solver for differentiable constraint
systems based on [Paolo Baerlocher and Ronan Boulic. An
inverse kinematics architecture enforcing an arbitrary number of strict
priority levels. The Visual Computer 20, pp 402--417, 2004].
- A 3D rigid transform library
based on the exponential map parameterization for rotations, as described in
[Grassia. Practical parameterization of rotations using the exponential
map. Journal of Graphics Tools, 3(3):29-48, 1998], and corresponding interpolation and interaction systems.
The best way to learn about using these utilities is to read the javadoc and the source.
Vona's Java Utils are released in precompiled source form under the GNU GPL.
My primary development and deployment platform is GNU/Linux. Everything
here should work on GNU/Linux. Sometimes I also need to develop and deploy on
Windows or Mac OS X. Some or all things may also work on these platforms. The
things that do work have been tested under 1.5+ JREs from Sun. Other JREs may
work.
THIS INFORMATION AND SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS INFORMATION AND/OR SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
| vona@mit.edu |
© 2009 Marsette Vona
|
Thu Nov 5 15:45:57 EST 2009 |