Java 3D Engine

 Env3D is an innovative 3D engine written in Java. With Env3D, it is fun and easy to create 3D video games while learning Java Programming.

Release of stable and development versions

As you probably know, Env3D uses JavaMonkeyEngine (jME) internally. By using a commercial quality 3d engine, env3d gains the ability to take advantage of the latest graphics technology available to Java. It also provides a path for env3d users to access jME features to create visually sophisticated software. The latest lessons on nifty gui and particle system are examples of how env3d can access internal jME features.

All these, of course, came with a price. The latest version of jME makes exclusive use of shaders technology, which means it may not run on older hardware. To make env3d available to as many people as possible, I have decided to maintain 2 versions of env3d:

Nifty GUI in Env3d

Jason has been working on integrating nifty GUI into env3d. Check out the demo below!

More Resources: Audio & Tutorials

Two new resource sections have been added: Student Tutorials and Audio.
Audio files should be .ogg format to work in env3d, .wav files are also accepted for upload but they will need to be converted by the user once downloaded. Student Tutorials are basically little tutorials written by students for students and can contain any useful tips to share.

Website Surprise! Subscribe!

 Hope everyone is enjoying the new website look. After a few hours of fiddling around with our old theme I decided it was time to start over. Personally I am very happy with the result and feel its much better than the previous version. 
I would also like to annouce the implementation of a new subscription feature. You can now subscribe to any node or topic and all updates and comments will be emailed directly to you!
By default all users will automatically subscribe to any content they create themselves (from this point on) but you can turn off this setting entirely (or by individual node) in your "My account" settings.
Happy Programming!

Community Resource Section

Following along with the development goals, which can be viewed here, we have begun working on Phase 4 - Expanding Content. The goal of this phase is to increase the variety of content community users can contribute. Today we have added the functionality for users to submit and share models and animations they have created or improved upon. 
The Models page can be found in the "Other Resources" section. Check it out by following this link.
Keep in mind that the new resource section of the site is a work in progress.

Mouse picking

The latest version of env3d adds the ability to use the mouse to interact with objects in 3D space.

Previously, the only mouse position related methods are Env.getMouseX(), and Env.getMouseY(). These methods return only the screen coordinates but not the pointer coordinates in 3D space. This makes it hard to implement features such as using a mouse of select an object inside the 3D environment.

Users of env3d now has a few more methods to use, the details can be found at

New lessons and version

I'm teaching part 2 of the BlueJ textbook this term. Since I have had lots of successes with using Env3D on part 1 of the book, I figure it is time to work on lessons based on part 2.

I decided to use the "Foxes and Rabbits" simulation from Chapter 10 as inspiration for my new lessons. The result is "Fox vs Tux". Here is a video of how it looks: launched

Very exciting news -- Over Christmas, one of my students, Kenny, decided to create a community website for Env3D. The result is This new site has lots of features, including community forums, applet sharing, and all of the lessons from the old sourceforge site.

Enjoy the new site and give us some feedback on our forum!