Иногда проекты начинаются не с брифа, а с ощущения, что Вы попали в странный замес. В моём случае — с компакт-диска середины 2000-х и задачи, звучащей почти абсурдно: восстановить форму челюсти по устаревшим медицинским данным и подготовить модель для операции.
Исходные материалы выглядели как соответствующие эпохе: диск с программой образца 2006 года,интерфейс уровня «помню, но лучше бы не вспоминать», и набор из 652-х плоских рентгеновских изображений без какой-либо 3D-структуры. О привычных сегодня форматах и стандартах тогда не догадывались - их не было.
Задача была вполне практической: ортодонту требовалась точная модель для планирования реконструкции, пациенту — шанс на нормальную жизнь без боли.
А значит, всё остальное — вопросы инженерной настойчивости.
Проект получился на стыке медицины, реверс-инжиниринга и 3D-технологий. Из набора серых снимков и цифрового «наследия» начала 2000-х была получена физическая модель челюсти, пригодная для работы врача. Тот редкий случай, когда файл с диска эпохи Windows XP заканчивает свой путь не в архиве, а в руках специалиста — уже в виде реального объекта. Скучать о Nero Burning Rom никто не желает, но на всякий случай дискеты далеко не убирайте. И, как ни странно, с лёгким привкусом ностальгии по временам, когда «мастер подключения к Интернету» казался вершиной инженерной мысли.
Однако это нетривиальная задача в 2026 году была выполнена!
Пусть меня простят доктора, если это делается очень сильно проще. Однако путь к результату напоминал сеанс экзорцизма над медицинским софтом не первой свежести, который тоже надо было где-то достать. Основным инструментом был выбран 3D Slicer, но современная версия программы наотрез отказалась работать с интерфейсом на старом железе: кнопки «Apply» просто не нажимались.
Пришлось перейти на ручное управление через Python-консоль. Мы буквально «прошивали» программу изнутри:
Инициализировали логику через editor = slicer.qSlicerSegmentEditorWidget().
Вручную задавали пороги плотности (Threshold) для отделения кости от мягких тканей.
Боролись с ошибками NoneType и TypeError, когда Slicer отказывался экспортировать видимые сегменты в модели стандартными методами.
Когда консоль начала выдавать капризные SyntaxError из-за «залипания» строк, а визуализация так и не появилась в синем окне просмотра, стало ясно: софт вошел в клинч с драйверами. Был изменён стек и я перешел в InVesalius. Не без помощи нейросети, русского мата и удачи там удалось наконец-то «родить» облако вокселей и конвертировать его в полигональную сетку (Mesh).
Финальным этапом стал Autodesk 3ds Max 2024. Полученный STL-файл был очищен от «цифрового шума» (артефактов КТ), проверен на целостность геометрии и подготовлен к нарезке под 3D - принтер с высокой точностью печати.
Итог работы — чистая, пригодная для печати STL-модель, которая успешно импортировалась в 3ds Max и слайсер Anycubic. Теперь это не просто набор байтов с запыленного диска, а полноценный медицинский прототип.
На практике эта модель будет использована для:
Предварительной примерки ортодонтических конструкций без мучительных визитов пациентки.
Моделирования векторов нагрузки на костную ткань.
Изготовления хирургических шаблонов.
Также первая бракованная не по моей виде копия данного изделия будет у меня на столе в качестве черепа темного мага 3D графики. Ведь мне сказали, что эту задачу делают ювелиры или ортодонты.
Дмитрий Игоревич, Вы теперь ювелир, ортодонт, фотограф и оператор нейросетевого сервиса (но это не точно).