update physics parameters

This commit is contained in:
2026-03-06 22:49:37 +01:00
parent 5289c8407a
commit 51723353fd
2 changed files with 5 additions and 3 deletions

View File

@ -66,11 +66,11 @@ constexpr float TIMESTEP = 1.0 / TARGET_UPS; // Update interval in seconds
constexpr float SIM_SPEED = 4.0; // How large each update should be
constexpr float MASS = 1.0; // Mass spring system
constexpr float SPRING_K = 4.0; // Mass spring system
constexpr float DAMPENING_K = 1.0; // Mass spring system
constexpr float DAMPENING_K = 1.5; // Mass spring system
constexpr float REST_LENGTH = 3.0; // Mass spring system
constexpr float VERLET_DAMPENING = 0.1; // [0, 1]
constexpr float BH_FORCE = 2.5; // Barnes-Hut [1.0, 3.0]
constexpr float THETA = 0.8; // Barnes-Hut [0.5, 1.0]
constexpr float THETA = 1.0; // Barnes-Hut [0.5, 1.0]
constexpr float SOFTENING = 0.05; // Barnes-Hut [0.01, 1.0]
// Graph Drawing

View File

@ -40,7 +40,9 @@ auto cpu_spring_system::add_spring(size_t a, size_t b) -> void
Vector3 offset{static_cast<float>(GetRandomValue(-100, 100)),
static_cast<float>(GetRandomValue(-100, 100)),
static_cast<float>(GetRandomValue(-100, 100))};
offset = Vector3Normalize(offset) * REST_LENGTH;
// By spawning the masses close together, we "explode" them naturally, so they cluster faster (also looks cool)
offset = Vector3Normalize(offset) * REST_LENGTH * 0.1;
// If the offset moves the mass closer to the current center of mass, flip it
if (!tree.empty()) {