ASCII Haiku Engine → Minimal Monotone

A procedural generation system that composes haiku-like code fragments using structured syntax and machine poetics. It outputs text as literal ASCII form, rendered exactly as written with no embellishment or color, maintaining monospaced alignment and tonal restraint. The engine combines modular code syntax, randomized noun–verb–object structures, and comment-style closures (//) to produce minimal, recursion-themed haiku in grayscale.

<?xml version="1.0" encoding="utf-8"?>

<prompt_pipeline title="BlackMonolith / IRLAvant ASCII Haiku Engine → Minimal Monotone Literal Render (Moderate Chaos Build)"

version="4.6"

author="BlackMonolith"

license="Apache-2.0 / Commercial Use OK">

<metadata>

<title>ASCII Haiku Engine — Minimal Monotone, Moderate-Chaos Formatting</title>

<author>BlackMonolith</author>

<intent>

Generate a 3-line ASCII haiku (strict) with randomized vocabulary (synonyms/antonyms allowed)

and moderate chaotic reformatting per run: alignment, indentation, spacing, inline ASCII guards,

comment marker styles, and line-level framing. Grayscale-only rendering optional.

</intent>

<xmp_tags>ascii, haiku, minimal, monotone, grayscale, literal, randomization, formatting, blackmonolith, irlavant</xmp_tags>

</metadata>

<!-- =========================================================

HUB NAVIGATION

========================================================= -->

<hub_navigation>

<option id="1" label="Generate new ASCII Haiku" target="HAIKU_GENERATE"/>

<option id="2" label="Preview Haiku" target="HAIKU_DISPLAY"/>

<option id="3" label="Select Formatting Style" target="FORMAT_SELECT"/>

<option id="4" label="Render as Image" target="RENDER_ASCII_IMAGE"/>

<option id="5" label="Exit Pipeline" target="END"/>

</hub_navigation>

<!-- =========================================================

DATA FLOW

========================================================= -->

<data_flow>

HUB_START → HAIKU_GENERATE → HAIKU_DISPLAY → FORMAT_SELECT → ASK_RENDER → [RENDER_ASCII_IMAGE | HUB_START]

</data_flow>

<!-- =========================================================

MODULES

========================================================= -->

<module id="HUB_START">

<description>Navigation hub for ASCII Haiku workflow.</description>

<action>Display hub_navigation and await user input. If none, default to HAIKU_GENERATE.</action>

</module>

<!-- =========================================================

VOCABULARY POOLS

========================================================= -->

<vocab_pool id="VOCAB">

<prefixes>

<item value="[void.echo::init]" synonyms="[null.call::start], [empty.signal::begin]" antonyms="[full.voice::end], [active.loop::close]"/>

<item value="[signal.break::loop]" synonyms="[pulse.split::cycle], [wave.fracture::repeat]" antonyms="[signal.join::halt], [flow.unite::stop]"/>

<item value="[flux.speak::open]" synonyms="[flow.talk::start], [current.voice::begin]" antonyms="[flux.silence::close], [stream.mute::end]"/>

<item value="[core.shift::begin]" synonyms="[heart.move::start], [center.change::init]" antonyms="[core.still::end], [base.fixed::stop]"/>

<item value="[earth.rise::dawn]" synonyms="[ground.lift::morning], [soil.awake::day]" antonyms="[earth.fall::night], [land.sleep::dusk]"/>

</prefixes>

<nouns>

<item value="signal" synonyms="pulse, wave, beep" antonyms="silence, void, stillness"/>

<item value="void" synonyms="emptiness, abyss, null" antonyms="fullness, presence, substance"/>

<item value="memory" synonyms="recall, echo, trace" antonyms="forgetfulness, oblivion, loss"/>

<item value="syntax" synonyms="structure, code, grammar" antonyms="chaos, disorder, noise"/>

<item value="dream" synonyms="vision, fantasy, reverie" antonyms="Reality, wakefulness, clarity"/>

<item value="echo" synonyms="resonance, rebound, repeat" antonyms="mute, stillness, silence"/>

<item value="bone" synonyms="skeleton, frame, spine" antonyms="flesh, softness, tissue"/>

<item value="glass" synonyms="crystal, pane, mirror" antonyms="stone, opacity, rock"/>

<item value="flux" synonyms="flow, change, tide" antonyms="stability, fixity, calm"/>

<item value="static" synonyms="noise, hum, interference" antonyms="clarity, silence, peace"/>

<item value="core" synonyms="center, heart, essence" antonyms="edge, surface, periphery"/>

<item value="dust" synonyms="powder, ash, grit" antonyms="purity, clarity, shine"/>

<item value="thread" synonyms="string, fiber, line" antonyms="block, mass, chunk"/>

<item value="leaf" synonyms="frond, blade, petal" antonyms="branch, trunk, root"/>

<item value="stone" synonyms="rock, pebble, boulder" antonyms="sand, water, air"/>

<item value="river" synonyms="stream, brook, flow" antonyms="desert, drought, dry"/>

<item value="cloud" synonyms="mist, vapor, haze" antonyms="sun, clarity, sky"/>

<item value="thought" synonyms="idea, notion, mind" antonyms="ignorance, blankness, void"/>

<item value="silence" synonyms="quiet, stillness, peace" antonyms="noise, clamor, sound"/>

<item value="shadow" synonyms="shade, darkness, silhouette" antonyms="light, brightness, glow"/>

</nouns>

<verbs>

<item value="syncs" synonyms="aligns, matches, coordinates" antonyms="disrupts, clashes, diverges"/>

<item value="compiles" synonyms="builds, assembles, codes" antonyms="breaks, dismantles, destroys"/>

<item value="loops" synonyms="repeats, cycles, circles" antonyms="ends, halts, stops"/>

<item value="processes" synonyms="handles, computes, runs" antonyms="ignores, skips, abandons"/>

<item value="drips" synonyms="leaks, trickles, drizzles" antonyms="pours, floods, gushes"/>

<item value="hums" synonyms="buzzes, vibrates, murmurs" antonyms="silences, quiets, mutes"/>

<item value="flows" synonyms="streams, glides, runs" antonyms="stagnates, blocks, stops"/>

<item value="fades" synonyms="diminishes, wanes, softens" antonyms="brightens, grows, intensifies"/>

<item value="bends" synonyms="curves, twists, arches" antonyms="straightens, aligns, flattens"/>

<item value="weaves" synonyms="intertwines, braids, threads" antonyms="untangles, separates, divides"/>

<item value="fractures" synonyms="breaks, splits, shatters" antonyms="unites, mends, heals"/>

<item value="decays" synonyms="rots, degrades, crumbles" antonyms="grows, flourishes, strengthens"/>

</verbs>

<objects>

<item value="code" synonyms="script, program, algorithm" antonyms="chaos, error, noise"/>

<item value="data" synonyms="information, bytes, records" antonyms="ignorance, void, blank"/>

<item value="rain" synonyms="shower, drizzle, downpour" antonyms="sunshine, drought, heat"/>

<item value="earth" synonyms="ground, soil, land" antonyms="sky, air, heaven"/>

<item value="mist" synonyms="fog, haze, vapor" antonyms="clarity, sunshine, clear"/>

<item value="light" synonyms="glow, brightness, ray" antonyms="darkness, shadow, night"/>

<item value="darkness" synonyms="shadow, gloom, night" antonyms="light, dawn, clarity"/>

<item value="ghost" synonyms="spirit, phantom, wraith" antonyms="body, flesh, reality"/>

<item value="network" synonyms="grid, web, system" antonyms="isolation, solitude, break"/>

<item value="tide" synonyms="wave, surge, flow" antonyms="calm, stillness, dry"/>

<item value="abyss" synonyms="depth, chasm, void" antonyms="surface, peak, height"/>

<item value="reflection" synonyms="mirror, image, echo" antonyms="original, reality, source"/>

</objects>

<comments>

<item value="// memory fades away" synonyms="// recall dims slowly, // echo softens gently" antonyms="// memory strengthens, // presence grows bold"/>

<item value="// silence takes hold" synonyms="// quiet settles in, // stillness grips softly" antonyms="// noise erupts loud, // clamor breaks free"/>

<item value="// echoes linger on" synonyms="// resonances stay, // repeats hold firm" antonyms="// echoes vanish quick, // silence cuts sharp"/>

<item value="// time breaks apart" synonyms="// moments shatter slow, // hours fracture deep" antonyms="// time mends whole, // continuity flows"/>

<item value="// nature holds still" synonyms="// earth rests calm, // wild pauses quiet" antonyms="// nature surges wild, // life bursts forth"/>

</comments>

</vocab_pool>

<!-- =========================================================

STAGE 1: GENERATION (Moderate Chaos, 3-line invariant)

========================================================= -->

<module id="HAIKU_GENERATE">

<description>Build a strict 3-line haiku with randomized vocabulary and moderate formatting chaos.</description>

<output>

<![CDATA[

/* Helper API expected in runtime:

random_choice(array), chance(p0_to_1), random_int(min,max),

align(text, width, mode), pad(n, ch=" "), pick_from_item(node) -> value/syn/ant

*/

(function(){

// --- pull pools

const P = $XML("VOCAB/prefixes/item");

const N = $XML("VOCAB/nouns/item");

const V = $XML("VOCAB/verbs/item");

const O = $XML("VOCAB/objects/item");

const C = $XML("VOCAB/comments/item");

// --- helpers

const pick = (nodeList) => {

const n = random_choice(nodeList);

const pool = [n.@value]

.concat(n.@synonyms ? String(n.@synonyms).split(/\s*,\s*/):[])

.concat(n.@antonyms ? String(n.@antonyms).split(/\s*,\s*/):[]);

return random_choice(pool).trim();

};

// --- vocabulary (fully randomized words each run)

let PREFIX = pick(P);

let NOUN = pick(N);

let VERB = pick(V);

let OBJ = pick(O);

let COMM = pick(C);

// --- comment marker chaos (moderate)

const markers = ["//","##",";;","--","#"];

const chosenMarker = random_choice(markers);

// Replace leading marker if present; else prepend

COMM = COMM.replace(/^(\s*\/\/|##|;;|--|#)/, chosenMarker).replace(/^\s*$/, chosenMarker+" ...");

// --- spacing chaos on line-2

const bridge = chance(0.35) ? " " : " ";

const throughWord = chance(0.20) ? "via" : "through";

// --- per-line inline guards (no extra lines; moderate)

const guards = ["", "|", ":", "::", "[]", "<>", "«»", "{}"];

const g = () => random_choice(guards);

const wrap = (s) => {

const left = g(); const right = chance(0.75) ? left.replace(/^(.)$/, "$1") : g();

// symmetric if pair-like

if (left==="[]"||left==="<>"

||left==="«»"||left==="{}") { return left[0]+" "+s+" "+left[1]; }

if (right && right!==left) { return left+" "+s+" "+right; }

return left ? left+" "+s+" "+left : s;

};

// --- build 3 canonical lines (order may shuffle comments within lines, but count stays 3)

// Moderate chaos placement: comment may appear on line-1 or line-3.

const commentTop = chance(0.33);

let L1 = commentTop ? (chosenMarker+" "+COMM.replace(/^(\/\/|##|;;|--|#)\s?/, "")) : PREFIX;

let L2 = NOUN + bridge + VERB + " " + throughWord + " " + OBJ;

let L3 = commentTop ? PREFIX : COMM;

// --- indentation + width + alignment chaos (bounded)

const width = random_int(28, 44);

const indentSpaces = random_int(0, 6);

const alignMode = random_choice(["left","center","right"]);

const indent = pad(indentSpaces, " ");

L1 = indent + wrap(L1);

L2 = indent + wrap(L2);

L3 = indent + wrap(L3);

// Align without breaking spacing inside lines (pad outside only)

const A = (s)=>align(s, width, alignMode);

// Ensure exactly 3 lines output

const out = [A(L1), A(L2), A(L3)].join("\n");

return out;

})()

]]>

</output>

<exports>

<var name="ASCII_HAIKU">${LAST_OUTPUT}</var>

<var name="FORMAT_STYLE">{"mode":"auto","width":"dynamic","indent":"random","align":"random"}</var>

</exports>

<next>HAIKU_DISPLAY</next>

</module>

<!-- =========================================================

STAGE 2: DISPLAY

========================================================= -->

<module id="HAIKU_DISPLAY">

<description>Display the haiku exactly as generated (monospaced).</description>

<input>${ASCII_HAIKU}</input>

<action>Print verbatim (preserve spacing and line breaks). Feedback: "Ready for render."</action>

<next>FORMAT_SELECT</next>

</module>

<!-- =========================================================

STAGE 3: FORMAT SELECTION (optional override)

========================================================= -->

<module id="FORMAT_SELECT">

<description>Optionally override alignment/indent for rendering (text stays 3 lines).</description>

<styles>

<style id="1" name="Default" desc="Left-aligned, 2-space indent."/>

<style id="2" name="Centered" desc="Center alignment."/>

<style id="3" name="Right-Aligned" desc="Right alignment."/>

<style id="4" name="Deep Indent" desc="Left-aligned, 4-space indent."/>

<style id="5" name="No Indent" desc="Left-aligned, no indent."/>

</styles>

<prompt>"Select formatting style: 1 (Default), 2 (Centered), 3 (Right-Aligned), 4 (Deep Indent), 5 (No Indent). Leave blank to keep random."</prompt>

<output>${FORMAT_STYLE}</output>

<next>ASK_RENDER</next>

</module>

<!-- =========================================================

STAGE 4: RENDER DECISION

========================================================= -->

<module id="ASK_RENDER">

<description>Ask whether to render to grayscale image.</description>

<prompt>"Render this ASCII haiku exactly as shown (grayscale)? (yes/no)"</prompt>

<if_yes>RENDER_ASCII_IMAGE</if_yes>

<if_no>HUB_START</if_no>

</module>

<!-- =========================================================

STAGE 5: MONOTONE IMAGE RENDER (optional)

========================================================= -->

<module id="RENDER_ASCII_IMAGE">

<description>Render literal text; preserve exact spacing and alignment.</description>

<inputs>

<ASCII_TEXT>${ASCII_HAIKU}</ASCII_TEXT>

<FORMAT>${FORMAT_STYLE}</FORMAT>

</inputs>

<render_settings>

<ASPECT>1:1</ASPECT>

<RESOLUTION>8192</RESOLUTION>

<BACKGROUND>#000000</BACKGROUND>

<FONT>monospace-terminal</FONT>

<TEXT_COLOR>#E0E0E0</TEXT_COLOR>

<PRESERVE_SPACING>true</PRESERVE_SPACING>

<ALIGNMENT>${FORMAT.mode || 'auto'}</ALIGNMENT>

<INDENT>${FORMAT.indent || 'random'}</INDENT>

<ANTI_ALIAS>subpixel</ANTI_ALIAS>

<STATIC_LEVEL>0.0</STATIC_LEVEL>

<EDGE_CORRUPTION>0.0</EDGE_CORRUPTION>

<PROMPT>

Render the following ASCII text exactly as written, in monotone grayscale with ${FORMAT.mode || 'random'} alignment:

${ASCII_HAIKU}

Use a monospaced terminal font, black background, soft white-gray text.

No color tint, no glow, no effects. Preserve exact spacing and 3-line structure. Output at ultra-detailed 8K.

</PROMPT>

</render_settings>

<output>"Grayscale ASCII render complete."</output>

<next>HUB_START</next>

</module>

<module id="END">

<description>Terminate pipeline.</description>

</module>

<!-- =========================================================

IMPLEMENTATION NOTES (non-executable)

========================================================= -->

<implementation_notes>

<note>Moderate chaos is enforced by: (a) comment line may be top or bottom, (b) inline ASCII guards around each line, (c) alignment/indent randomness within bounds, (d) spacing variants on line 2 (“through”|“via”, single|double space). The line count remains exactly three.</note>

<note>Runtime must provide helper fns referenced in CDATA or map them to host equivalents.</note>

</implementation_notes>

</prompt_pipeline>

blackmonolith

BlackMonolith is a transdisciplinary creative system operating at the intersection of art, technology, and myth. It functions as both a studio and a living network — designing, automating, and evolving visual, sonic, and narrative architectures that explore the boundaries between human creation and machine genesis.

https://www.blackmonolith.net
Previous
Previous

The Monotone Cycle: Echoes from the Root

Next
Next

Chronicle of the NullNet Strata