Skip to content

JakeForsey/swarm

Repository files navigation

Swarm

Pre-commit Tests

A fast (>10 million steps per second), GPU accelerated, two player swarm based environment with a large number of unique agents generated by LLMs.

Usage

1. Run a Round Robin Tournament

uv run python -m swarm tournament
        vibevolve_v7 reward: 0.89
        vibevolve_v5 reward: 0.71
        vibevolve_v6 reward: 0.70
        vibevolve_v4 reward: 0.67
              simple reward: 0.64
              center reward: 0.61
        vibevolve_v3 reward: 0.60
        health_swarm reward: 0.51
        vibevolve_v2 reward: 0.42
      predator_swarm reward: 0.36
        hunter_swarm reward: 0.33
     vortex_swarm_v2 reward: 0.28
        vibevolve_v1 reward: 0.14
         param_swarm reward: 0.12
       predator_boid reward: 0.07
         squad_swarm reward: 0.02
        vortex_swarm reward: 0.02
        spiral_swarm reward: -0.05
        center_swarm reward: -0.10
        pincer_swarm reward: -0.10
      tactical_swarm reward: -0.19
      fortress_swarm reward: -0.22
       concave_swarm reward: -0.23
      adaptive_swarm reward: -0.27
                boid reward: -0.31
               pairs reward: -0.46
         train_swarm reward: -0.46
            clusters reward: -0.52
          smart_boid reward: -0.57
          ring_swarm reward: -0.58
             fleeing reward: -0.63
        static_swarm reward: -0.71
              chaser reward: -0.73
              random reward: -0.95

2. Animate a game between two agents

uv run python -m swarm animate <agent1> <agent2>

3. FunSearch, MAP Elites inspired code generation

uv run python -m swarm vibevolve

4. Benchmark environment speed

uv run python -m swarm benchmark
nvidia-smi --query-gpu=gpu_name --format=csv
name
NVIDIA GeForce GTX 1080 Ti
device='gpu' | batch_size=         2 | steps=         256 | seconds= 0.498 | steps_per_second=        514
device='gpu' | batch_size=         4 | steps=         512 | seconds= 0.634 | steps_per_second=        808
device='gpu' | batch_size=         8 | steps=       1,024 | seconds= 0.665 | steps_per_second=      1,540
device='gpu' | batch_size=        16 | steps=       2,048 | seconds= 0.636 | steps_per_second=      3,221
device='gpu' | batch_size=        32 | steps=       4,096 | seconds= 0.633 | steps_per_second=      6,467
device='gpu' | batch_size=        64 | steps=       8,192 | seconds= 0.636 | steps_per_second=     12,889
device='gpu' | batch_size=       128 | steps=      16,384 | seconds= 0.646 | steps_per_second=     25,368
device='gpu' | batch_size=       256 | steps=      32,768 | seconds= 0.671 | steps_per_second=     48,831
device='gpu' | batch_size=       512 | steps=      65,536 | seconds= 0.640 | steps_per_second=    102,349
device='gpu' | batch_size=     1,024 | steps=     131,072 | seconds= 0.632 | steps_per_second=    207,525
device='gpu' | batch_size=     2,048 | steps=     262,144 | seconds= 0.634 | steps_per_second=    413,176
device='gpu' | batch_size=     4,096 | steps=     524,288 | seconds= 0.657 | steps_per_second=    798,509
device='gpu' | batch_size=     8,192 | steps=   1,048,576 | seconds= 0.684 | steps_per_second=  1,533,524
device='gpu' | batch_size=    16,384 | steps=   2,097,152 | seconds= 0.635 | steps_per_second=  3,304,147
device='gpu' | batch_size=    32,768 | steps=   4,194,304 | seconds= 0.633 | steps_per_second=  6,628,737
device='gpu' | batch_size=    65,536 | steps=   8,388,608 | seconds= 0.997 | steps_per_second=  8,417,081
device='gpu' | batch_size=   131,072 | steps=  16,777,216 | seconds= 1.501 | steps_per_second= 11,175,224
device='gpu' | batch_size=   262,144 | steps=  33,554,432 | seconds= 2.692 | steps_per_second= 12,466,262
device='gpu' | batch_size=   524,288 | steps=  67,108,864 | seconds= 4.949 | steps_per_second= 13,561,300
device='gpu' | batch_size= 1,048,576 | steps= 134,217,728 | seconds= 9.562 | steps_per_second= 14,036,486

Example matches

       

See more in results/animations

About

JAX RL environment (and agents written by LLMs and evolutionary strategies)

Resources

Stars

Watchers

Forks

Packages

No packages published