| CARVIEW |
|
ensmer
|
| Summary | 3D virtual world user interface |
|---|---|
| Categories | None |
| License | Apache Software License |
| Owner(s) | dusty |
Welcome to the Ensmer project! Ensmer is a Java 3D based project to develop an extensible object oriented 3D interaction framework. The application allows users to create fully customizeable interactive worlds that they can navigate in three dimensions. These worlds contain interactive objects that take can potentially manage of all of a users computing tasks. The long term goal is to replace the aging desktop metaphor with an object oriented interface that is more familiar, customizeable, enjoyable, and efficient.
Ensmer is designed to be extended with third-party backend objects that the user can interact with. An example of such objects is the EnsmerMail project. This project is a collection of Ensmer objects that allow for e-mail interaction inside the Ensmer interface.
Ensmer has a very modular design based on the Model-View-Controller framework. 3D Objects are programmed as having a distinct backend and a frontend. The backend for each object is responsible for maintaining the actual data pertaining to the object. This data might very from the contents and headers of an e-mail message to the transactions in a specific account. Backend objects are usually coded in Java (Naturally, any language that compiles to Java Byte Code is acceptable). Frontends are basically scripts that customize how the data looks to the user. Only one frontend is installed for any one backend at a time, but it is possible to completely customize the look and feel of the 3D object by customizing or changing the frontend. Frontends are scripted in Groovy and utilize the Java3D API.
Backends and Frontends are meant to be distributed separately. In the long term, there will likely be collections of similarly themed frontends availabe for different groups of backends. The look and feel of the user's world can be completely changed by altering the frontends. For example, the EnsmerMail project includes a frontend to manage e-mail objects in an office-type setting (inbox tray, mailbox, envelopes, etc). It also includes a frontend to manage e-mail in a medieval setting (scrolls, quill and ink, etc).
Download
All releases of Ensmer and EnsmerMail can be downloaded from the Documents & Files section of the project page. There are links to old releases, development releases, screenshots, and the Javadoc API for the various releases. To save you some time, here are links to the most interesting downloads:
Stable Releases
- Ensmer 0.2
- EnsmerMail 0.1
- EnsmerMail Medieval Frontend 0.1
- EnsmerMail Office Frontend 0.1
- Ensmer 0.2 Sources
- EnsmerMail 0.1 Sources
- ScreenShots
Development Releases
Documentation
There are complete user manuals for the current stable releases of Ensmer and EnsmerMail. As work progresses on the next versions these projects, development version manuals wil also be posted.
The FAQ is currently not very comprehensive, and is only updated when a real live question is asked.
The Javadoc API for both the core and mail modules is packaged separately. This is of interest to developers of Ensmer backends and frontends, as well as to anyone wishing to work on Ensmer itself.
Contact
Any discussion, including questions, comments, criticisms, or compliments can be directed to the relevant Discussion Forum. You can also access the Ensmer Mailing Lists if you wish, although their use for general discussion is discouraged. If you have a specific bug, feature, or issue to discuss, then it should be posted to the Issue Tracker.
Ensmer is currently being developed by Dusty Phillips. If you wish to contact me directly, feel free to E-mail me, or visit my home page for more information about me, including instant messenger handles at which I can be contacted.
Development
All sorts of code contributions to the Ensmer project are welcome. Developers of new third-party backends are especially welcome, as are new frontends for existing modules.
Source Access
If you wish to hack on the Ensmer core or EnsmerMail projects, you can either download the sources, or access them via CVS. There are two relevant modules in CVS, ensmer and mail. There are instructions on how to access CVS under various platforms.
Contact me if you would like commit access to the CVS repository. A new module can be set up if you are developing a new collection of Ensmer backends to suit a specific task. If you wish to work on existing code, this can also be arranged. It would be nice to keep as much development as possible centrally distributed via this project.
Dependencies
Ensmer uses Java 5 language constructs, and thus requires the Java 5 JRE (to run the binaries) or SDK (to compile and run the sources) to be installed. Groovy is used as the build system and for unit testing, and must be installed separately if you are using the source or cvs distributions (Embedded groovy is included with Ensmer, but this is not sufficient for running the build file and Groovy unit tests).
Prevayler, Groovy, and the j3d-vrml loader are all dependencies of Ensmer. However, copies of these jars are distributed with all releases of Ensmer, and thus do not need to be installed separately.
EnsmerMail has two additional dependencies if you wish to run it. These are JavaMail, and the JavaBeans Activation Framework which is required by JavaMail. These must be installed to the CLASSPATH separately, whether you use source or binary releases.
Developer Instructions
If you wish to submit code to Ensmer, please try to follow the coding style used in existing code. Specifically, use complete Javadoc comments, tabs for indentation, NOT spaces, and should follow the general Java style guidelines.
You can run the Ensmer and EnsmerMail project using Groovy. To run the sources, use the ./build.groovy run target. Other common targets are documented with ./build.groovy usage. The less common targets are documented in the build.groovy file itself.
Development Documentation
If you are interested in developing Ensmer, you may be interested in the following historical documents. Ensmer was originally developed as a university research project. Some of the following documents were written for the project and during the design phase of the system. Note that these do not necessarily outline the current or future planned state of Ensmer. Designs change as new information comes to life!
- Use Cases (informal, non-technical)
- User Input (informal, semi-technical)
- Ensmer Project Proposal / Logical Design (formal, technical, submitted for comp495 project
- Physical Design (formal, technical, out of date)
- Ensmer 0.1 Final Report (formal, technical, submitted for comp495 project)
- EnsmerMail Project Proposal / Logical Design (formal, technical, submitted for comp496 project
- EnsmerMail 0.1 Final Report(formal, technical, submitted for comp496 projet)
In addition, you may be interested in accessing the complete Javadoc API for the various Ensmer modules. Documentation is comprehensive and complete. You should be able to find most information here without looking at the sources.
Finally, you may be interested in the Developer Journal forum. I post my thoughts, concerns, plans, and concepts here on a regular basis
| Powered by CollabNet | Feedback |
FAQ |
Press |
Developer tools
© 1995 - 2007 CollabNet. CollabNet is a registered trademark of CollabNet, Inc. |
