رفتن به محتوا

معماری

Rust/WASM kernel ─── geometry, constraints, ECS world, event store, commands
│
│ JSON commands and events across the wasm-bindgen bridge
│
TypeScript/Svelte ── Three.js renderer, UI, snapping, command line, file I/O
│
MCP server ───────── typed tools that map onto the same kernel commands

هر تغییری با این هفت قاعده سنجیده می‌شود. بقیهٔ سیستم روی همین‌ها بنا شده است.

  1. هر عملیات یک فرمان است. کشیدن خط یک شیء فرمان است، چه از دکمهٔ نوار ابزار بیاید، چه از میان‌بر، خط فرمان، فراخوانی API یا عامل هوش مصنوعی. هیچ منطقی در گرداننده‌های رویداد رابط کاربری پنهان نمی‌شود.
  2. وضعیت بر پایهٔ رویداد. هر تغییر یک رویداد تغییرناپذیر به دفتر اضافه می‌کند و وضعیت فعلی چیزی نیست جز بازپخش همین دفتر. واگرد، ازنو، ردّ ممیزی و بازپخش همه از دل همین بیرون می‌آیند.
  3. مدل داده‌ای ECS. موجودیت فقط یک شناسه است، مؤلفه‌ها دادهٔ خام‌اند و سیستم‌ها روی مؤلفه‌ها پرس‌وجو می‌کنند. خبری از سلسله‌مراتب کلاس نیست؛ نوع تازه‌ای از موجودیت فقط مؤلفهٔ تازه می‌آورد و هسته را بازنویسی نمی‌کند.
  4. گسترش افزایشی. توانایی‌های تازه به شکل مؤلفه، فرمان، رندرگر و پارسر تازه به همان دنیا، دفتر رویداد و سامانهٔ فرمان وصل می‌شوند. هسته گسترش می‌یابد، نه اینکه از نو چیده شود.
  5. Rust/WASM برای محاسبه، TypeScript برای تعامل. هندسه، پرس‌وجوی مکانی و حل قیدها در Rust است؛ رابط کاربری و هماهنگی رندر در TypeScript و Svelte. مرز این دو، پل wasm-bindgen است.
  6. عامل‌های هوش مصنوعی کاربر درجه‌یک‌اند. طرح‌وارهٔ ابزارِ هر عملیات همراه خود آن عملیات تعریف می‌شود: نام، پارامترهای تایپ‌دار، خروجی تایپ‌دار، و قابل فراخوانی بدون هیچ رابط گرافیکی.
  7. پیش از ساختن، جست‌وجو. اول ببینید کتابخانهٔ متن‌باز آزموده‌ای مسئله را حل کرده یا نه؛ فقط جایی چیزی از صفر بسازید که واقعاً خلأیی هست.
بسته زبان نقش
packages/kernel Rust → WASM دنیای ECS ‏(hecs)، هندسه، قیدها، دفتر رویداد زنجیره‌ای، بیش از ۱۰۰ فرمان
packages/renderer TypeScript رندر دوبعدی Three.js با instancing
packages/file-io TypeScript ورود و خروج DXF، ذخیره در OPFS
packages/core TypeScript نوع‌های مشترک دو سوی مرز
packages/mcp TypeScript سرور MCP و tool-definitions.ts
packages/logger TypeScript ثبت رویداد ساخت‌یافته
packages/app Svelte 5 / SvelteKit پوستهٔ برنامه، خط فرمان، پنل‌ها

یادداشت‌های کامل معماری، از استواری هندسی تا مرز WASM، در پوشهٔ docs/architecture/ مخزن هستند (به انگلیسی). تصمیم‌های محصول در DECISIONS.md ثبت می‌شوند.

پرگار متن‌باز است · کد Apache-2.0 · مستندات CC BY 4.0 · گیت‌هاب