تصور کنید ویدیویی داشته باشید که هر فریم آن نه یک تصویر تصادفی، بلکه یک تابع ریاضی دقیق از زمان باشد. در ۲۴ سپتامبر ۲۰۲۶، یک توسعهدهنده فاش کرد که چگونه Claude Opus 5.5 با بهرهگیری از Claude Code توانسته است یک ویدیوی باکیفیت را بهطور کامل از طریق کد منبع بسازد. این دستاورد با عبارتی خلاصه شد: «هر تکفریم، یک تابع ریاضی از زمان است.»
این رویکرد با دور زدن مدلهای انتشار (Diffusion Models) — که شبیه به نقاشی کردن روی یک بوم پر از نویز هستند تا تصویر شکل بگیرد — تصادفیبودن معمول در ویدیوهای هوش مصنوعی را حذف کرده است. در مدلهای سنتی، هوش مصنوعی پیکسلها را پیشبینی میکند که منجر به نویز یا تغییرات ناگهانی میشود. اما در اینجا، عامل هوش مصنوعی با حذف احتمالات، یک اثر کاملاً دترمینستیک (Deterministic) خلق کرد.
بسیاری از ویدیوهای فعلی هوش مصنوعی بر اساس احتمالات ساخته میشوند و به همین دلیل دچار لرزش (Flicker) یا تغییرات ناگهانی در جزئیات (Drift) هستند. اما در این پروژه، ویدیو به عنوان تابعی از زمان (t) تعریف شده است؛ به این معنا که هر لحظه از زمان، خروجی بصری مشخصی دارد. برای مثال، فریم ۱,۳۶۵ را میتوان بهطور مستقل و بدون نیاز به فریمهای قبلی، فوراً و دقیقاً مشابه دفعات قبل بازتولید کرد. این دقت ریاضی اجازه میدهد تا هماهنگی میان نشانههای صوتی و اتفاقات بصری به سطح میلیثانیه برسد.
همانطور که در تحلیلهای قبلی ما دربارهی امنیت و استدلال مدلهای زبانی اشاره کردیم، انتقال از «تولید محتوا» به «تولید کد برای ساخت محتوا»، سطح جدیدی از کنترل را به کاربر میدهد. این رویکرد یادآور تجربهی پلتفرم Academa است که برای مدیریت محتوای آموزشی، دروس STEM را به کد منبع قابل ویرایش تبدیل کرد تا دقت علمی محتوا حفظ شود.
زیرساخت فنی و معماری
این پروژه بر پایه کد منبع JohnHeibel/PDoomVideo بنا شده است. معماری اصلی بر این قانون استوار است که هر فریم باید یک تابع خالص (Pure Function) از t باشد. این موضوع از طریق یک تابع رندر خاص پیادهسازی شده است:
window.renderAt = async (t, type = 'image/png', q = .92) => { T = t; await redraw(); composite(t); return outC.toDataURL(type, q); };
طبق گزارش وبسایت dev.to، استک فنی این اثر بر p5.js برای بصریسازی، یک صفحه استودیو و یک اسکریپت سفارشی به نام render.mjs متکی است که مرورگرهای کروم را در حالت بدون رابط کاربری (Headless) مدیریت میکند.
برای حذف هرگونه تصادف، مدل دستور استفاده از Math.random() و ساعتهای سیستم را ممنوع کرد. بهجای آن، از یک هش GLSL با بذر (Seed) مشخص استفاده شد تا «تصادفیبودن کاذب» ایجاد شود. کد این تابع به شرح زیر است:const hash = n => { const s = Math.sin(n * 127.1 + 311.7) * 43758.5453; return s - Math.floor(s); };
این محدودیت باعث شد فریمها بتوانند بهصورت غیرترتیبی یا بهطور همزمان در چندین مرورگر رندر شوند. همچنین یک مشکل حیاتی در قابلیت جابهجایی (Portability) وجود داشت: مخزن اصلی از دستور --use-angle=d3d11 استفاده میکرد که فقط در ویندوز کار میکرد و در مک با خطای "Error creating webgl context" مواجه میشد. عامل (Agent) هوش مصنوعی با تغییر این دستور به --use-angle=metal و اصلاح مسیر کروم در macOS، این مشکل را حل کرد. این تمرکز بر پردازش در محیط مرورگر، شباهت زیادی به معماری SquishyFile در افزایش وضوح ویدیوها با پردازش ۱۰۰٪ محلی دارد.
خط لوله تولید عاملمحور
تولید این ویدیو از یک گردشکار سلسلهمراتبی سختگیرانه پیروی میکرد:
- برنامهریزی: ابتدا Opus 5.5 یک استوریبورد (
STORYBOARD.md) نوشت که در آن برای هر خط از متن، یک ردیف شامل جزئیات نما و کلمه کلیدی (Cue word) وجود داشت. سپس یک راهنمای انیمیشن (ANIMATION_GUIDE.md) تدوین کرد. این راهنما به عنوان یک قرارداد برای تمام سازندگان عمل میکرد و API، خوانایی و فریمهای انتقال بین فصلها را تعریف میکرد. - اجرای موازی: مدل سه عامل فرعی را برای ساخت فصلهای مختلف ویدیو بهطور همزمان به کار گرفت. هر عامل یک دستورالعمل کوتاه دریافت کرد و با استفاده از «برگههای تماس» (Contact Sheets)، کار خود را تأیید کرده و گزارش را به عامل اصلی میفرستاد. این متدولوژی در استفاده از عاملهای کدنویس برای بازسازی ساختارهای بصری، مشابه رویکردی است که Hypit برای تبدیل ساختار ویدیوهای ویروسی به کد به کار برد.
- همگامسازی صوتی: برای روایت، از فایلی به نام
script.mdبا ۱۵ خط شمارهگذاری شده استفاده شد. کلماتی که در {آکولاد} قرار داشتند، به عنوان کلمات کلیدی برای زمانبندی عمل میکردند. سیستم از برچسبهای زمانی ElevenLabs برای استخراج زمان شروع و پایان هر کاراکتر استفاده کرد. یک ابزار پایتونی (tools/voice.py) این کلیپها را به هم متصل کرد و فایلtimeline.jsرا نوشت. برای موسیقی، عامل از خروجیهای .m4a مدل Suno استفاده کرد، استریم زیرنویسmov_textرا از طریق ffmpeg استخراج نمود، از Whisper large-v3-turbo برای تعیین زمان کلمات بهره گرفت و باdifflib.SequenceMatcherمتن ترانهها را با شبکه ضربآهنگ (Beat grid) تراز کرد. - کنترل کیفیت: یک عامل بازبین اختصاصی، پیشنویسها را نمره میداد. برای مثال، یکی از فریمها در خط ۱۱ نمره ۴ از ۱۰ گرفت زیرا «بخش در حال رندر، یک تصویر موقت (Placeholder) است». این بازبین همچنین یک خطای زمانبندی در نمایشگر (HUD) را شناسایی کرد؛ جایی که مقدار ۷۶.۰۳۳ ثانیه نمایش داده شده بود در حالی که هدف ۷۶.۰۰۸ ثانیه بود.
عبور از نقاط کور بینایی
در میانه مسیر، مدل با یک «نقطه کور» مواجه شد: API اجازه گرفتن اسکرینشات را نمیداد. برای اینکه مدل بتواند بدون دیدن تصاویر، کیفیت فریمها را بسنجد، دو راهکار ابداع کرد:
۱. ریاضیات پیکسلی: اسکریپتی نوشت که میانگین رنگ هر فریم، درصد پیکسلهای روشن و محدوده (Bounding box) محتوای درخشان را گزارش میکرد تا فریمهای خالی یا فلاشهای بیش از حد روشن شناسایی شوند.
۲. عاملهای واسط: از عاملهای بازبینی که هنوز دسترسی به تصاویر داشتند خواست تا فریمها را بهصورت متنی توصیف کرده و نمره بدهند تا مدل اصلی بتواند بر اساس این توصیفات تصمیم بگیرد.
این تغییر رویکرد به «کد-به-مثابه-ویدیو»، این فرض را که ویدیوهای هوش مصنوعی باید توالیای از پیکسلهای پیشبینیشده باشند، تغییر میدهد. وقتی هوش در لایه کد قرار میگیرد، خروجی تبدیل به یک دارایی کاملاً قابل ویرایش و مقیاسپذیر میشود. برای توسعهدهندگان، این یعنی هوش مصنوعی اکنون میتواند به عنوان کارگردان و مهندس ارشد عمل کند و خط لولهای از عاملهای متخصص را برای رسیدن به یک دستورالعمل خلاقانه دقیق مدیریت کند.
رندر نهایی و خروجی
رندر نهایی ۳,۲۲۴ فریم با نرخ ۳۰ فریم بر ثانیه (در مجموع ۱۰۷.۵ ثانیه) توسط چهار ورکر کروم در حالت Headless انجام شد. هر ورکر یک شاخص فریم را از یک صف مشترک میگرفت، تابع renderAt(i / 30) را فراخوانی میکرد و یک JPEG میساخت. در نهایت، این تصاویر با ffmpeg و با استفاده از کدک libx264 به ویدیو تبدیل شدند.
یکی از باگهای خاص در مرحله ساخت موزیک-ویدیو این بود که استفاده از استریم زیرنویس به عنوان ورودی باعث میشد دستور ffmpeg -shortest برای ۲۰ دقیقه در حالت CPU 0% متوقف شود. راه حل این مشکل، اضافه کردن صریح پرچم -t <duration> بود.
نقطه اوج ویدیو، یک «حلقه دروسته» (Droste loop) است که در آن ویدیو، بوم خروجی خودش را بهصورت زنده در یک پلیر در لحظه تلفظ کلمه "inside" نمایش میدهد. از آنجایی که ویدیو پیش از انتشار پست نهایی رندر شده بود، صفحه داخلی با برچسب "DRAFT · the real post comes later" مشخص شده است.
گام بعدی شما
- بررسی مخزن متنباز PDoomVideo در گیتهاب برای درک نحوه پیادهسازی توابع رندر دترمینستیک.
- آزمایش ترکیب مدلهای استدلالی با ابزارهای رندرینگ کد-محور برای تولید محتوای بصری دقیق.
- مطالعه مستندات p5.js برای یادگیری نحوه تبدیل توابع ریاضی به عناصر بصری.
اما داستان سختافزاری این تحول حتی شگفتانگیزتر است — به تحلیل ما دربارهی تراشههای Blackwell مراجعه کنید.




گفتگو