How capdevon/jme3-artificial-intelligence works
This repository combines an updated jME3 AI library with example application code. Its core workflow is to collect scene geometry, configure and build a navigation mesh, then use an agent to find and follow a path; optional helpers visualize paths and meshes or save settings and meshes. The README also identifies navigation-mesh generation and pathfinding as project capabilities. Several example and utility classes are present in the tree, but their runtime connections are not shown in the supplied excerpts, so they are represented without guessed links.
Main entry points: GeometryProviderBuilder.java Geometry collection · NavMeshBuilder.java Navmesh builder · NavMeshProperties.java Settings persistence · NavMeshBuildSettings.java Build settings
Components 26
Navmesh generation
- Geometry collection
src/main/java/com/jme3/ai/navmesh/gen/GeometryProviderBuilder.java - Terrain conversion
src/main/java/com/jme3/ai/navmesh/gen/TerrainMeshConverter.java - Build settings
src/main/java/com/jme3/ai/navmesh/gen/NavMeshBuildSettings.java - Navmesh builder
src/main/java/com/jme3/ai/navmesh/gen/NavMeshBuilder.java - Settings persistence
src/main/java/com/jme3/ai/navmesh/gen/NavMeshProperties.java - Mesh export
src/main/java/com/jme3/ai/navmesh/gen/NavMeshExporter.java - Build ignore flag
src/main/java/com/jme3/ai/navmesh/gen/NavMeshUserData.java
Pathfinding agents
- Navmesh agent
src/main/java/com/jme3/ai/control/NavMeshAgent.java - Threaded agent
src/main/java/com/jme3/ai/control/NavMeshAgentMT.java
Debug visualization
- Path viewer
src/main/java/com/jme3/ai/control/PathViewer.java - Navmesh renderer
src/main/java/com/jme3/ai/navmesh/gen/NavMeshDebugRenderer.java
Examples and scene support
- Navmesh example
src/main/java/com/examples/Test_NavMesh.java - Agent example
src/main/java/com/examples/Test_NavMeshAgent.java - Navmesh editor
src/main/java/com/examples/Test_NavMeshEditor.java - Character control
src/main/java/com/examples/CharacterAgentControl.java - Animator
src/main/java/com/examples/Animator.java - Base app state
src/main/java/com/examples/states/MyBaseState.java - Editor state
src/main/java/com/examples/states/NavMeshEditorState.java - Terrain state
src/main/java/com/examples/states/TerrainState.java - Fractal heightmap
src/main/java/com/examples/terrain/FractalHeightMap.java - Instance culling
src/main/java/com/examples/terrain/MyInstanceCullingFunction.java - Tree generator
src/main/java/com/examples/terrain/TreeGenerator.java - Game object
src/main/java/com/examples/util/GameObject.java - Main camera
src/main/java/com/examples/util/MainCamera.java - Physics debug toggle
src/main/java/com/examples/util/TogglePhysicsDebugState.java
Other components
- Game developer
Connections 8
- Game developer → Geometry collection: selects geometry
- Geometry collection → Terrain conversion: converts terrain
src/main/java/com/jme3/ai/navmesh/gen/GeometryProviderBuilder.java - Game developer → Navmesh builder: configures build
- Navmesh builder → Build settings: uses settings
src/main/java/com/jme3/ai/navmesh/gen/NavMeshBuilder.java - Game developer → Settings persistence: saves settings
- Settings persistence → Build settings: loads settings
src/main/java/com/jme3/ai/navmesh/gen/NavMeshProperties.java - Navmesh agent → Path viewer: draws path
src/main/java/com/jme3/ai/control/NavMeshAgent.java - Threaded agent → Path viewer: draws path
src/main/java/com/jme3/ai/control/NavMeshAgentMT.java