vgpu: کار با WebGPU از مرورگر تا تست
خلاصهٔ کاملتر
تو معرفی مخزن اومده که vgpu یه کتابخونهٔ TypeScript برای WebGPU هست، یعنی همون APIی که بهت اجازه میده از کارت گرافیک مستقیم توی جاوااسکریپت استفاده کنی. پروژه از vercel-labs منتشر شده و حرف اصلیش اینه که کار با شیدر باید همونقدر عادی باشه که کار با یه ماژول TypeScript.
بزرگترین تفاوتش import تایپدار WGSL هست. فایل .wgsl مثل ماژول import و export میشه و reflection اسم، نوع و layout هر binding رو درست نگه میداره، پس نه codegen لازمه نه تعریف دستی که مدام باید همگامش کنی. حتی یه فایل شیدر میتونه fn یا struct خودشو export کنه تا شیدر دیگهای ازش import کنه، و بستهٔ @vgpu/wgsl-std توابع آماده مثل hash، noise و color رو میده.
ساختار API هم دور یه context واحد میچرخه. init() آداپتر و device رو میگیره و یه هندل Gpu برمیگردونه که ورودی اول همهٔ توابع دیگهست:
const gpu = await init();
const canvasSurface = surface(gpu, canvas, { dpr: [1, 2] });
const wave = effect(gpu, waveShader, { set: { speed: 2 } });
frameLoop(gpu, (frame) => {
wave.set({ time: time.time });
frame.pass(canvasSurface, wave);
});یعنی فریمها صریحن؛ pass و clear و draw همه فراخوانی مستقیمن و خبری از scene graph و حالت پنهون نیست.
همون کد رو با import از vgpu/node میشه هدلس روی یه device مبتنی بر Dawn اجرا کرد و پیکسلها رو با read() از target خوند. vgpu/mock هم یه آداپتر نرمافزاری قطعی میذاره جاش تا تستها اصلاً به GPU نیاز نداشته باشن. اندازه هم جدی گرفته شده: تعریفهای استفادهنشده قبل از minify حذف میشن و بودجهٔ ۲۵ کیلوبایت gzip برای یه افکت تمامصفحه تو CI چک میشه.
یه بخش جالب دیگه اینه که پروژه خودشو صریحاً برای ایجنتهای کدنویسی هم آماده کرده. مستندات، گالری مثالها و اعتبارسنجی شیدر همه از CLI در دسترسن و سایت vgpu.sh فایلهای agents.md و llms.txt رو منتشر کرده. یه اندپوینت MCP فقط-خواندنی هم هست تا ایجنت مستقیم به مستندات وصل شه.
نکات کلیدی:
- فایلهای .wgsl مثل ماژول TypeScript ایمپورت و اکسپورت میشن و bindingها با reflection تایپ میگیرن
- یه context واحد Gpu از init() که ورودی اول همهٔ توابع مثل draw، effect، frame و surface هست
- سه رانتایم با یه API: مرورگر، Node هدلس با vgpu/node روی Dawn، و ماک قطعی با vgpu/mock
- بودجهٔ ۲۵ کیلوبایت gzip برای یه افکت تمامصفحه که تو CI هم چک میشه
- لایسنس MIT، مستندات آفلاین با npx vgpu docs و اندپوینت MCP فقط-خواندنی روی vgpu.sh




