Mundus is a platform independent 3D world editor, built with Java, Kotlin and LibGDX + VisUI. You can create your scenes in Mundus and then use the Mundus runtime to render and interact with those scenes in a libGDX project. See runtime usage for an example. You can see current milestones for releases on the milestones page.
This project is at a very early stage in development and APIs may be missing basic features. Create an issue if you notice something important that is missing.
Below are some of the more interesting features, that already work
- Creation of multiple terrains
- Height map loader for terrains
- Procedural terrain generation
- Texture splatting for the terrain texture (max 5 textures per terrain)
- A complete terrain editing system with texture & height brushes
- 4 different brushes (brush form can be an arbitrary image, like in Blender or Gimp)
- 3 brush modes for each brush: Raise/Lower, Flatten & texture paint
- Custom implementation of gdx-gltf PBR shader for model rendering
- Water quads with reflections, refractions, foam, and customizable ripples
- Static Skyboxes with support for multiple skyboxes
- Loading of g3db/gltf/glb files. GLTF is the recommended format.
- Loading of obj/fbx/dae files (note, that the fbx-conv binary must be set in the settings)
- Visual translation, rotation tool, and scaling tools
- Multiple scenes in one project
- Full screen preview mode
- A component based scene graph (not fully implemented yet)
- Basic export of the project into a json format + asset (not needed for libGDX runtime)
- Undo/Redo system for most operations
- Highly accurate game object picking system, based on id color coding & offscreen framebuffer rendering. Basic concept: http://www.opengl-tutorial.org/miscellaneous/clicking-on-objects/picking-with-an-opengl-hack/
If you need help with Mundus you can check out the Mundus discord here or alternatively in the libGDX discord go to libraries/Mundus thread under the SPECIFIC TOPICS section.
- Mundus is constantly changing. Especially the internal representation of save files. At this stage of the project backwards compatability is kept between minor changes, and I keep backwards compatability in mind for major version changes, but it is not guaranteed as the APIs are still being developed.
- Depending on your keyboard layout some key shortcuts might be twisted (especially CTRL+Z and CTRL+Y for QWERTZ and QWERTY layouts) because of the default GLFW keycode mapping. You can change the layout mapping in the settings dialog under Window -> Settings.
The only runtime being developed is for libGDX, which is included in this repository. See runtime usage for an example. Runtimes for other engines/frameworks are not planned in the near futures.
Listed from newest to oldest:
Created by: AntzGames
Created by: JamesTKhan
Created by: AntzGames
Created by: AntzGames
Created by: JamesTKhan
Contributions are greatly appreciated. To make the process as easy as possible please follow the Contribution Guide. To get an overview over the project you might also want to check out the Project overview & architecture article. I label issues that are good for first time contributes as "good first issue."
See this wiki article.
This started as a fork of Mundus. Mundus is no longer developed so this standalone repository was created. Special thanks to mbrlabs and the original contributors of Mundus for all the work they did.
Mundus was licensed under the Apache-2.0 license.
Logo design: Franziska Böhm / noxmoon.de (CC-BY-SA 4.0)