diff --git a/ecosystem.config.cjs b/ecosystem.config.cjs
index 34c634da..28bbf731 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 d5e1403b..7047084e 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'` : '';