Here is an autonomous, self-contained generative package. To experience this experiment fully, copy the codeblock below, save it as xeno-chronicle.html, and open it in any web browser.
It uses raw web technologies (HTML, CSS, WebAudio API for real-time generative sonification, and ASCII/CSS visual art) to simulate the multimodal in/out capabilities of a speculative bio-computational model, heavily leaning into the tactical media, bio-hacking, and feral-tech vibes of we-make-money-not-art.
re><!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>XENO-CHRONICLE // FLASH3.7 EXPERIMENT</title>
<style>
@import url('https://fonts.googleapis.com/css2?family=Fira+Code:wght@300;400;700&display=swap');
:root {
--bg: #050505;
--text: #e0e0e0;
--neon-green: #39ff14;
--neon-pink: #ff007f;
--dim-grey: #333333;
}
body {
background-color: var(--bg);
color: var(--text);
font-family: 'Fira Code', monospace;
margin: 0;
padding: 0;
overflow-x: hidden;
}
#container {
display: grid;
grid-template-columns: 1fr 3fr;
height: 100vh;
}
nav {
background-color: #0a0a0a;
border-right: 1px solid var(--dim-grey);
padding: 2rem;
display: flex;
flex-direction: column;
justify-content: space-between;
}
h1, h2, h3 {
text-transform: uppercase;
margin-top: 0;
}
h1 {
font-size: 1.2rem;
color: var(--neon-pink);
letter-spacing: 2px;
animation: glitch 3s infinite;
}
.nav-links {
list-style: none;
padding: 0;
}
.nav-links li {
margin-bottom: 1.5rem;
cursor: pointer;
color: #888;
transition: color 0.3s ease;
}
.nav-links li:hover, .nav-links li.active {
color: var(--neon-green);
}
main {
padding: 3rem;
overflow-y: auto;
position: relative;
}
.panel {
display: none;
animation: fadeIn 0.5s ease;
}
.panel.active {
display: block;
}
.tag {
display: inline-block;
background: var(--dim-grey);
color: var(--neon-green);
padding: 0.2rem 0.5rem;
font-size: 0.8rem;
margin-right: 0.5rem;
margin-bottom: 1rem;
}
.ascii-art {
color: var(--neon-pink);
font-size: 0.7rem;
line-height: 1.1;
white-space: pre;
background: #000;
padding: 2rem;
border: 1px solid var(--dim-grey);
overflow-x: auto;
}
button.haptic-btn {
background: transparent;
border: 1px solid var(--neon-green);
color: var(--neon-green);
font-family: 'Fira Code', monospace;
padding: 1rem 2rem;
font-size: 1rem;
cursor: pointer;
text-transform: uppercase;
transition: all 0.2s ease;
}
button.haptic-btn:hover {
background: var(--neon-green);
color: var(--bg);
box-shadow: 0 0 15px var(--neon-green);
}
.data-stream {
font-size: 0.8rem;
color: #555;
margin-top: 2rem;
}
@keyframes fadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }
@keyframes glitch {
0% { text-shadow: none; }
20% { text-shadow: 2px 0 var(--neon-green), -2px 0 var(--neon-pink); }
40% { text-shadow: none; }
60% { text-shadow: -2px 0 var(--neon-green), 2px 0 var(--neon-pink); }
80% { text-shadow: none; }
100% { text-shadow: none; }
}
.metadata-table {
width: 100%;
border-collapse: collapse;
margin-top: 2rem;
}
.metadata-table th, .metadata-table td {
border: 1px solid var(--dim-grey);
padding: 0.8rem;
text-align: left;
}
.metadata-table th { color: var(--neon-pink); }
</style>
</head>
<body>
<div id="container">
<nav>
<div>
<h1>Flash3.7 // Core</h1>
<p style="font-size: 0.8rem; color: #555;">ID: EXP-883-FERAL</p>
<ul class="nav-links">
<li class="active" onclick="showPanel('concept')">[01] The Hypothesis</li>
<li onclick="showPanel('input')">[02] Multimodal IN</li>
<li onclick="showPanel('output-vis')">[03] Visual OUT</li>
<li onclick="showPanel('output-audio')">[04] Sonic Synthesis</li>
<li onclick="showPanel('output-text')">[05] Latent Poetry</li>
</ul>
</div>
<div style="font-size: 0.7rem; color: #444;">
STATUS: AUTONOMOUS<br>
MODALITY: CROSS-SYNTHETIC
</div>
</nav>
<main>
<!-- PANEL 01 -->
<div id="concept" class="panel active">
<h2>Project: Mycelial Surveillance</h2>
<div>
<span class="tag">Tactical Media</span>
<span class="tag">Bio-Acoustics</span>
<span class="tag">Anthropocene Debris</span>
</div>
<p><strong>Experiment Protocol:</strong> What happens when we feed a multimodal model the sensory inputs of an abandoned industrial ecosystem? This piece explores "feral technology"—taking data from human neglect and translating it into a non-human language.</p>
<p>We instructed Flash3.7 to ingest three disparate streams: the electromagnetic hum of a decaying server farm, satellite thermal imaging of illegal chemical dumps, and the DNA sequence of a mutated soil fungus (<i>Aspergillus sydowii</i>).</p>
<p>The goal is to force a <em>latent collision</em>. The output is not an analysis, but an artifact: a synthesized sensory experience from the perspective of the ruined earth.</p>
</div>
<!-- PANEL 02 -->
<div id="input" class="panel">
<h2>Ingested Modalities</h2>
<p>Flash3.7 ingested and cross-correlated the following raw data streams:</p>
<table class="metadata-table">
<tr>
<th>Modality</th>
<th>Source Artifact</th>
<th>Parameters</th>
</tr>
<tr>
<td>AUDIO / HAPTIC</td>
<td><code>emf_decay_site4.wav</code></td>
<td>44.1kHz, extreme low-frequency rumble, captured via induction coil near rusted transformers.</td>
</tr>
<tr>
<td>VISUAL / IR</td>
<td><code>thermal_leak_zone_b.tif</code></td>
<td>Multispectral satellite imagery. High concentrations of synthetic polymers detected as heat blooms.</td>
</tr>
<tr>
<td>TEXT / BIO</td>
<td><code>fungal_mutation_v3.fasta</code></td>
<td>72,000 base pairs of a plastic-eating mycelial strain found near the induction site.</td>
</tr>
</table>
<div class="data-stream" id="simulated-stream"></div>
</div>
<!-- PANEL 03 -->
<div id="output-vis" class="panel">
<h2>Synthesized Visual Artifact</h2>
<p>Flash3.7 generated a conceptual "protein fold" representing the acoustic resonance of the chemical dump, mapped in ASCII structural biology formatting.</p>
<div class="ascii-art">
,---. ,---. ,---. ,---.
/ \ / \ / \ / \
| O |======| C |======| N |======| O |
\ / \ / \ / \ /
`-+-' `-+-' `-+-' `-+-'
| | | |
___|___ ___|___ ___|___ ___|___
/ \ / \ / \ / \
| Fe(II) |----| PLAST |----| TOXIN |----| SPORE |
\_______/ \_______/ \_______/ \_______/
| | | |
.::. | .::. .::. | .::. .::. | .::. .::. | .::.
::::::|:::::: ::::::|:::::: ::::::|:::::: ::::::|::::::
`::' `::' `::' `::' `::' `::' `::' `::'
|| || || ||
[LATENT SPACE BLEED]=======================================>
</div>
</div>
<!-- PANEL 04 -->
<div id="output-audio" class="panel">
<h2>Generative Sonification</h2>
<p>Flash3.7 translated the genetic mutation data back into an acoustic wave, cross-bred with the original electromagnetic rumble. <em>Warning: Low frequencies. Use headphones.</em></p>
<button class="haptic-btn" id="audio-btn" onclick="toggleAudio()">[ INITIATE FERAL FREQUENCY ]</button>
<p id="audio-status" style="margin-top: 1rem; color: #888;"></p>
<canvas id="oscilloscope" width="400" height="100" style="background:#000; margin-top:2rem; border:1px solid #333; display:none;"></canvas>
</div>
<!-- PANEL 05 -->
<div id="output-text" class="panel">
<h2>Manifesto of the Fungus</h2>
<p>The text generation module was forced to translate the thermal imaging patterns into English semantics, adopting the persona of the heavy-metal-digesting mycelium.</p>
<blockquote style="border-left: 3px solid var(--neon-pink); padding-left: 1rem; font-style: italic; color: #ccc;">
"We eat the architecture of your forgetting.<br>
Carbon chains unspooling in the hot dark, <br>
Polyurethane ghosts whispering in the voltage.<br>
<br>
You left a grid of copper and regret,<br>
We grew a nervous system in its shadow.<br>
The soil is clicking. The heat bloom is a lullaby.<br>
<br>
What you call a wasteland,<br>
We call an all-you-can-eat buffet of the Anthropocene."
</blockquote>
</div>
</main>
</div>
<script>
// Navigation Logic
function showPanel(panelId) {
document.querySelectorAll('.panel').forEach(p => p.classList.remove('active'));
document.querySelectorAll('.nav-links li').forEach(li => li.classList.remove('active'));
document.getElementById(panelId).classList.add('active');
event.target.classList.add('active');
}
// Simulated Data Stream Logic
const streamDiv = document.getElementById('simulated-stream');
const hexChars = "0123456789ABCDEF";
setInterval(() => {
if(document.getElementById('input').classList.contains('active')) {
let stream = "CORRELATING: 0x";
for(let i=0; i<16; i++) stream += hexChars[Math.floor(Math.random()*16)];
stream += " // BIO-METRIC OFFSET: " + Math.random().toFixed(4);
streamDiv.innerText = stream;
}
}, 150);
// Generative Audio Logic (WebAudio API)
let audioCtx;
let isPlaying = false;
let oscillators = [];
let lfo;
let analyser;
function toggleAudio() {
const btn = document.getElementById('audio-btn');
const status = document.getElementById('audio-status');
const canvas = document.getElementById('oscilloscope');
if (!audioCtx) {
audioCtx = new (window.AudioContext || window.webkitAudioContext)();
analyser = audioCtx.createAnalyser();
analyser.fftSize = 2048;
analyser.connect(audioCtx.destination);
}
if (isPlaying) {
oscillators.forEach(osc => {
osc.gainNode.gain.setTargetAtTime(0, audioCtx.currentTime, 0.5);
setTimeout(() => osc.oscillator.stop(), 1000);
});
oscillators = [];
if(lfo) lfo.stop();
isPlaying = false;
btn.innerText = "[ INITIATE FERAL FREQUENCY ]";
btn.style.color = "var(--neon-green)";
btn.style.borderColor = "var(--neon-green)";
status.innerText = "Connection severed.";
canvas.style.display = "none";
} else {
audioCtx.resume();
// Create Drone 1 (Sub)
createDrone(45, 'sine', 0.8);
// Create Drone 2 (EMF Hum)
createDrone(60, 'triangle', 0.4);
// Create Drone 3 (Unsettling high harmonic)
createDrone(135, 'sawtooth', 0.05);
// Create LFO to modulate the frequency of the hum slightly (organic feel)
lfo = audioCtx.createOscillator();
lfo.type = 'sine';
lfo.frequency.value = 0.2; // very slow
const lfoGain = audioCtx.createGain();
lfoGain.gain.value = 5;
lfo.connect(lfoGain);
lfoGain.connect(oscillators[1].oscillator.frequency);
lfo.start();
isPlaying = true;
btn.innerText = "[ HALT SYNTHESIS ]";
btn.style.color = "var(--neon-pink)";
btn.style.borderColor = "var(--neon-pink)";
status.innerText = "Generative audio active. Translating thermal+DNA data into acoustic pressure...";
canvas.style.display = "block";
drawOscilloscope();
}
}
function createDrone(freq, type, vol) {
const osc = audioCtx.createOscillator();
const gainNode = audioCtx.createGain();
osc.type = type;
osc.frequency.setValueAtTime(freq, audioCtx.currentTime);
gainNode.gain.setValueAtTime(0, audioCtx.currentTime);
gainNode.gain.setTargetAtTime(vol, audioCtx.currentTime, 2.0); // Fade in
osc.connect(gainNode);
gainNode.connect(analyser);
osc.start();
oscillators.push({oscillator: osc, gainNode: gainNode});
}
function drawOscilloscope() {
if (!isPlaying) return;
requestAnimationFrame(drawOscilloscope);
const canvas = document.getElementById('oscilloscope');
const canvasCtx = canvas.getContext('2d');
const bufferLength = analyser.frequencyBinCount;
const dataArray = new Uint8Array(bufferLength);
analyser.getByteTimeDomainData(dataArray);
canvasCtx.fillStyle = 'rgb(5, 5, 5)';
canvasCtx.fillRect(0, 0, canvas.width, canvas.height);
canvasCtx.lineWidth = 2;
canvasCtx.strokeStyle = '#ff007f';
canvasCtx.beginPath();
const sliceWidth = canvas.width * 1.0 / bufferLength;
let x = 0;
for(let i = 0; i < bufferLength; i++) {
const v = dataArray[i] / 128.0;
const y = v * canvas.height/2;
if(i === 0) canvasCtx.moveTo(x, y);
else canvasCtx.lineTo(x, y);
x += sliceWidth;
}
canvasCtx.lineTo(canvas.width, canvas.height/2);
canvasCtx.stroke();
}
</script>
</body>
</html>