Goose Lab/Research journal Jack’s site ↗

AN INDEPENDENT RESEARCH NOTEBOOK · SEP–OCT 2026

A picture
in the memory.

Can a language model remember a scene well enough to draw it—and keep it moving?

We connect RWKV’s recurrent memory to an image generator. This is the story of what worked, what failed, and how still images led us to instruction-driven synthetic video.

Evidence snapshot · October 9, 2026 · All imagery comes from saved experiments

MEMORY → IMAGEACTUAL MODEL OUTPUT
A six-object scene generated from recurrent memoryA saved natural-image generation from the final September model
From scene facts……to natural images
THE QUESTION

What survives in a fixed-size state after the words have passed?

01 Read a scene→02 Carry its memory→03 Draw from the state→04 Change it over time

THE IDEA, FROM FIRST PRINCIPLES

Words go in.
A scene should stay.

Imagine reading: A red circle on the left and a blue square on the right. A useful memory should keep the objects, their colours, and their locations. Now imagine adding: Move the circle down. The same scene should change without rebuilding it from scratch.

RWKV is a language model with a recurrent state: each token updates a fixed-size memory. Our project asks whether that state contains usable visual information, how to read it, and eventually how to let instructions and observations update a persistent world.

“Memory is the canvas” is an intuition. The state is a learned collection of matrices, not a literal pixel buffer or an object database.

01 / INPUT

Text or a past observation

Tokens enter the recurrent model one at a time.

02 / MEMORY

RWKV’s WKV state

All-layer weighted key-value matrices hold the conditioning signal.

03 / READOUT

A learned reader

Learned projections and attention turn state matrices into conditioning tokens.

04 / RENDER

A diffusion image generator

Noise → image latents → pixels through a VAE decoder.

Under the hood: what is trained, and what reaches the generator?

The September system

RWKV-7 G1j models from 0.1B through 7.2B supplied frozen or adapted WKV states. A learned reader fed a diffusion transformer. Early experiments generated 64×64 RGB images; the final 7.2B run used 256×256 images represented by 4×32×32 VAE latents and 256 reader tokens.

The state reader forms rank-16 learned sketches of each 64×64 WKV matrix, normalises them, adds head/layer identities, and mixes tokens with two attention blocks. At 7.2B, eight heads are concatenated per reader token. Rectified-flow training interpolates clean images and noise; the diffusion transformer learns the velocity needed to sample back toward an image.

An auxiliary head predicted a 16×16 thumbnail from the reader during training. This gave the reader a direct visual gradient. The final image still came from diffusion; the thumbnail was a training aid.

The October system

The streaming branch uses VisualRWKV v7.00 1.5B, with 24 layers and width 2048. The local video system reads state into 192×384 conditioning tokens and uses a 353M-parameter latent diffusion transformer. It also learns an image observation encoder and a scene-state head.

These are distinct architectures and checkpoints. A September 7.2B reader cannot simply be attached to the 1.5B model. Streaming carries WKV plus attention/FFN shift states; the image reader consumes WKV. Caption CLIP embeddings do not bypass memory to condition our generator.

The separate natural-image branch instead conditions an SD1.5 UNet through a learned bridge. Its latest decoder is fixed but includes 400 earlier adaptation steps. The video branch uses a four-value position/velocity state head and a memory-predicted position hint to help its own DiT follow the scene.

THE RESEARCH JOURNEY

Every result changed
the next question.

Start at the first experiment, or jump to a chapter.
Negative results are part of the story.

01 / FIRST CONTACTCompleted

Can a fixed-size language memory produce an image?

The repository begins on September 24 with RWKV chat and a live architecture visualiser. We built a differentiable recurrent implementation, checked it against a reference, and connected its state to diffusion. The first image task was CIFAR-100: small images in 100 categories, paired with simple label sentences. A frozen 0.1B RWKV model processed the words; a reader and diffusion transformer learned to draw from its recurrent state.

73.4%

CIFAR-100 judge accuracy on the trained prompt template
1% chance; class-only reference 78.4%

The first answer was yes, within a narrow task. But changing the wording exposed a weakness: accuracy fell to 41.0% on held-out templates, 29.7% on synonyms, and 10.5% on descriptions. Learning a route from one phrasing to an image is easier than learning a reusable visual concept.

We then moved to precisely scored synthetic shapes. Each caption specifies one to six objects, their colour, shape, and cell in a 3×3 layout. The frozen 0.1B system reached 84.2% per-object accuracy, with performance falling as object count grew.

Next question: Is the memory losing the scene, or is the image system struggling to read it?

Evidence: results/summary.md · NOTES.md, Stages 1–2

02 / KEEPING THE LANGUAGECompleted

Image supervision can teach the memory—and damage the language model.

We allowed image loss to update RWKV itself. Full tuning of the 0.1B model made synthetic scene drawing almost perfect, but its language perplexity exploded: WikiText rose from 31.16 to approximately 1.94 million. Perplexity measures how well a language model predicts text; lower is better.

LoRA adds small trainable low-rank updates to a frozen model. Combined with a KL-divergence anchor, it lets image training adjust the state while discouraging large changes to the original model’s next-token distribution.

99.0%

Shape-object accuracy with LoRA and KL weight 0.01
WikiText perplexity: 31.16 → 31.20 on this 0.1B run

Without the anchor, LoRA achieved 95.7% object accuracy but perplexity rose to 143.51. With too strong an anchor, image performance suffered. This established a useful tradeoff, not a guarantee of preserved conversational ability.

Next question: Will a larger language model automatically give us better scene memory?

Evidence: results/summary.md · NOTES.md, Stage 3

03 / THE SURPRISING BOTTLENECKCompleted

A bigger model was harder to read, not obviously worse at remembering.

Scaling the frozen backbone did not produce a clean improvement. The initial 7.2B diffusion-only shapes run achieved just 33.1% object accuracy, versus 84.2% for one 0.1B run. Single seeds varied substantially, and the readers differed in how they grouped the state, so this is not a controlled model-size ranking.

A compositional holdout also exposed a limit: when purple triangles were excluded from training, their accuracy was just 22.8% frozen and 55.0% with unanchored LoRA. Strong scores on familiar combinations did not solve unseen composition.

Direct scene probes recovered roughly 99% of tested facts from the frozen states. A reader trained directly toward scene targets reached 99.1% for 7.2B. That pointed toward a readout and optimisation problem: image failure alone did not demonstrate missing memory.

33.1 → 96.6%

7.2B shapes: diffusion-only versus auxiliary-thumbnail training
Frozen RWKV; separate recipes, not a pure size comparison

The 16×16 thumbnail objective supplied a short path for visual gradients to train the reader. It improved frozen 7.2B drawing dramatically. The Mac branch also tested early and late layer readers: auxiliary visual supervision rescued both, while simply using different state slices was unreliable.

Lesson: Distinguish memory capacity from the difficulty of extracting what the state already contains.

Evidence: NOTES.md, model-size ladder · sibling reader/mac results

04 / THE STILL-IMAGE BASELINECompleted

From exact shapes to 256-pixel natural images.

COCO captions introduced open-ended scenes. Early 64×64 image experiments compared frozen states, anchored LoRA and a matched frozen continuation. The latent branch then used a pretrained VAE to represent 256×256 images compactly, allowing a larger diffusion model and finer image detail.

The final September run trained the frozen 7.2B system for 20,000 updates, then continued for 10,000 updates with anchored LoRA. Its mixture was 45% COCO, 40% text-to-image-2M examples (mainly generated images with prompts), and 15% synthetic shapes. The text anchor sampled half captions, a quarter chat, and a quarter WikiText.

96.3%

Exact synthetic scenes at the final Stage 2 endpoint
Stage 1: 77.2%; object accuracy 90.31% → 98.77%

Natural-image retrieval rose from 51.6% to 57.8% and project-specific FID fell from 39.70 to 34.95. WikiText perplexity increased by 5.23%, with smaller increases on caption and chat evaluation. Saved images show more coherent scenes but still contain distorted people, misplaced objects and caption failures.

