Skip to content

Commit 6dd8c49

Browse files
committed
Increase simulation speed headroom
1 parent 732aafa commit 6dd8c49

7 files changed

Lines changed: 12 additions & 12 deletions

File tree

src/config/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,7 @@ impl Default for SimulationConfig {
170170
spawn_radius_factor: 0.2,
171171
},
172172
physics: PhysicsConfig {
173-
max_velocity: 2.0,
173+
max_velocity: 6.0,
174174
max_entity_radius: 20.0,
175175
min_entity_radius: 1.0,
176176
grid_cell_size: 25.0,

src/config/tests.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ fn test_default_config() {
88
assert_eq!(config.population.max_population, 10000);
99
assert_eq!(config.population.initial_entities, 2500);
1010
assert_eq!(config.population.spawn_radius_factor, 0.2);
11-
assert_eq!(config.physics.max_velocity, 2.0);
11+
assert_eq!(config.physics.max_velocity, 6.0);
1212
assert_eq!(config.physics.max_entity_radius, 20.0);
1313
assert_eq!(config.physics.min_entity_radius, 1.0);
1414
assert_eq!(config.physics.grid_cell_size, 25.0);

src/genes/mod.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ impl Genes {
5858

5959
Self {
6060
movement: MovementGenes {
61-
speed: rng.random_range(0.1..2.5),
61+
speed: rng.random_range(0.4..5.0),
6262
sense_radius: rng.random_range(5.0..150.0),
6363
},
6464
energy: EnergyGenes {
@@ -95,7 +95,7 @@ impl Genes {
9595
// Movement mutations
9696
if rng.random::<f32>() < self.reproduction.mutation_rate {
9797
new_genes.movement.speed =
98-
(new_genes.movement.speed + rng.random_range(-0.15..0.15)).clamp(0.05, 3.0);
98+
(new_genes.movement.speed + rng.random_range(-0.3..0.3)).clamp(0.1, 6.5);
9999
}
100100
if rng.random::<f32>() < self.reproduction.mutation_rate {
101101
new_genes.movement.sense_radius =
@@ -225,7 +225,7 @@ impl Genes {
225225
let mut total_weights = 0.0;
226226

227227
// Movement genes similarity
228-
let speed_diff = (self.movement.speed - other.movement.speed).abs() / 2.5; // Normalize by max speed
228+
let speed_diff = (self.movement.speed - other.movement.speed).abs() / 6.5; // Normalize by max speed
229229
let sense_diff = (self.movement.sense_radius - other.movement.sense_radius).abs() / 180.0; // Normalize by max sense radius
230230
total_difference += speed_diff * 0.3 + sense_diff * 0.2;
231231
total_weights += 0.5;

src/genes/tests.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ fn test_genes_new_random() {
88
let genes = Genes::new_random(&mut rng);
99

1010
// Test movement genes
11-
assert!(genes.movement.speed >= 0.1 && genes.movement.speed <= 2.5);
11+
assert!(genes.movement.speed >= 0.4 && genes.movement.speed <= 5.0);
1212
assert!(genes.movement.sense_radius >= 5.0 && genes.movement.sense_radius <= 150.0);
1313

1414
// Test energy genes
@@ -33,7 +33,7 @@ fn test_genes_mutation() {
3333
let mutated_genes = original_genes.mutate(&mut rng);
3434

3535
// Test that genes are within valid ranges after mutation
36-
assert!(mutated_genes.movement.speed >= 0.05 && mutated_genes.movement.speed <= 3.0);
36+
assert!(mutated_genes.movement.speed >= 0.1 && mutated_genes.movement.speed <= 6.5);
3737
assert!(
3838
mutated_genes.movement.sense_radius >= 2.0 && mutated_genes.movement.sense_radius <= 180.0
3939
);

src/stats/tests.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@ fn test_average_metrics_calculation() {
158158

159159
// Averages should be reasonable
160160
assert!(metrics.average_energy <= 100.0);
161-
assert!(metrics.average_speed <= 2.0);
161+
assert!(metrics.average_speed <= 5.0);
162162
assert!(metrics.average_size <= 20.0);
163163
}
164164

web/index.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,8 +70,8 @@
7070
<details class="group">
7171
<summary>Motion &amp; Physics</summary>
7272
<div class="ctrl">
73-
<div class="row"><label for="sim-speed">Tempo</label><span class="val" id="sim-speed-value">15</span></div>
74-
<input type="range" id="sim-speed" min="4" max="60" step="1" value="15" />
73+
<div class="row"><label for="sim-speed">Tempo</label><span class="val" id="sim-speed-value">30</span></div>
74+
<input type="range" id="sim-speed" min="4" max="180" step="1" value="30" />
7575
</div>
7676
<div class="ctrl">
7777
<div class="row"><label for="particle-force">Clustering</label><span class="val" id="pforce-value">0.15</span></div>

web/js/app.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ const DEFAULT_CONFIG = {
1515
spawn_radius_factor: 0.2,
1616
},
1717
physics: {
18-
max_velocity: 2.0,
18+
max_velocity: 6.0,
1919
max_entity_radius: 20.0,
2020
min_entity_radius: 1.0,
2121
grid_cell_size: 25.0,
@@ -84,7 +84,7 @@ class EvolutionApp {
8484
// Simulation ticks per second. The renderer runs at full refresh rate and
8585
// interpolates between ticks, so a low sim rate gives smooth, fluid, slow
8686
// motion (and far less birth/death flicker) rather than 60 jumps a second.
87-
this.targetFPS = 15;
87+
this.targetFPS = 30;
8888

8989
// Camera state
9090
this.camera = {

0 commit comments

Comments
 (0)