Pure_Optical_CUDA / fungi_Paremetres.hpp
Agnuxo's picture
Upload 36 files
db3c893 verified
// --- Evolution parameters (tunable) ---
struct EvoParams {
float food = 0.05f; // reward scale ("food" per unit merit)
float decay = 0.98f; // energy decay per step
float death_th = -0.5f; // energy threshold for death/reseed
float cost = 5e-4f; // FIX: Reduced metabolic cost for stability
// Gravity & motion
float G = 1e-2f; // gravitational constant
float eps2 = 1e-1f; // softening (squared)
float dt = 0.5f; // integration step
float damp = 0.90f; // velocity damping
// Pairing & reproduction
float pair_dist = 6.0f; // FIX: Increased separation to reduce interference
int offspring_per_pair = 3;
int max_population = 0; // 0 = auto (cap at 1.5x current)
unsigned seed = 1337u;
};
/**
* Orchestrates a full ecology step:
* 1) Reward from gradient map (GPU)
* 2) Gravity forces & motion (GPU)
* 3) Energy update, growth/shrink, death marking (GPU)
* 4) Pairing & reproduction (HOST) with genetic recombination + mutation
* 5) Population capping and compaction (HOST)
*/
void fungi_ecology_step(FungiSoA& pop,
const float* d_grad_map, // [H*W] (GPU pointer)
const EvoParams& evo);