Skip to content

feat: Flocking Boids demo#18

Open
JNK234 wants to merge 16 commits into
mainfrom
feature/flocking-boids
Open

feat: Flocking Boids demo#18
JNK234 wants to merge 16 commits into
mainfrom
feature/flocking-boids

Conversation

@JNK234
Copy link
Copy Markdown
Collaborator

@JNK234 JNK234 commented Feb 28, 2026

Pure NetLogo Boids flocking simulation with BehaviorSpace

Three agent breeds race to converge on a goal with different communication
topologies. Mesh sees all agents, hierarchy ~75%, chain ~30%. Information
asymmetry + noise factors model coordination quality per topology.
YAML template with system prompt and 7 variables (topology, num_agents,
goal coordinates, agent positions, avg distance, tick). Forces LLM to
respond with exactly one action name.
OpenAI gpt-4o-mini at temperature 0.3 for deterministic coordination.
No API key included — users configure their own. Force-added past
gitignore since this template contains no secrets.
Setup instructions, required interface widgets, BehaviorSpace config,
and analysis workflow. Documents the MARBLE-inspired information
asymmetry mechanism across mesh/hierarchy/chain topologies.
- behaviorspace-config.xml: 4 agent counts x 3 reps experiment
- analyze-results.py: aggregates CSV output into summary + plots
- tests/test_analyze_results.py: unit tests for the analysis pipeline
Add DeterministicTestProvider for API-free headless testing.
Introduce LLMExtension companion object with provider factory
override to inject test providers. Rewrite tests.txt to use
inline config instead of file-based config loading. Fix template
history mutation bug where tempHistory aliased permanent history.
Add ci.yml to run sbt test on every push and PR with Java 17.
Add .githooks/pre-push to gate local pushes on passing tests,
skippable via SKIP_LOCAL_TESTS=1.
Add docs/TESTING.md explaining automated vs manual test layers.
Add sbt test section to BUILD.md and RELEASE.md checklist.
Simplify demos/tests/README.md to focus on manual integration use.
Link TESTING.md from docs/README.md index.
Remove the topology-tournament demo including the NetLogo model,
analysis script, BehaviorSpace config, coordinator template, and
associated tests. Replaced by flocking-boids demo.
Add pure-NetLogo boids flocking simulation implementing separation,
alignment, and cohesion rules. Includes configurable radii/weights,
speed clamping, toroidal wrapping, avg-speed and flock-size reporters,
and a BehaviorSpace parameter sweep experiment.
Update .bundledFiles to reflect current workspace paths and
add javafx-media dependencies.
- Convert flocking-boids.nlogo to .nlogox (XML) format
- Preserve all code sections, UI widgets, shapes, and metadata
- Include graphics window, sliders, buttons, and monitors
- Maintain default values and preview commands
- Add comprehensive validation test suite (40 tests)
  - XML parsing and structure validation (14 tests)
  - Code section integrity (6 tests)
  - Widget definitions and defaults (8 tests)
  - Data preservation (7 tests)
  - Behavior regression (5 tests)
- All tests passing: 40/40 ✓
- Fix inverted separation/cohesion force directions from e709e9f
- Convert widget XML from non-standard nested format to official
  flat attribute-based schema (view, slider, button, monitor)
- Convert turtleShapes/linkShapes to correct 7.0.3 schema
- Remove globals[] block (slider vars are implicit in .nlogox)
- Update version tag to NetLogo 7.0.3
- Remove redundant .nlogo, test scripts, and BehaviorSpace
- Update README to reference .nlogox
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant