Skip to content

theam/comic-foundry

Repository files navigation

Comic Foundry

Comic Foundry turns conversations into comic strips. Give it structured chat messages, pick a visual theme, and it stages panels with characters, balloons, emotions, backgrounds, and just enough dramatic nonsense to make a meeting transcript feel less like a tax form.

It is inspired by the spirit of the original Microsoft Comic Chat, but this is not a clone. Comic Foundry is a fresh, open-source, TypeScript-first toolkit for making chats, transcripts, and meeting recaps visually delightful with reusable theme assets and model-generated extras.

The Tiny Pitch

Most chat apps preserve what people said. Comic Foundry tries to preserve how it felt.

const chat = buildComicChatInput({
  messages: [
    { speakerId: "maya", text: "Comic Foundry turns chats into comics." },
    { speakerId: "leo", text: "WAIT, so it is not another chat app?" },
    { speakerId: "maya", text: "Exactly. It is the comic director hiding in your transcript." }
  ],
  cast: [
    { characterId: "maya", displayName: "Maya", themeCharacterAssetId: "nora" },
    { characterId: "leo", displayName: "Leo", themeCharacterAssetId: "mabel" }
  ],
  inference: ruleBasedComicChatInferenceEngine
});

const comic = createComicFromMessages({
  themeId: "park-ink-v0",
  backgroundAssetId: "park-day",
  ...chat
});

Then render it:

<ComicStrip comic={comic} resolveAssetUrl={resolveAssetUrl} />

The result is a ComicDocument: portable JSON that describes panels, characters, emotions, balloons, camera choices, and logical asset references.

What Is In The Box

  • @comic-foundry/core: message normalization, cast mapping, emotion inference, comic planning, and the ComicDocument types.
  • @comic-foundry/react: a React renderer that composes panels from backgrounds, character cutouts, and speech balloons.
  • @comic-foundry/theme-tools: theme manifests, asset metadata, validation, and asset lookup helpers.
  • @comic-foundry/starter-theme: a tiny embedded SVG theme for tests and package development.
  • apps/demo: a Vite playground that turns a simple transcript into a comic.
  • themes/park-ink-v0: the first generated black-and-white newspaper-comic theme, with a park background and eight weird little citizens.

Try It

pnpm install
pnpm dev

Then open the local Vite URL and paste a transcript like:

Maya: Comic Foundry turns chats into comic strips.
Leo: WAIT, so meetings become panels?
Sam: thinking: Is this how humans make roadmaps?
Priya: /me opens a clipboard with unnecessary drama.
Noor: Why is the pigeon judging us?

Useful commands:

pnpm typecheck
pnpm test
pnpm build

Why This Exists

The original Comic Chat had a magic trick worth stealing in spirit: it turned plain chat into a visual performance. It picked characters, reactions, panels, camera angles, and balloons so users did not have to storyboard anything.

Comic Foundry brings that idea into 2026 with:

  • portable TypeScript data structures instead of a closed chat client
  • theme packages instead of hardcoded sprites
  • reusable generated assets instead of generating a whole panel every time
  • pluggable inference engines for emotion and staging
  • a future path for Zoom, Slack, Discord, and transcript importers

The goal is not to build the most serious communication tool on earth. The goal is to make text conversations worth looking at twice.

The Data Flow

  1. Import a transcript, Zoom session, Slack thread, or plain list of messages.
  2. Normalize it with buildComicChatInput.
  3. Use an inference engine, currently ruleBasedComicChatInferenceEngine, to lock in emotions at parse time.
  4. Build a ComicDocument with createComicFromMessages.
  5. Resolve logical asset refs from a theme or generated asset store.
  6. Render with React, or build your own renderer.

That parse-time emotion step matters: if the same normalized chat is sent over the network, exported, or rendered on another machine, everyone gets the same comic decisions instead of re-rolling the mood dice.

Themes And Assets

Comic Foundry treats packaged assets and generated assets as one system.

  • Themes contain prompts, metadata, backgrounds, characters, and required expression/camera variants.
  • Generated images can be stored next to theme assets with metadata.
  • The document references logical asset ids, not raw file paths.
  • Missing assets can eventually be generated on demand by providers such as OpenAI image models, Gemini image models, or local generators.

See docs/assets-and-themes.md for the current draft spec.

Current Status

Done:

  • Historical research into how Comic Chat worked.
  • Monorepo scaffold with core, React renderer, theme tools, starter theme, and demo app.
  • First ComicDocument planner with cast continuity, explicit emotions, panel staging, and source message metadata.
  • Rule-based inference engine exported from the library.
  • First generated Park Ink theme with reusable backgrounds and character emotion cutouts.
  • Tests for core planning, theme validation, starter theme assets, and React rendering.

Next:

  • Improve panel planning so group scenes, close-ups, and speaker focus feel more like actual comic direction.
  • Turn Park Ink into a proper distributable theme package.
  • Add asset root APIs and generated asset resolution.
  • Add transcript import helpers, starting with Zoom-style sessions.
  • Add export paths for images, strips, and shareable pages.
  • Add optional LLM-backed inference and model adapters for custom assets.

Contributing

This project needs people who like any of these:

  • TypeScript libraries
  • comic timing
  • weird UI experiments
  • AI image generation
  • asset pipelines
  • chat integrations
  • making meetings less cursed

If you can make a transcript funnier, a panel clearer, a prompt more reliable, or a renderer less cursed, you are exactly the sort of accomplice this project needs.

Non-Goals

  • Building yet another chat client first.
  • Copying Microsoft assets, UI chrome, names, or characters.
  • Depending on a single image provider.
  • Generating an uncached full-scene image for every single message.

Sources

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors