Wiroworks هو مشروع ويب تفاعلي صممته لتصميم، تحليل، ومحاكاة الدوائر الكهربائية مباشرة في المتصفح. يعتمد المشروع على خوارزمية التحليل العقدي المعدّل (Modified Nodal Analysis - MNA) لإخراج القيم مثل جهد العقد وتيار الفروع.
GitHub
المزايا والوظائف الأساسية:
- واجهة تفاعلية (GUI) تتيح للمستخدم سحب المكونات ووضعها على شبكة تخطيط (grid) بسهولة.
- مكونات متنوعة ضمن المكتبة: المقاومات، مصادر الجهد المستمر (DC voltage sources)، مصادر التيار، الأسلاك، والأرض (Ground).
- ميزة الربط الديناميكي بين المكونات عبر الأسلاك، مع محاذاة تلقائية على الشبكة لضمان تنظيم دقيق.
- توليد تلقائي لقائمة الصِّلات (netlist) من الدائرة المُصمَّمة، ثم تحليلها باستخدام MNA للحصول على المعطيات الكهربائية.
- عرض النتائج في جدول يشمل الجهود عند العقد والتيارات في الفروع، مع تلوين بصري للعقد لتمييزها.
- استخدام خوارزمية A* لتحديد مسار الأسلاك بكفاءة وابتعاد عن الاعتراضات المحتملة، ودمج العقد المتداخلة تلقائيًا.
الهيكل التقني للمشروع:
- ملفات HTML / CSS / JavaScript أساسية لعرض الواجهة وإدارة التفاعل.
- كود يُقسم إلى وحدات مثل classes.js لتمثيل المكونات (Resistor, Voltage Source, Wire، إلخ) و helpers.js لمهام المساعدة مثل المحاذاة على الشبكة (snap to grid) والخوارزميات المساندة.
- استخدام أدوات بناء (build tool) مثل Parcel لتشغيل المشروع محليًا أثناء التطوير.