Jump to content

LUMINSim Documentation

From Aurora Robotics
Revision as of 14:05, 4 July 2025 by Acmattson3 (talk | contribs) (AI template (to be updated))

LUMINSim Documentation

This is an ongoing page as I document LUMINSim's current systems. Feel free to add to it!

Getting Started

To learn how to get started with development yourself, visit the repository's README and follow the steps there.

Repository Structure

  • src/ – C++ GDExtension code for terrain and registration
  • demo/ – Godot project containing levels, assets, and GDScript systems

Terrain System (C++)

Static Terrain

TerrainStatic256 loads heightmaps, creates render and collision geometry

Dynamic Terrain

TerrainSim simulates excavation, landslides, and merging dirtballs back into the heightmap

Terrain Tools

Scripts such as dirt_spawner.gd and dirtball.gd spawn and merge mobile particles with the dynamic terrain

Robot Systems

Astra Rover

astra_3d.gd handles driving, energy usage, and tool attachments for the primary rover

Arm and Hopper

Separate nodes for the arm and hopper implement joint movement and excavation logic

Astronaut Character

astronaut_character_3d.gd provides walking and camera control for a player avatar

Excavation Tools

Attachments such as the bucket, forks, and saw blade extend ToolAttachment for various tasks

Static Objects

Charge stations, solar panels, tool spawners, and other environment pieces provide energy or spawn tools

Networking and Multiplayer

GameManager.gd manages synchronized player/object data and signals for network updates

multiplayer_menu.gd lets players host or join games, start sessions, and handle disconnects

Cameras and Controls

movable_camera_3d.gd and freecam.gd implement user-controlled cameras, both first- and third‑person

The user interface (ui.gd, joystick.gd, keybinds_menu.gd) provides HUD elements, customizable input bindings, and optional on-screen controls for mobile users

Example Levels

Scenes in demo/levels/ (e.g., main3D.tscn with script main3D.gd) instantiate players, objects, and the terrain simulator, driving the overall game loop

Additional Utilities

Miscellaneous scripts such as fps_counter.gd and multiplayer_menu.gd assist with debugging and session management

Building the Extension

The SConstruct file compiles all .cpp sources into a shared library used by the Godot projec