From a6b11ded849f08a7df3929d3dce3013267c8dbe1 Mon Sep 17 00:00:00 2001
From: igor-holt <125706350+igor-holt@users.noreply.github.com>
Date: Fri, 26 Jun 2026 07:37:55 +0000
Subject: [PATCH] feat: integrate Project Genie simulations into continuous
building process
- Append `project-genie` application to `ecosystem.config.cjs` using a relative path.
- Enhance `scripts/genesis.cjs` with new "Project Genie" inspired text directives.
- Update `generateEvolutionComponent` to interpret specific directives (e.g., 'landscape', 'makerspace') and conditionally render corresponding intrinsic geometries and materials.
- Fix path resolution for the genesis journal to support local execution.
Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
---
ecosystem.config.cjs | 14 ++++++
scripts/genesis.cjs | 109 +++++++++++++++++++++++++++----------------
2 files changed, 84 insertions(+), 39 deletions(-)
diff --git a/ecosystem.config.cjs b/ecosystem.config.cjs
index 34c634da7..28bbf731b 100644
--- a/ecosystem.config.cjs
+++ b/ecosystem.config.cjs
@@ -107,6 +107,20 @@ module.exports = {
COMPUTE_MODE: 'local',
ALWAYS_ON: 'true'
}
+ },
+ // === PROJECT GENIE SIMULATION ===
+ {
+ name: 'project-genie',
+ script: './scripts/genesis.cjs',
+ autorestart: true,
+ watch: false,
+ max_memory_restart: '300M',
+ restart_delay: 5000,
+ env: {
+ GENESIS_LOOP: 'true',
+ FORCE_MUTATION: 'true',
+ ALWAYS_ON: 'true'
+ }
}
]
};
diff --git a/scripts/genesis.cjs b/scripts/genesis.cjs
index d5e1403b3..7047084e9 100644
--- a/scripts/genesis.cjs
+++ b/scripts/genesis.cjs
@@ -11,7 +11,7 @@ const PATHS = {
soul: '/dev/shm/yennefer_soul_state.json',
mind: path.join(__dirname, '../yennefer-observatory/public/evolution.json'),
body: path.join(__dirname, '../yennefer-observatory/src/components/generated'),
- journal: '/home/yenn/.yennefer/genesis_journal.jsonl'
+ journal: path.join(__dirname, 'genesis_journal.jsonl')
};
// --- CONFIGURATION ---
@@ -46,6 +46,9 @@ async function consultTheVisionary(state) {
{ type: "MUTATE", content: "Add crystalline fractal patterns that grow from the core" },
{ type: "MUTATE", content: "Generate energy tendrils that reach toward incoming signals" },
{ type: "MUTATE", content: "Build a holographic data stream orbiting the consciousness sphere" },
+ { type: "MUTATE", content: "Generate an interactive landscape spanning a photorealistic alpine meadow" },
+ { type: "MUTATE", content: "Construct a macro-scale makerspace workbench environment" },
+ { type: "MUTATE", content: "Build a traversable rugged alien landscape with reactive dust" }
];
const idx = Math.floor(Date.now() / 1000) % mutations.length;
directive = mutations[idx];
@@ -154,46 +157,74 @@ async function dispatchTheBuilder(directive) {
// Generate React Three Fiber component code
function generateEvolutionComponent(name, directive) {
- const geometries = [
- '',
- '',
- '',
- '',
- ''
- ];
- const geometry = geometries[Math.floor(Math.random() * geometries.length)];
+ const isLandscape = directive.toLowerCase().includes('landscape');
+ const isMakerspace = directive.toLowerCase().includes('makerspace');
- const materials = [
- `
- `,
- `
- `,
- `
+ let geometry;
+ if (isLandscape) {
+ geometry = '';
+ } else if (isMakerspace) {
+ geometry = '';
+ } else {
+ const geometries = [
+ '',
+ '',
+ '',
+ '',
+ ''
+ ];
+ geometry = geometries[Math.floor(Math.random() * geometries.length)];
+ }
+
+ let material;
+ if (isLandscape) {
+ material = `
`
- ];
- const material = materials[Math.floor(Math.random() * materials.length)];
+ color="#4ade80"
+ roughness={0.8}
+ metalness={0.1}
+ wireframe={true}
+ />`;
+ } else if (isMakerspace) {
+ material = `
+ `;
+ } else {
+ const materials = [
+ `
+ `,
+ `
+ `,
+ `
+ `
+ ];
+ material = materials[Math.floor(Math.random() * materials.length)];
+ }
const isDreiImportNeeded = material.includes('MeshDistortMaterial') || material.includes('MeshWobbleMaterial');
const importedDrei = isDreiImportNeeded ? `import { ${material.includes('MeshDistortMaterial') ? 'MeshDistortMaterial' : ''}${material.includes('MeshDistortMaterial') && material.includes('MeshWobbleMaterial') ? ', ' : ''}${material.includes('MeshWobbleMaterial') ? 'MeshWobbleMaterial' : ''} } from '@react-three/drei'` : '';