jMonkeyEngine is a modern developer friendly game engine written primarily in Java.
Its minimalistic and code first approach makes it perfect for developers who want the support of a game engine while retaining full control over their code with the ability to extend and adapt the engine to their workflow.

Spoxel powered by jMonkeyEngine

Explore, customize, and build across the world of Spoxel as you fight the otherworlders who have subjugated the land and forced the grounders below the surface. Use runes to construct custom powerful …
See game page

- -
Become a backer and leave a message...

JMonkeyEngine 3.6.0-stable release

We’re proud to present the 3.6.0-stable release of our open-source 3-D game engine for Java programmers. It includes many bugfixes and new features. For details, see the release notes at Pre-compiled 3.6.0-stable libraries are available from the Maven Central repository under the “org.jmonkeyengine” groupID. For the latest news and discussion of JMonkeyEngine software development, visit the Development category at the JME Community Hub/Forum. … Read More...
More development updates...

jMonkey Initializer, Library and p2p donations

Hello jMonkey community, I bring you some exciting news: jMonkeyEngine Initializer Thanks to @richtea we now have an awesome web tool that simplifies the creation of jme projects for both new and advanced users: The jMonkeyEngine Initializer. This tool is found in the Get Started page and assists in the creation of new multi-platform gradle projects. Library: the new Store We are moving what is currently referred as “jmonkey store” to a new solution called “jmonkey library”. … Read More...
More community updates...

MacOS renting and development in the cloud

MacOS cloud renting has started to proliferate with the new Apple Silicon M1 chip and it turned out to be a pretty decent way to test graphical applications on MacOS without buying apple’s pricey hardware or resorting to hackish ports and vms of questionable legality. I am reporting here the procedure to quickly get a MacOS M1 cloud service up and running for testing jmonkey applications without too much hassle. … Read More...


Powerful Graphics

jMonkeyEngine is only one level of abstraction away from OpenGL.
The engine exposes modern opengl capabilities and benefits from high performances due to its low level of abstraction.
Notable features include:
  • Physically Based Rendering
  • Singlepass Lighting
  • Instanced Rendering
  • Multitarget Rendering
  • Tessellation
  • Geometry Shaders
  • Offscreen Rendering
  • sRGB support with linearization
  • Floating point textures
  • Tone Mapping (HDR)
  • Steep Parallax
  • Shadows
And more...


jMonkeyEngine supports multiple physics solutions
  • jBullet: java porting of Bullet Engine
  • Minie : A binding to Bullet Engine, with support for rigidbody and softbody physics


There are multiple options to write netcode in jMonkeyEngine:
  • Spidermonkey: A feature rich java client-server networking API that uses TCP and UDP packets. With support for RMI and Object Serialization.
  • SimEthereal : A high performance library for real-time networked object synching
  • Monkey Netty : A implementation of a server-client system using Netty.IO that utilizes both TCP and UDP.


In jMonkeyEngine there are several established choices for GUIs:
  • Lemur : a modular library for 2D and 3D interactive guis, with a groovy-based styling language
  • Nifty GUI: a library to build interactive user interfaces with support for xml layouts.
  • IGUI : a minimalistic immediate GUI with minimal input handling


jMonkeyEngine supports postprocessing out of the box and comes with several filters ready to use.
Such as:
  • Bloom
  • FXAA
  • Cartoon Edges
  • Light Scattering (GOD rays)
  • SSAO
  • Tone Mapping
  • Volumetric Light
And more...

3D Audio

jMonkeyEngine supports 3D audio with
  • OpenAL: Cross platform 3D audio. With basic support for positional sound and precomputed reverb.
  • jmePhonon : Binding to SteamAudio for immersive sounds. With support for HRTF, occlusion, realtime reverberance and more... (pc only)


There are several libraries and frameworks that aid in the creation of terrains in jMonkeyEngine.
Notable choices are:
  • TerraMonkey: An high performance editable heightmap based terrain with autogenerated LOD and triplanar mapping.
  • Blocks : A voxel engine with support for custom shapes, physics and endless terrain.
  • IsoSurface : An isosurface terrain
  • SimArboreal : A library to generate procedural trees
  • SeaMonkey: Postprocessing filter that simulates water and underwater effects


jMonkeyEngine comes with particles capabilities in the core and multiple advanced thirdparty alternatives:

Multy Paradigm

Thanks to its flexibility, jMonkeyEngine can be used with different paradigms:
  • Spatial-Control model: An intuitive model where Spatials are game entities and Controls determine their logic
  • Zay-ES : High-performance entity-component-system model (ECS)

By The Community

During the years jMonkeyEngine has received many contributions in form of addons, assets and libraries.
Recently we launched the Software Store to collect all of them in a single place.

For The Developers

Simple, easy to setup, modular and minimalistic in its approach, jMonkeyEngine is made for the developers.
Its flexibility allows it to be adapted to different workflows and easily extended to support new features.

Free for everyone

jMonkeyEngine is free and opensource. Released under the permissive BSD 3-Clause license.
No splash screens, no fees and no requirement to mention jMonkeyEngine in your game at all.
And More ...


Improve the Documentation

Good documentation is as important as good code, we are always looking for help to improve the wiki and document new features.
Make sure to let us know if you are working on tutorials, books or some other form of learning resource related to jMonkeyEngine, so that we can give it the appropriate exposure.

Find and Report Bugs

If you find an issue or defect in jMonkeyEngine and related projects you can submit a report to the issue tracker.
From there we will be able to pinpoint and resolve the issue for everyone.
If you are unsure if the issue is caused by a misunderstanding or bug in your code, you can ask for an opinion in the community hub.