Prof. Eng. Filippo
Eng. Giovanni Pilato
Dr. Giorgio Vassallo
This page covers the essential of JV Clifford
Project . This project was realized by Pietro Brignola
as final work for Informatic Engineering degree, University of
In apprecciation of the time, effort and patience extended to me in
the pursuit of this thesis I would like to thank Dr. Giorgio Vassallo
and Eng. Giovanni
Pilato for their guidance in the topic of this research.
is composed of the following parts:
The MIT License
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
By following the links from this page you
should be able to install and obtain all necessary documentation on
Features of this project are contained in my thesis (2,6 MB ita):
It's recommended the following step by step
process to learning jclifford , jndclifford
If you have further questions or you believe to
have found a bug please do not hesitate to contact me.
For introductions to Clifford Algebra and its
applications please refer to:
A really brief introduction to Geometric
algebra's basic concepts is also contained in my Thesis.
composed of 100% pure Java
applications and packages so it run on countless different machines
with no special porting effort, a testimonial to the "Write Once,
Run Everywhere" aspect of Java.
You have to install the Java
2 JRE SE (Runtime Environment) in order to use
can download and install the latest release of the runtime enviroment
uses the Java 3D API (OpenGL version) for the creations of
tridimensional interactive geometric scenes.
With Java 3D it easily
possible to incorporate high-quality, scalable, platform-independent
3D graphics into Java technology-based applications and applets.
The Java 3D application programming interface (API) provides a set of object-oriented interfaces that support a simple, high-level programming model. This enables developer to build, render, and control the behavior of 3D objects and visual environments.
You have to install the Java
3D API (OpenGL version) runtime environment in order to use
applications. You can
download and install the latest release of the runtime enviroment
This package provides for Clifford element definition and algebra operations.
In this package all the implementation of the Clifford element are blade-value treemap based. Wrapper classes are used for blade and value manipulation and storing.
Specific implementations differ on blade wrapper
class basis, in particular:
integer-based bynary representation of blades is used for high performance Clifford computation in signed spaces with dimension not higher of 8.
bitmask-based bynary representation of blades is used for Clifford computation in arbitrary dimension spaces.
treeset-based representation of blades is used for Clifford computation in arbitrary dimension spaces and expecially for graph working.
here for the complete jclifford
package API specifications.
You need to install jclifford package in order
to use other components of JV
, it is single a jar file so it's
suggested to deploy it as an "installed optional
Click here to download and install the latest release of jclifford package.
Realized by Pietro Brignola , Giorgio Vassallo , September 2002.
Current version is: 0.9
This package allows user to adoperate the powerfull and general geometric algebra affine model for n-dimensional geometric scene definition, handling n-dimensional rotations, intersections, projections, etc.
Specially interesting is the possibility of projecting geometric
construction in 3d using Clifford n-dimensional wireframe technique.
For example the following is the 3d projection of a pentacube rotating
in different planes of 5d space:
here for the complete jndclifford
package API specifications.
package is single a jar file so it's suggested to deploy
it as an "installed
Click here to download and install the latest release of jndclifford package.
Realized by Pietro Brignola , Giorgio Vassallo , May 2003.Current version is: 0.2
is a scripting language that allows user to do calculations
with multivectors in the Clifford algebra and to easily visualize the
possible geometric meaning of the results.
is an algebric interpreted language with a strict syntax
checking (scripts that don't respect this syntax produce a detailed
language specifications are contained in Appendix B
of my Thesis.
Realized by Pietro Brignola , September 2002.
Current version is: 0.9.3
This application is the JVClifford
scripting language IDE. It offers
to the user the way to edit, parse and execute JVClifford
Click here to
download and install the latest rtelease of JVCliffParser
, it's a single jar file containing
all the classes that implements the parser, the IDE and the
Projective multivector interactive viewer.
Deploy it were you want and simply run it with
the java command, for
example on a Unix system:
[user@localhost home]$ java -jar JVCliffParser.jar
[user@localhost home]$ java -Xmx256M
-Xms256M -jar JVCliffParser.jar
for JVM maximum and starting heap size setting.
Realized by Pietro Brignola , November 2002.
Current version is: 0.9.2
- J2SE SDK v1.4.1 as general developing environment.
- FCS version of the Blackdown Java-Linux implementation of the Java3D v1.3 for geometric package's and 3D multivector interactive viewer's development.
- Java Compiler Compiler (JavaCC) v2.1 for CS scripting language grammar definition and parser development.
The Java Parser Generator Java Compiler Compiler (JavaCC) is the most popular parser generator for use with Java applications. A parser generator is a tool that reads a grammar specification and converts it to a Java program that can recognize matches to the grammar. In addition to the parser generator itself, JavaCC provides other standard capabilities related to parser generation such as tree building (via a tool called JJTree included with JavaCC), actions, debugging and doc generation (via a tool called JJDoc included with JavaCC).
for the BNF productions of JVClifford
Click here to download all the sources for the packages
Click here for many JVCliffParser scripts and interesting jndclifford usage examples.
Optional packages are packages of Java classes and associated native code that application developers can use to extend the functionality of the core platform. The extension mechanism allows the Java virtual machine (VM) to use the optional-package classes in much the same way as the VM uses bootstrap classes.
(Bootstrap classes are those implementing the core platform, contained in jre/lib/rt.jar and jre/lib/i18n.jar. These include classes of the public API such as java.lang, java.io, etc., and classes supporting the platform's internationalization/localization features.).
Like bootstrap classes, classes in optional packages do not have to be placed on the class path. The extension mechanism also provides a way for needed optional packages to be retrieved from specified URLs when they are not already installed in the Java 2 Runtime Environment or Java 2 SDK.
Installed optional packages are JAR files in the directory:
lib/ext [in the Java 2 Runtime Environment]
jre/lib/ext [in the Java 2 SDK]
Classes within JAR files in this directory can
be used by applets and applications much as if they were part of the
set of bootstrap classes, without having to explicitly include them
in the class path.
This page has been realized by Pietro Brignola, 2003 using:
Mozilla 1.0.1 Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.0.1) Gecko/20020830