معماری
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هفت قاعده
Section titled “هفت قاعده”هر تغییری با این هفت قاعده سنجیده میشود. بقیهٔ سیستم روی همینها بنا شده است.
- هر عملیات یک فرمان است. کشیدن خط یک شیء فرمان است، چه از دکمهٔ نوار ابزار بیاید، چه از میانبر، خط فرمان، فراخوانی API یا عامل هوش مصنوعی. هیچ منطقی در گردانندههای رویداد رابط کاربری پنهان نمیشود.
- وضعیت بر پایهٔ رویداد. هر تغییر یک رویداد تغییرناپذیر به دفتر اضافه میکند و وضعیت فعلی چیزی نیست جز بازپخش همین دفتر. واگرد، ازنو، ردّ ممیزی و بازپخش همه از دل همین بیرون میآیند.
- مدل دادهای ECS. موجودیت فقط یک شناسه است، مؤلفهها دادهٔ خاماند و سیستمها روی مؤلفهها پرسوجو میکنند. خبری از سلسلهمراتب کلاس نیست؛ نوع تازهای از موجودیت فقط مؤلفهٔ تازه میآورد و هسته را بازنویسی نمیکند.
- گسترش افزایشی. تواناییهای تازه به شکل مؤلفه، فرمان، رندرگر و پارسر تازه به همان دنیا، دفتر رویداد و سامانهٔ فرمان وصل میشوند. هسته گسترش مییابد، نه اینکه از نو چیده شود.
- Rust/WASM برای محاسبه، TypeScript برای تعامل. هندسه، پرسوجوی مکانی و حل قیدها در Rust است؛ رابط کاربری و هماهنگی رندر در TypeScript و Svelte. مرز این دو، پل wasm-bindgen است.
- عاملهای هوش مصنوعی کاربر درجهیکاند. طرحوارهٔ ابزارِ هر عملیات همراه خود آن عملیات تعریف میشود: نام، پارامترهای تایپدار، خروجی تایپدار، و قابل فراخوانی بدون هیچ رابط گرافیکی.
- پیش از ساختن، جستوجو. اول ببینید کتابخانهٔ متنباز آزمودهای مسئله را حل کرده یا نه؛ فقط جایی چیزی از صفر بسازید که واقعاً خلأیی هست.
بستهها
Section titled “بستهها”| بسته | زبان | نقش |
|---|---|---|
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 | پوستهٔ برنامه، خط فرمان، پنلها |
جزئیات بیشتر
Section titled “جزئیات بیشتر”یادداشتهای کامل معماری، از استواری هندسی تا مرز WASM، در پوشهٔ docs/architecture/ مخزن هستند (به انگلیسی). تصمیمهای محصول در DECISIONS.md ثبت میشوند.
پرگار متنباز است · کد Apache-2.0 · مستندات CC BY 4.0 · گیتهاب