Three-Live: کد Three.js هوش مصنوعی، اجرای نیتیو روی موبایل و هدست
خلاصهٔ کاملتر
Three-Live یه پروژهی متنباز تو گیتهاب گوگله که خودش تاکید میکنه محصول رسمی گوگل نیست و تو مرحلهی Developer Preview (Alpha) هست. کارش اینه که کد Three.js (کتابخونهی معروف سهبعدی وب) رو با یه کامپایلر JIT روی خود دستگاه به خروجی نیتیو تبدیل کنه. رندر روی اندروید با Google Filament، روی iOS با Apple RealityKit و روی وب با WebGL2 و WebXR انجام میشه.
مشکلی که حل میکنه اینه: WebXR (یعنی API مرورگر برای واقعیت افزوده و مجازی) همهجا کار نمیکنه. Safari روی iOS، WKWebView و WebView اندروید اصلاً WebXR ندارن. راه جایگزین یعنی فرستادن فایل ثابت .usdz یا .glb به AR Quick Look یا Scene Viewer هم حلقههای animate() و تعاملها رو حذف میکنه. Three-Live همون اسکریپت رو روی هر پلتفرم با موتور خودش اجرا میکنه تا تعامل حفظ بشه.
تیم پروژه میگه مدلهای زبانی Three.js رو خوب بلدن و میتونن یه صحنهی کامل تعاملی رو تو 15 تا 30 خط بسازن. برای امنیت این کد، اجراش روی وب تو یه Web Worker یا iframe ایزوله بدون دسترسی شبکه انجام میشه. روی اندروید و iOS هم تو یه VM سندباکسشدهی Rust به اسم Boa اجرا میشه که دسترسی به شبکه و storage رو برداشته، Object.prototype رو freeze کرده و برای CPU و حافظه سقف گذاشته.
دو تا web component اصلی داره. برای نمایش محصول سهبعدی و انتقال یهکلیکی به AR هست و حجمش زیر 54 کیلوبایت gzip با کامپایلره. اونو گسترش میده و حرکت 6DoF (یعنی حرکت آزاد در سه محور جابهجایی و چرخش)، ردیابی دست و کارتهای HTML سهبعدی اضافه میکنه. هستهش زیر 66 و نسخهی کاملش زیر 151 کیلوبایت gzip هست.
بقیهی امکانات به شکل plugin جدا میان: 9 تا برای سهبعدی و انیمیشن، 14 تا برای قابلیتهای فضایی مثل اندازهگیری، تشخیص سطح، اتصال به Gemini Live و حضور چند نفره، و 5 تا برای شبیهسازی و بازی. اگه از bundler استفاده کنی، فقط همونایی که لازم داری رو register میکنی:
import { XRLiveElement } from 'three-live/xr-live';
import { spatialMeasurePlugin } from 'xr-live/src/plugins/spatial-measure';
import { magneticSnapPlugin } from 'xr-live/src/plugins/magnetic-snap';
XRLiveElement.registerPlugin(spatialMeasurePlugin);
XRLiveElement.registerPlugin(magneticSnapPlugin);فعلاً بستهها از GitHub Releases، Swift Package Manager و CDN گیتهاب پیجز در دسترسن. انتشار رو npm، Crates.io و Maven برای نسخههای بعدی برنامهریزی شده. یه ابزار خط فرمان به اسم three-live-cli هم داره که صحنه رو به فایل .glb تبدیل میکنه.
نکات کلیدی:
- وضعیت: Developer Preview (Alpha) و محصول رسمی گوگل نیست
- رندر نیتیو با Filament و ARCore روی اندروید، RealityKit روی iOS و visionOS، و WebGL2/WebXR روی وب
- اجرای کد تو Web Worker یا iframe ایزوله روی وب و VM سندباکسشدهی Boa روی موبایل
- حجم: زیر 54KB و زیر 66KB gzip، نسخهی کامل زیر 151KB
- 28 plugin اختیاری: 9 سهبعدی، 14 فضایی و 5 شبیهسازی
- انتشار روی npm، Crates.io و Maven هنوز انجام نشده




