iArt.ai
AI 모션 그래픽 소프트웨어, 누구나 사용할 수 있는 After Effects 대안, 텍스트 프롬프트로 몇 분 안에 애니메이션·설명 영상 제작
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Small voice. Big adventure. A read-along picture book in which the child reads part of the story out loud and talks with the characters.
Built at Cal Hacks 13.0 for the Cartesia track by Ahn Yeseo, Lee Jaeyun, Aaron Cao and Aaron Phan.
Deployed on: https://story-with-highlight.vercel.app/
The child plays the youngest of the Three Little Pigs. A narrator and three characters speak, each in their own voice. When it is the child's turn, a line appears in a speech bubble and each word lights up as the child reads it correctly. If the child gets stuck on a word, the narrator says it and has the child repeat it. Between scenes, the pigs ask the child open questions ("What would you build with?" "Why did it stay standing?") and reply to what the child actually said.
| Piece | What it does |
|---|---|
| Cartesia Ink (speech-to-text) | Hears the child, streaming 16 kHz PCM over a WebSocket |
| Cartesia Sonic (text-to-speech) | Five voices, each at its own speed and volume: narrator, wolf and Foxy from the library, and the two pigs as instant voice clones so the brothers sound like children |
Claude (@anthropic-ai/sdk) | Replies to free answers that the templates don't cover, and answers Foxy questions. It has a short timeout and a scripted fallback. |
server.ts | Bun server that runs the script, holds the mic and audio session, and handles stuck-word coaching and barge-in |
web/ | Next.js app built from the TaleTail Figma: the illustrated pages, speech bubbles and word highlighting |
index.html | A plain fallback client served by the Bun server itself |
story.ts holds the fixed script as a list of steps (scene, screen, say, read, ask, demoStop). The first pig asks the follow-up questions, the second pig gives the explanations, and the wolf just says his lines.reader.ts checks the read-aloud lines word by word. It allows for homophones, contractions ("I will" for "I'll") and dropped endings ("work" for "worked"). After 5 seconds without progress, the narrator coaches the stuck word until the child says it back.questions.ts classifies the child's free answers (material, reason, unsure…) and picks a reply from templates. It falls back to Claude only when no template fits.foxy.ts: the child can say "hey Foxy" at any time to ask a question. Foxy answers from the story so far without spoiling what comes next, and goes away when the child says "I'm done, Foxy".A grown-up sets up the microphone by touch. After that the child never types anything: they open a book by saying its name, read their lines out loud, answer the pigs in their own words, and interrupt whenever they like. Voice is the interface, not a feature bolted onto one.
Ink 2 — speech-to-text over a WebSocket, 16 kHz PCM:
turn.update) drive the word-by-word highlighting.
Words light up while the child is still reading, not after.Sonic 3.5 — text-to-speech over a WebSocket, streamed back as raw PCM:
generation_config per speaker. The narrator reads at speed: 0.65 so a
child can follow; the cloned pigs get volume: 2.0, because a small voice
recorded quietly does not carry against a narrator.context_id abandonment is how barge-in works. When the child speaks, we
stop the context mid-line and the browser drops everything still queued.continue with max_buffer_delay_ms: 0 streams Foxy's answer sentence by
sentence, so he starts talking before the model has finished writing.Measured, not estimated. The server logs the time from the child's last word
to the first audio byte, and ?op=1 shows it live:
| Path | Child stops speaking → first audio |
|---|---|
Scripted reply (templates in questions.ts) | 82–114 ms |
| Claude in the loop (free answers, Foxy) | 1–2 s |
Children's voices are among the most sensitive inputs a system can take, so the handling is deliberately boring.
[ink] and [answer] lines are
behind DEBUG=1, off by default, so a child's words do not end up in a
terminal's scrollback.forget() in server.ts.story-engine/safety.ts), and the
characters are constrained to the story.What we cannot claim: audio and transcripts still travel to Cartesia and to Anthropic, and what those vendors retain is their policy, not ours. Cartesia's zero-data-retention option is enterprise-only, so we cannot enable it on a hackathon account. For a real product used by children that is the first thing we would negotiate; until then the honest statement is that nothing is retained on our side.
You need Bun (curl -fsSL https://bun.sh/install | bash).
bun install
cp .env.example .env # then fill it in (see below)
bun run server.ts # story server on http://localhost:3000
cd web && bun install && bun run dev # app on http://localhost:3001
Open http://localhost:3001 and allow the microphone. On the bookshelf, say "The Three Little Pigs" — or just "pigs" — to open it, or click the cover.
Use headphones: without them, the voices coming out of the speakers can be picked up by the mic.
URL options:
?demo: stops after the short demo cut, at "Your Building Idea".?op=1: operator view, with the transcript and latency.Everything goes in the root .env. One Cartesia key covers every voice; each voice only needs its ID.
CARTESIA_API_KEY=
ANTHROPIC_API_KEY=
NARRATOR_VOICE_ID=
FIRST_PIG_VOICE_ID=
SECOND_PIG_VOICE_ID=
WOLF_VOICE_ID=
FOXY_VOICE_ID= # optional, defaults to the narrator
The web app connects to ws://localhost:3000/ws by default. To point it at a deployed server, set NEXT_PUBLIC_STORY_SERVER.
The server and the web app are deployed separately:
bun run server.ts start command, reads PORT, and needs the env vars above.web/ to Vercel, with NEXT_PUBLIC_STORY_SERVER=wss://<your-server>/ws.INTEGRATION.md has the details and the known open issues.
bun: command not found in a new terminal: add Bun to your shell profile, then open a new terminal:
export BUN_INSTALL="$HOME/.bun"; export PATH="$BUN_INSTALL/bin:$PATH"402 quota_exceeded response stops both speech and listening.bun run server.ts after any change to reader.ts, and use headphones.EADDRINUSE on port 3000 or 3001: an earlier run is still alive. Kill it
and start again — pkill bun, or on Windows
Get-Process bun | Stop-Process -Force.story.ts is hand-authored. Generalising to
any picture book is the real open problem, not a packaging exercise./ws on a deployed server
can start a session on our Cartesia credit. Fine for a demo on a laptop, not
for a public URL; a shared-token check is the next thing to add..env.The Three Little Pigs is a public-domain story.