Я створив CAD-редактор у браузері, а потім навчив LLM ним користуватися

Я створив CAD-редактор у браузері. Потім я віддав його ШІ.

Результат проявився під час демо. Я запитав застосунок: «Скільки тут дверей та вікон?»

ШІ їх порахував. Потім додав: «Примітка: D3 має ширину лише 300 мм. Ймовірно, це помилково виявлені двері. Хочете, щоб я перевірив це?»

ШІ мав рацію. Мій конвеєр даних перетворив елемент геометрії на двері шириною 30 см. Жодна людина цього не помітила. Модель побачила двері вужчі за коробку з-під взуття і позначила їх.

Цей проєкт вимагав вирішення величезних технічних труднощів:

• Парсинг DWG-файлів, які відомі своєю складністю. • Реконструкція моделей будівель із тисяч випадкових ліній. • Створення 2D CAD-редактора з нуля за допомогою HTML5 Canvas. • Підключення Claude як агента з набором інструментів.

Ось як працює система:

  1. Завантаження: Ви перетягуєте DWG-файл у браузер.
  2. Обробка: Фонове завдання конвертує файл і витягує геометрію. Воно ідентифікує стіни, двері, вікна та кімнати.
  3. Перегляд: Ви отримуєте 3D-переглядач і повноцінний 2D-редактор із функцією притягування (snapping) та історією скасування дій.
  4. Редагування: Ви використовуєте панель чату, щоб наказати ШІ-агенту внести зміни.

ШІ не просто спілкується. Він використовує інструменти для редагування бази даних. Якщо ви скажете: «Додай вікно до найдовшої стіни», ШІ знайде стіну та розмістить там отвір.

Ключові уроки розробки:

• Ніколи не довіряйте заголовкам файлів. DWG-файли часто помиляються щодо одиниць вимірювання. Я навчився ігнорувати заголовок і дивитися на фактичні координати, щоб визначити масштаб. • Використовуйте єдиний шлях запису. Інтерфейс, конвеєр імпорту та ШІ — усі вони використовують один і той самий перевірений шлях. Це гарантує, що ШІ не зможе створити неможливу геометрію. • Надайте ШІ «історію скасування». Коли ШІ вносить правку, система об'єднує всю цю дію в один крок скасування. Якщо ШІ помилиться, ви просто натиснете Ctrl+Z, щоб повернути все назад. • Використовуйте топологічні правила, а не математичні пороги. Спочатку я намагався знаходити кімнати за площею. Це не спрацювало для будинків Г-подібної форми. Я перейшов до топологічного правила: найбільша грань у зв'язаній структурі — це завжди зовнішня межа. Все інше — це внутрішні приміщення.

Найскладнішим був не ШІ. Найскладнішим було перетворити анонімні лінії на реальні дані про будівлю. Реалізація функції ШІ зайняла лише кілька днів, оскільки фундамент був надійним.

Джерело: https://dev.to/arif/i-built-a-cad-editor-in-the-browser-then-taught-an-llm-to-use-it-1l92

Додаткова спільнота для навчання: https://t.me/GyaanSetuAi