Supervisory Comitee:
Prof. Eng. Filippo Sorbello
Eng. Giovanni
Pilato
Dr. Giorgio Vassallo
This page covers the essential
of JVClifford
Project. This project was realized by Pietro Brignola as final work for
Informatic
Engineering degree, University of Palermo, 2003.
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.
JVClifford
Project
is composed of the following parts:
The MIT LicenseCopyright (c) 2002-2009 Pietro Brignola Giorgio Vassallo 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 JVCliffordProject.
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,
JVClifford
and JVCliffParser.
Starting with Clifford Algebra
Installing J2SE runtime environment
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.
JVClifford
Project is 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 JVClifford Project applications. You can download and install the latest
release of the runtime enviroment directly
from:
JVClifford Project 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 JVClifford Project applications. You can download and install the latest
release of the runtime enviroment from:
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.
Click here for the
complete jclifford
package API specifications.
You need to install jclifford package in order to
use other components of JVClifford Project, it is single a jar file so it's suggested to deploy
it as an "installed
optional package".
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:
Click here for the
complete jndclifford
package API specifications.
jndclifford
package is single a jar file so it's suggested to deploy it as an "installed
optional package".
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
JVClifford 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.
JVClifford is
an algebric interpreted language with a strict
syntax checking (scripts that don't respect this
syntax produce a detailed error message).
Complete JVClifford
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 scripts.
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
or:
[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
This application was realized
on a
8.0 system using the following tools:
- 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).
Click
here for the BNF productions of JVClifford
language.
Click
here to download all the sources for
the packages presented.
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