📋 Кратко📋 TL;DR
Постройте CAD-приложение (веб или десктоп), куда пользователь загружает неочищенную 3D-модель с шумами — CBCT-скан, игровой ассет, промышленную деталь. Приложение автоматически чистит mesh, показывает 3D-превью и экспортирует чистый STL. По сути — свой мини-MeshLab с авто-очисткой.Build a CAD application (web or desktop) where a user uploads a noisy, unrefined 3D model — CBCT scan, game asset, industrial part. The app auto-cleans the mesh, shows a 3D preview, and exports a clean STL. Essentially — your own mini-MeshLab with auto-cleaning.
🎨 Хакатон = свобода🎨 Hackathon = freedom
Пайплайн ниже — это отправная точка. Хотите сделать CAD для ювелирки? Для протезирования? Для архитектуры? Для генерации мебели? Вперёд. Выберите область, которая вам интересна, и постройте инструмент под неё. Чем оригинальнее применение — тем лучше.The pipeline below is a starting point. Want to build a CAD for jewelry? Prosthetics? Architecture? Furniture generation? Go for it. Pick a domain you care about and build a tool around it. The more original — the better. T1.1
Что должен уметь ваш CADWhat your CAD must do
📂ЗагрузкаUpload
CBCT, STL, OBJ, PLY…
🧹ОчисткаAuto-Clean
Шум, артефактыNoise, artifacts
🎨3D-превью3D Preview
Рендер в браузереRender in browser
📤ЭкспортExport
Чистый STLClean STL
.dcm (DICOM / CBCT).stl.obj.ply.glb / .gltf.fbx…любой 3D…any 3D
📦 Данные для работы📦 Working Data
В Google Drive лежит один референсный файл:
Неочищенный CBCT — DICOMDIR, сырые данные конусно-лучевой КТ (с шумами — можно чистить).
Всё остальное — берите любой 3D-объект: из открытых датасетов, свои сканы, сгенерированные модели. Бонусные фичи (авто-сопоставление слоёв, поиск кривых, измерения) работают на любом 3D-объекте — не обязательно медицинском.
В README укажите ссылки на источники данных.
📁 drive.google.com/drive/folders/1c_yS-N6obJZ5Cf0KMUBjp8rssc4OljjqGoogle Drive has one reference file:
Unrefined CBCT — DICOMDIR, raw cone-beam CT data (noisy — can be cleaned).
Everything else — use any 3D object: open datasets, your own scans, generated models. Bonus features (auto-alignment of layers, curvature analysis, measurements) work on any 3D object — doesn't have to be medical.
Source links in README.
📁 drive.google.com/drive/folders/1c_yS-N6obJZ5Cf0KMUBjp8rssc4Oljjq
⚠️ Мощность компьютера⚠️ Computer performance
У всех разные компьютеры. Подберите модель, которую ваш комп нормально тянет. Тяжёлый CBCT на 500 МБ на слабом ноуте — зависнет. Лучше чистая работа на лёгкой модели, чем зависший демо на тяжёлой. Но: модель с шумами обязательна — на чистой показывать нечего.Everyone has different hardware. Pick a model your computer can handle. A heavy 500 MB CBCT on a weak laptop will freeze. Better a clean workflow on a light model than a frozen demo on a heavy one. But: a noisy model is required — there's nothing to show on a clean one. 🔍
Где искать модели с шумамиWhere to find noisy models
• Dental CBCT / DICOM — поищите открытые датасеты на Zenodo, TCIA (The Cancer Imaging Archive), или попросите в стоматологической клинике анонимизированный скан
• Грязные STL/OBJ — Thingiverse, MyMiniFactory (сканы с телефона, фотограмметрия — обычно шумные)
• Промышленные / медицинские — GrabCAD, NIH 3D Print Exchange
• Генерация шума — возьмите чистую модель и добавьте шум программно (Blender, MeshLab, скрипт на Python)
• Dental CBCT / DICOM — search open datasets on Zenodo, TCIA (The Cancer Imaging Archive), or ask a dental clinic for an anonymized scan
• Noisy STL/OBJ — Thingiverse, MyMiniFactory (phone scans, photogrammetry — usually noisy)
• Industrial / medical — GrabCAD, NIH 3D Print Exchange
• Generate noise — take a clean model and add noise programmatically (Blender, MeshLab, Python script)
T1.2
Обязательные функцииRequired Features
📂
Загрузка файловFile Upload
Пользователь загружает 3D-файл через интерфейс (drag-and-drop, кнопка, CLI). Поддержка нескольких форматов без ручной конфигурации.User uploads a 3D file via interface (drag-and-drop, button, CLI). Multiple formats supported without per-format config.
Автоматическое удаление шума, артефактов, мусорной геометрии. Пример: сырой CBCT-скан с шумом от металлических коронок → чистый mesh.Automatic removal of noise, artifacts, junk geometry. Example: raw CBCT scan with metal crown noise → clean mesh.
🎨
3D-рендер / превью3D Render / Preview
Интерактивный 3D-просмотр результата: вращение, зум, разные ракурсы. Пользователь видит что получилось до экспорта.Interactive 3D preview of the result: rotate, zoom, different angles. User sees the result before export.
📤
Экспорт в STLExport to STL
Очищенная модель экспортируется в STL (или другой 3D-формат). Файл должен быть валидным и готовым к использованию.Cleaned model exports as STL (or other 3D format). File must be valid and ready for downstream use.
T1.3
Бонусные фичи — дают преимуществоBonus Features — competitive edge
Не обязательны, но каждая бонусная фича повышает шансы на победу. Жюри учитывает их при равных баллах за основу.Not required, but each bonus feature improves your chances. Judges consider them as tiebreakers.
★★★Auto-Layering
Автоматическое разделение модели на компоненты. Самый весомый бонус — показывает глубину обработки.Automatic component separation. Highest-weight bonus — shows processing depth.
★★★AI Mesh GenerationAI Mesh Generation
AI-генерация 3D-мешей — свой генератор или интеграция (Tencent MeshGen, Shap-E, Point-E и т.д.)AI mesh generation — own generator or integration (Tencent MeshGen, Shap-E, Point-E, etc.)
★★★Auto-Alignment (авто-сопоставление)Auto-Alignment (auto-registration)
Когда слои или части одного 3D-объекта не точно ложатся друг на друга — авто-сопоставление убирает погрешности. Загрузил модель → слои автоматически совместились ровно, без сдвигов. Работает на любых 3D-объектах.When layers or parts of a 3D object don't align precisely — auto-registration removes the errors. Upload a model → layers snap together automatically, no shifts. Works on any 3D objects.
★★★3D-измерения: кривые, углы, длины3D Measurements: curves, angles, lengths
Автоматический анализ геометрии: пройтись по поверхности и выдать длины кривых от вершины A до B, углы между поверхностями, кривизну в каждой точке. Загрузил скан → получил все замеры автоматом.Automatic geometry analysis: traverse the surface and output curve lengths from vertex A to B, angles between surfaces, curvature at each point. Upload a scan → get all measurements automatically.
★★Dashboard
Статистика: вершин до/после, количество компонентов, визуальное сравнениеStats: vertices before/after, component count, visual comparison
★MCP
Model Context Protocol для умных решений в пайплайнеModel Context Protocol for smart pipeline decisions
T1.4
Стек — выбирай самStack — your choice
A
Open-source библиотекиOpen-source libraries
VTK, Open3D, trimesh, ITK, PyMeshLab, Blender Python API, Three.js
B
Свой CAD-движокCustom CAD engine
Свой пайплайн очистки и рендера с нуля. Высокий риск, высокая награда.Custom cleaning and rendering pipeline from scratch. High risk, high reward.
C
МиксMix
trimesh для очистки + Three.js для рендера + свой UI. Самый практичный путь.trimesh for cleaning + Three.js for rendering + custom UI. Most practical path.
T1.5
Критерии оценкиJudging Criteria
Загрузил файл → получил чистый STL. Если пайплайн падает — всё остальное неважно.Upload file → get clean STL. If the pipeline crashes — nothing else matters.
Насколько хорошо убран шум? Сохранена ли геометрия? Жюри сравнит вход и выход визуально.How well is noise removed? Is geometry preserved? Judges will visually compare input vs output.
Удобно ли пользоваться? Понятный интерфейс, 3D-превью, drag-and-drop?Is it usable? Clear interface, 3D preview, drag-and-drop?
Запускается ли за 5 минут? Понятен ли код?Can it run in 5 minutes? Is the code understandable?
Auto-layering, mesh generation, dashboard, MCP — каждая фича даёт преимущество при равных баллах за основу.Auto-layering, mesh generation, dashboard, MCP — each feature is a tiebreaker advantage.
T1.6
Чек-лист сдачиSubmission Checklist
ОБЯЗ.REQРаботающий CADWorking CAD app
Загрузка → очистка → превью → экспорт STLUpload → clean → preview → export STL
ОБЯЗ.REQЧистый STL на выходеClean STL output
Валидный файл, готовый к использованиюValid file, ready for downstream use
ОБЯЗ.REQDemo
Видео или GIF: загрузка модели с шумами → результатVideo or GIF: upload noisy model → result
ОБЯЗ.REQДанные + ссылкиData + source links
Откуда модели для тестированияWhere test models came from
BONUSAI Mesh GenerationAI Mesh Generation
BONUSAuto-Alignment (авто-сопоставление)Auto-Alignment (auto-registration)
BONUS3D-измерения: кривые, углы, длины3D Measurements: curves, angles, lengths
T1.7
Призы — Track 1Prizes — Track 1
T2.1
ЗаданиеThe Task
Обучите RL-агента, который проходит 3D-лабиринт максимально быстро. Агент видит 23 числа и управляет вектором силы (continuous control).Train an RL agent to navigate a 3D maze as fast as possible. The agent sees 23 numbers and controls a force vector (continuous control).
🎨 Хакатон = свобода🎨 Hackathon = freedom
Физика, observation и action space описаны ниже — но это отправная точка. Хотите добавить новые сенсоры? Изменить физику? Сделать 3D-среду с вертикальным движением? Применить не RL, а другой подход? Пожалуйста. Главное — агент учится, и вы можете объяснить почему ваш подход работает.Physics, observation, and action space are described below — but it's a starting point. Want to add new sensors? Change the physics? Build a 3D env with vertical movement? Use something other than RL? Go ahead. What matters — the agent learns, and you can explain why your approach works. 🧠 Почему несколько карт?🧠 Why multiple maps?
На одной карте агент может просто запомнить маршрут, и вы не узнаете, научился ли он обобщать. Несколько карт + train/test split позволяют проверить, что модель действительно понимает среду, а не воспроизводит конкретный путь.On a single map the agent can simply memorize the route, and you won't know if it learned to generalize. Multiple maps + train/test split let you verify the model actually understands the environment rather than reproducing a specific path.
⚠️ Sparse reward — ловушка для новичков⚠️ Sparse reward — beginner trap
Если ваш reward — только +10 за финиш и −0.1 за шаг, агент может часами не учиться. Это sparse reward. Ваша задача — reward shaping: придумать свои промежуточные награды. Это 10 из 35 баллов за дизайн.If your reward is just +10 for finish and −0.1 per step, the agent may not learn for hours. That's sparse reward. Your job is reward shaping: design your own intermediate rewards. Worth 10 of 35 design points.
T2.2
Данные, среда, всё — самиData, Environment, Everything — DIY
Мы не даём ни карт, ни среды, ни скриптов. Участники сами строят весь стек: находят/генерируют карты, пишут environment, benchmark, агента. Ссылки на источники данных — обязательно.We provide no maps, no environment, no scripts. Participants build the entire stack: find/generate maps, write the environment, benchmark, agent. Source links required.
🗺️
Train / Test split — обязательноTrain / Test split — required
Минимум 5 карт: 3+ для тренировки, 2+ held-out для теста. Агент тренируется ТОЛЬКО на train-картах. Benchmark запускается на test-картах, которые агент никогда не видел. В README чётко указать какие карты train, какие test.Minimum 5 maps: 3+ for training, 2+ held-out for testing. Agent trains ONLY on train maps. Benchmark runs on test maps the agent has never seen. README must clearly state which maps are train vs test.
🔬 Как жюри проверяет generalization🔬 How judges test generalization
Шаг 1: Жюри запускает benchmark на ваших test-картах — проверяет заявленный результат.
Шаг 2: Жюри может дать агенту свою OOD-карту (out-of-distribution) — карту, которую ни участник, ни агент никогда не видели. Это проверка generalization.
Шаг 3: Жюри смотрит на разницу между train и test результатами. Train 40 шагов / Test 180 шагов = переобучение. Train 50 / Test 65 = хорошая generalization.Step 1: Judges run benchmark on your test maps — verify your claimed results.
Step 2: Judges may give the agent their own OOD map (out-of-distribution) — one neither you nor the agent have ever seen. This tests generalization.
Step 3: Judges look at the gap between train and test performance. Train 40 steps / Test 180 = overfitting. Train 50 / Test 65 = good generalization.
T2.3
Физика мираWorld Physics
Подъёмы замедляют, спуски ускоряют. slope (−1..+1).Uphills slow, downhills speed up. slope (−1..+1).
🧊
ЛёдIce
×1.2
Скользко!Slippery!
❄️
ХолодCold
энергия ×1.5energy ×1.5
🔥
ЖараHeat
скорость ×0.6speed ×0.6
T2.4
АгентAgent
👁️
Observation — 23 числаnumbers
На каждом шаге агент получает вектор из 23 чисел — это его «глаза и сенсоры». Он подаёт этот вектор в нейросеть и получает действие.Each step the agent receives a vector of 23 numbers — its "eyes and sensors." It feeds this vector to a neural network and gets an action back.
obs = [
# ── 8 distance rays ────────────────────── dist_N, dist_NE, dist_E, dist_SE,
dist_S, dist_SW, dist_W, dist_NW,
# ── 8 surface rays ─────────────────────── surf_N, surf_NE, surf_E, surf_SE,
surf_S, surf_SW, surf_W, surf_NW,
# ── 2 goal direction ───────────────────── goal_dx, goal_dy,
# ── 3 under feet ───────────────────────── surface_friction, # floor type (0-1) slope, # incline (-1..+1) temperature, # temp zone (0-1) # ── 2 speedometer ──────────────────────── velocity_x, velocity_y,
]
# Total: 8 + 8 + 2 + 1 + 1 + 1 + 2 = 23
📊 Разбор: почему 23 и зачем каждый📊 Breakdown: why 23 and what each does
Расстояние до стен в 8 направлениях (N, NE, E, SE, S, SW, W, NW). Как слепой с 8 тростями — тыкает во все стороны и чувствует, где препятствие.Distance to walls in 8 directions (N, NE, E, SE, S, SW, W, NW). Like a blind person with 8 canes — poking in all directions to feel where obstacles are.
Тип поверхности впереди в тех же 8 направлениях. Агент видит: «впереди песок — обойду», «справа лёд — осторожно». Без них агент узнаёт о поверхности только наступив — как водитель, который видит яму уже в ней.Surface type ahead in the same 8 directions. Agent sees: "sand ahead — detour," "ice on the right — careful." Without them the agent only learns about the surface by stepping on it — like a driver who sees a pothole only when already in it.
goal_dx и goal_dy — разница по X и Y до цели. Показывает направление: «выход — правее и дальше».goal_dx and goal_dy — X and Y difference to the goal. Shows direction: "exit is to the right and further."
friction (тип поверхности прямо сейчас: 1.0 асфальт, 0.4 песок), slope (наклон: −1 спуск, +1 подъём), temperature (температура зоны: 0 холод, 1 жара). Три числа — полное ощущение «что под ногами».friction (surface type right now: 1.0 asphalt, 0.4 sand), slope (incline: −1 downhill, +1 uphill), temperature (zone temp: 0 cold, 1 hot). Three numbers — complete "what's underfoot" sensation.
velocity_x и velocity_y — текущая скорость и направление движения. На льду агента «несёт» — без спидометра он не понимает что летит в стену и не может затормозить.velocity_x and velocity_y — current speed and movement direction. On ice the agent drifts — without a speedometer it can't tell it's flying into a wall and can't brake.
📐 Итого: 8 + 8 + 2 + 1 + 1 + 1 + 2 = 23📐 Total: 8 + 8 + 2 + 1 + 1 + 1 + 2 = 23
Не случайное число, а точный размер входного вектора (state vector). 23 числа = полная картина среды для принятия решения на каждом шаге. Меньше — агент слепнет. Больше — можно, но нужно обосновать.Not a random number, but the exact size of the input state vector. 23 numbers = complete picture of the environment for decision-making at each step. Fewer — the agent goes blind. More — possible, but justify it.
🚀 Хочешь усложнить? Замени 23 числа на пиксели🚀 Want to level up? Replace 23 numbers with pixels
23 числа — это ручной feature engineering: мы сами решили, что агенту нужно. В более сложных задачах вместо готовых чисел агенту дают:
• Картинку (pixels) — то, что видит камера
• Карту — top-down view мира
И сеть сама учится извлекать нужные признаки (CNN, attention и т.д.). Это сложнее, дольше обучается, но масштабируется на новые среды. Если реализуете — это серьёзный бонус.23 numbers = hand-crafted feature engineering: we decided what the agent needs. In harder tasks, instead of pre-made numbers the agent gets:
• Raw pixels — what the camera sees
• A map — top-down view of the world
And the network learns by itself to extract useful features (CNN, attention, etc.). Harder, slower to train, but scales to new environments. If you implement this — serious bonus.
🎮
Continuous ControlContinuous Control
action = [
force_x, # -1.0 .. +1.0 force_y, # -1.0 .. +1.0
]
Агент прикладывает вектор силы — не мгновенно меняет направление. На асфальте сила ≈ скорость. На льду сила едва корректирует инерцию — агент должен научиться тормозить заранее. На песке сила гасится трением. velocity_x/y + force_x/y = полноценная физика.The agent applies a force vector — not instant direction change. On asphalt, force ≈ velocity. On ice, force barely adjusts momentum — the agent must learn to brake early. On sand, force is dampened by friction. velocity_x/y + force_x/y = real physics.
💡 Почему не 4 кнопки?Why not 4 buttons?
4 дискретных действия при физике с инерцией и заносом — как управлять болидом F1 крестовиной от Dendy. Continuous control даёт агенту возможность дозировать усилие: мягко повернуть, резко затормозить, плавно разогнаться. Это то, ради чего velocity в observation.4 discrete actions with inertia and drift physics is like driving an F1 car with a D-pad. Continuous control lets the agent dose effort: gentle turn, hard brake, smooth acceleration. This is what velocity in observation is actually for. T2.5
Оценка — 100 + бонусыScoring — 100 + bonuses
25
ПрезентацияPresentation
⚡ СкоростьSpeed
| Б.Pts | ШагиSteps | |
| 40 | ≤60 | ИдеальноPerfect |
| 30 | 61–80 | ХорошоGood |
| 20 | 81–120 | БродитWanders |
| 10 | 121–200 | ЕлеBarely |
| 0 | — | Не дошёлFailed |
🧠 Дизайн — 35Design — 35
Жюри оценивает глубину понимания, а не количество попыток. Покажите что понимаете почему ваше решение работает.Judges evaluate depth of understanding, not number of attempts. Show you understand why your solution works.
Как агент использует observation? Какие входы реально влияют на результат?How does the agent use its observation? Which inputs actually affect performance?
Как переделали sparse baseline? Почему именно такие промежуточные награды?How did you reshape the sparse baseline? Why these intermediate rewards?
Почему выбрали этот алгоритм? Что сломается если убрать компонент X? Правильный выбор + понимание почему он правильный > перебор экзотических методов.Why this algorithm? What breaks if you remove component X? Correct choice + understanding why it's correct > trying exotic methods for the sake of it.
Train vs test gap. Жюри может запустить агента на OOD-карте.Train vs test gap. Judges may run agent on an OOD map.
📈 Презентация — 25Presentation — 25
✨ БонусыBonuses
+5Физика маршрутаRoute physics
T2.6
Чек-лист — Track 2Checklist — Track 2
ОБЯЗ.REQКарты: train/test split + ссылкиMaps: train/test split + links
Мин. 5 карт (3 train + 2 test). Источники, разметка splitMin 5 maps (3 train + 2 test). Sources, split labels
ОБЯЗ.REQМодельModel .pt/.zip
ОБЯЗ.REQОписание подходаApproach description
🛠️ СтекStack
Python 3.xPyTorchStable-Baselines3GymnasiumNumPyMatplotlibThree.jsGoogle Colab
T2.7
Призы — Track 2Prizes — Track 2
T3.1
ЗаданиеThe Task
Возьми продукт из Track 1 (3D CAD) или Track 2 (ML Agent) — и докажи, что это бизнес. Три задачи: ICP, конкуренты, коммитмент рынка.Take a product from Track 1 (3D CAD) or Track 2 (ML Agent) — and prove it's a business. Three tasks: ICP, competitors, market commitment.
Трек для KIMEPBuilt for KIMEP
Этот трек под сильные стороны KIMEP — Data Analytics, Finance, Business. Здесь не нужен PyTorch. Нужно понимать рынок, клиентов и деньги лучше, чем любой инженер в комнате.This track is built for KIMEP strengths — Data Analytics, Finance, Business. No PyTorch required. Understand the market, customers, and money better than any engineer in the room. 🔍КонкурентыCompetitors
Что уже естьWhat exists
🤝КоммитментCommitment
Докажи спросProve demand
💰GTM
Бизнес-кейсBusiness case
🎤Pitch
Продай жюриSell the jury
T3.2
Три задачиThree Tasks
🟢 ЛёгкаяEasy
Опиши идеального клиента (ICP)Describe your Ideal Customer Profile (ICP)
Кто этот человек/компания? Какая боль? Сколько платят за решение? Почему ваш продукт лучше?Who is this person/company? What pain? How much do they pay to solve it? Why is your product better?
Методы (лучший → худший):Methods (best → worst):
1
Интервью с 10 клиентами, которые уже платили за решениеInterview 10 customers who already paid to solve this
2
Самостоятельный ресёрч из открытых источниковSelf-research from open sources
3
GPT-ресёрч (наименее ценно без верификации)GPT research (least valuable without verification)
🟠 СредняяMedium
Разбери конкурентовMap your competitors
Кто уже решает проблему? Где слабые места? Что говорят их клиенты? Построй конкурентную матрицу.Who already solves this? Weak spots? What do their customers say? Build a competitive matrix.
🔴 СложнаяHard
Получи реальный коммитментGet real commitment
Pre-order > тестирование > офф. интервью > онл. интервью > waitlist. Больше и качественнее = больше баллов.Pre-order > testing > offline interview > online interview > waitlist. More and higher quality = more points.
T3.3
ФреймворкиFrameworks
⚠️ Главная ловушка⚠️ The main trap
Красивые слайды без данных = 0 баллов за CustDev. Жюри — практики. Они отличат реальные интервью от GPT-инсайтов.Pretty slides without data = 0 points for CustDev. Judges are practitioners. They'll spot GPT insights vs real interviews instantly.
T3.4
Оценка — 100 + бонусыScoring — 100 + bonuses
25
ПрезентацияPresentation
Pre-order > тестирование > интервью > waitlistPre-order > testing > interviews > waitlist
Конкретность. «Малый бизнес» = 0. «Стоматология 3–10 кресел в Алматы, $200k+ оборот, CBCT» = макс.Specificity. "Small business" = 0. "3–10 chair dental clinic in Almaty, $200k+ rev, uses CBCT" = max.
Конкретные каналы, путь к первым 100 клиентам.Specific channels, path to first 100 customers.
✨ БонусыBonuses
+8Реальные продажи / pre-orderReal sales / pre-order
+5Financial Model (Excel/Sheets)
T3.5
Призы — Track 3Prizes — Track 3
T3.6
Чек-листChecklist
ОБЯЗ.REQКонкурентная матрицаCompetitor Matrix
ОБЯЗ.REQUnit Economics + TAM/SAM/SOM
ОБЯЗ.REQPitch Deck (max 10 slides)
+8Продажи / pre-orderSales / pre-order
🛠️ ИнструментыTools
NotionGoogle SlidesGoogle SheetsTypeformTally.soMiroLoomCanvaG2 / CapterraLinkedIn