An educational, large‐scale factory simulation developed for ECE 651 (Duke University) Final Project. This multi‐module system models discrete‐time "demand‐pull" factory operations, supports both a command-line interface and a LibGDX-based graphical UI, and incorporates advanced features such as storage buildings, configurable policies, and networked server control.
-
factorysim/
Core simulation logic (Evolution 1)- JSON input parser (
doors1.jsonexample) - Discrete‐time simulation engine, building/request management, CLI commands
- JSON input parser (
-
factorysim-gui/
Graphical interface built with LibGDX (Evolution 2)- 2D tile‐map renderer
- Panels for logs, building details, request queues, policy selectors
- Drag-and-click controls for requests, connections, save/load
-
factorysim-server/
Optional server component for remote save/load.
- Java 21
- Gradle 8.13
- Git
- Clone factorysim-server
- Clone factorysim-gui
- Clone factorysim
-
Command-Line Interface
./gradlew run --args="path/to/config.json"Supports all Evolution 1 commands (
request,step,finish,verbose,set policy,save,load) -
Graphical Interface
./gradlew lwjgl3:run
– Use mouse/keyboard to load worlds, issue requests, adjust policies, and visualize item flow
– To fall back to CLI mode:./gradlew lwjgl3:run -nw --args="-nw path/to/config.json" -
Server
./gradlew run --args="<port>"
Design sketches, task plans, and implementation notes can be found in our shared Google Doc:
Development Notes