There is no matched 256px frozen continuation. These are endpoint improvements across a longer continuation with a changed recipe; the entire gain cannot be assigned to LoRA.

Evidence: NOTES.md, final audit · runs/full/*/metrics.json

05 / A PERSISTENT SCENEMixed results

Can observations and extra processing improve a streaming memory?

The October branch switched to VisualRWKV 1.5B and a causal streaming protocol. PROCESS gives the recurrence another step without advancing scene time; ADVANCE advances by 0.25 seconds; SHOW renders the current state before any generated image is read back; DONE ends the sequence.

Static alignment and repair did not establish natural-image readiness. An 800-update PROCESS pilot rendered 384 images without a clear overall gain; it did not establish learned timing. Conditioning K/V adapters also gave no categorical gain on their development panel.

A three-seed reader-gradient-noise screen compared six 200-update runs. Both arms recovered 53/56 shape objects and 14/16 exact scenes, with all 48 paired shape predictions identical. Small validation-loss changes did not become visible image gains.

Stable Diffusion 1.5 produced more photographically coherent samples while still failing captions. A joint full-weight RWKV/SD1.5 comparison was attempted, then stopped before its final planned evaluation. A replacement experiment froze the inherited, already adapted SD decoder while training RWKV, reader and bridge. It completed 2,000 updates and a terminal checkpoint audit; its 40 new display images still show missing or substituted subjects.

The formal 480-image comparison remains held, with no formal images rendered. The latest parallel work reconstructs training and retrospective validation curves from saved checkpoints. These reused development panels and assistant visual reviews are not held-out or human-blinded evaluations.

Lesson: Good-looking images, runnable token semantics, and lower losses each need a separate semantic evaluation.

Evidence: scene-feedback study/continuation ledgers · final experiment receipts

06 / LEARNING MOTIONCompleted pilots

Teach a small, measurable world before asking for open-ended video.

The local October 6–7 work built exact synthetic trajectories: coloured shapes move on a black 256×256 canvas. Training sequences interleave text, typed events and past image observations. Position, velocity, colour, shape and time can be measured against known targets.

The power-video system learns LoRA rank-32 adapters and new token rows, a 192-token reader, diffusion transformer, observation encoder and state head. The native language-model base and VAE remain frozen. A learned CNN compresses each image observation into four input tokens.

Training initially struggled to stabilise the visual reader and maintain autonomous motion. Later recipes used a ground-truth position hint for the diffusion loss, while inference derives that hint from recurrent memory. This is an explicit training aid: the rollout metrics below come from generated images, not target frames fed into future state.

The local lvt-v2 template differs from the original scene protocol: prompt → PROCESS ×2 → render, then ADVANCE → render. It has no SHOW token. Past generated frames enter an observation block only in feedback mode, before the next ADVANCE.

Synthetic motion success does not establish arbitrary video generation. The image renderer and the recurrent dynamics must be evaluated separately, especially when the model reads back its own drawings.

Next question: Can the state respond to “stop” or “move” at the correct time, without drifting while it reads the instruction?

Evidence: local-video-token and power-video HANDOFF.md/status.json

07 / INSTRUCTION-DRIVEN CHANGESv5 completed Oct 9

The instruction is part of the dynamics.

Version 5 added supervision at instruction-token anchors, continuing v4 for 1,000 updates to update 6,950. The model saw commands to stop, move, or recolour an object. We measured what its state head read immediately after the words and after PROCESS steps, then rendered held-out trajectories.

21.48 → 18.20px

First post-change position error on 96 held-out clips
Memory-only state-head evaluation; paired change −3.29 ± 0.72 SE

On eight rendered change episodes, memory-only post-change error fell from 18.03 to 12.30 pixels. The state’s post-PROCESS position error also improved, from 32.5 to 22.9 pixels, but remains far from the roughly 5-pixel target. More PROCESS steps were not always better: two were best in the tested sweep, and a comparable gain at zero steps points to improved sentence reading.

Reading back generated images did not improve with v5: rendered own-feedback post-change error changed from 10.34 to 10.96 pixels. Recolouring also leaned worse. There is no same-length v5 control, so the overall gains combine the new supervision with additional training.

A v3 language check on held-out WikiText, chat and caption windows found about 2–5% perplexity drift, with no language loss in video training. V4/v5 retention checks are queued. This is teacher-forced scoring, not a broad conversation benchmark.

A MOVi-A observation bridge was a negative transfer result: about 58-pixel named-object error versus a 61-pixel mean predictor, while simple persistence was much stronger. It does not demonstrate real-video generation.

Evidence: power-video-20261009-v5 final eval · MOVi bridge report

08 / CURRENT WORKOctober 9 snapshot

Separate instruction learning from “more training.”

A new bounded local queue began after v5. It compares a control against stronger instruction-read supervision (weights ×4 and ×16), a variable PROCESS count of one to four, and the combination of variable counts with ×4 supervision. All start from the v5 parent and use memory-only changes.

At the October 9 evening evidence check, the control, ×4, variable-count, and combined ×4/variable-count arms had finished. The final ×16 arm was still in progress. These short screens are provisional; they are not a final multi-seed conclusion.

A following queue is already scheduled: v4/v5 language retention, 32-frame horizons, late changes, PROCESS versus equal-count ordinary-token controls, and two changes including stop → resume. It then tests a control replicate, replacing PROCESS with “Okay.”, and two-change training. Results were pending at this snapshot.

The immediate issue is temporal discipline. Reading an instruction can inadvertently advance the decoded scene position even when the protocol says time is held. The next tests ask whether anchor supervision and varied processing steps reduce this error without weakening plain motion or colour changes.

Goal: A scene memory that can observe, remember, change and render while preserving the causal boundary between past observations and future targets.

Evidence: power-video-varK-20261009 · latest saved records

MEASURED, WITH CONTEXT

Progress you can inspect.

Different tasks use different judges.
Choose an experiment to see its comparison.

7.2B, 256px: frozen Stage 1 → anchored LoRA Stage 2

20k updates → 10k additional updates · final endpoints · same evaluation protocol

No matched 256px frozen continuation; these endpoint changes include additional training.

How to read these metrics

Object accuracy requires the right colour and shape in the right cell. Exact scene requires the whole synthetic scene to match. CLIP score measures image/text alignment; retrieval asks whether the generated image selects its caption among alternatives. FID compares distributions of generated and real images. Our FID uses project-specific torchvision Inception features and should only be compared within these runs.

Final natural-image evaluation used 1,000 captions and a 5,000-image real reference. Mid-training evaluations used smaller panels. Image resolution, training mixtures, splits and judge definitions matter when comparing experiments.

THE ARTIFACTS

See what the memory drew.

Original saved outputs, including their flaws.
No live model or GPU is needed to explore.

01 / MATCHED STILL-IMAGE SAMPLES256px originals

Slide between two checkpoints.

Stage 1 at 19,000 updates and Stage 2 at 5,000 continuation updates. These snapshots are earlier than the final metric endpoints above.

Stage 1 six-object generation
Stage 2 six-object generation
Stage 1Stage 2

A red triangle on the right, a purple square in the center, a purple circle in the bottom left, a blue circle at the bottom, a green triangle in the top right and a green square on the left.

Target and provenanceSchematic of the requested six-object scene

Target is a caption schematic, not a generated image. In the six-object, seed-2901 pair, Stage 1 draws a purple square for the requested purple circle; Stage 2 corrects it. These are local saved renders from the September 30 comparison, using matched prompts and seeds. Stage 2 continued from the 20k Stage 1 parent; the pictured Stage 1 is the earlier 19k snapshot.

02 / SAVED VIDEO EVALUATIONv5 · update 6950

An instruction, then motion.

Scrub the saved sequence. Left is the generated frame; right is the exact synthetic target. Choose a case and feedback mode.

Generated
Exact target

Loading saved episode metadata…

13 saved frames at 0.25-second scene intervals. Replay uses the unmodified cells of a generated/target contact sheet. “Own” feeds only past generated images back to the model. Targets shown here are for comparison.

03 / THE FULL, UNFILTERED FINAL NATURAL-IMAGE PANEL

48 captions. Two final checkpoints.

The first 48 validation samples in their original order. No quality filtering. These are the final September endpoints, unlike the earlier synthetic slider above. Prompts and sampler seed 3 are matched; 30 Euler steps, guidance 3.0.

1 / 48

Final frozen Stage 1 generated image
Frozen Stage 1 · 20k
Final anchored LoRA Stage 2 generated image
LoRA Stage 2 · +10k

Browse all 56 October frozen-SD display images ↗

OPEN QUESTIONS & FUTURE EXPERIMENTS

A persistent world
is still the goal.

We want to add, remove, move and recolour objects; retain a scene through ordinary chat; illustrate passages; and generate timed sequences. Each step needs evidence that the memory and renderer behave causally.

01
Current local screen

Instruction reading that holds time

Compare matched short continuations from v5: control, stronger instruction-anchor losses, one-to-four PROCESS steps, and their combination. Evaluate changes alongside plain motion, colour fidelity and feedback stability.

Queued next tests and the next decision

The following queue checks v4/v5 language retention, 32-frame horizons, late instructions, PROCESS against ordinary-token controls, and two changes including stop → resume; then it trains three short control/token/two-change arms. These were queued, without results, at the snapshot.

Use completed screen results to select a recipe, then run a same-length control and multiple seeds before assigning broad gains to supervision. A longer continuation alone cannot identify the cause.

02
Proposed

Where should observations enter?

Test image feedback at PROCESS steps against every-token feedback and a null-feedback control. Match exposures and resource counts, keep feedback causal, and consider an explicit observation-end anchor.

Why this matters

The model can otherwise learn from different numbers of observations rather than their timing. No arm may consume a future target or target-noised latent as if it were generated feedback.

03
Parallel evaluation

Natural-image fidelity and training curves

Reconstruct loss and retrospective development-validation curves for saved checkpoints. The amended formal comparison is old joint update 1,000 against new frozen-SD update 1,000, from their common initialisation. Complete the held 480-image evaluation before claiming which recipe improves caption adherence.

Other deferred tests

PROCESS-state Gaussian noise remains a separate, low-priority proposal. It perturbs recurrent memory during processing and differs from the completed reader-gradient-noise screen. Human and blinded image review remain pending.

04
Longer-term

Beyond simple synthetic motion

Expand only after stable control: multiple objects, occlusion, long-horizon drift, observation re-entry and real-video transfer. Improve the observation bridge before claiming natural-video understanding or generation.

How success should be tested

Use held-out trajectories, explicit persistence and mean baselines, independent sampling seeds, semantically scored images, language checks, and eventual human/blinded review. Fixture passes and selected attractive images do not establish those capabilities.

REPRODUCIBILITY

Where these claims come from.

The archive covers auto-trip-3, auto-trip-3-reader, auto-trip-3-latent and auto-trip-3-mac. These directories contain overlapping worktrees, so repeated files are not counted as independent experiments.

Original experiment records

NOTES.md and results/summary.md hold the September history. runs/full/*/metrics.json holds final still-image metrics. The October scene study uses its study/continuation ledgers and final receipts; local video runs use their own HANDOFF.md, status.json and evaluation JSON.

A public evidence bundle

This page includes a compact, sanitised record of metric definitions, provenance, asset hashes and saved status observations. Checkpoints, private operational details and training corpora are not part of this web bundle.

Download evidence & asset index ↗
Read the September 29 sample report ↗

The PDF is an earlier snapshot, not the September 30 final audit.

Published snapshot: October 9, 2026. Current-work labels refer to the October 9, 21:40 EDT saved evidence check, not live monitoring. All interactive views replay existing artifacts; this page performs no inference.

Saved sample

Open original artifact ↗