B1-1: Generative Stage 1a — Shapely-парсер + placement grid #54

Closed
opened 2026-05-11 20:31:32 +00:00 by lekss361 · 0 comments
lekss361 commented 2026-05-11 20:31:32 +00:00 (Migrated from github.com)

Эшелон: 🎯 Product gaps — Phase 0 deliverables

Зачем (NorthStar)

Главный дифференциатор проекта vs rTIM/TestFit. Сейчас geometry.py = generate_stub() возвращающий 3 пустых варианта. /concept страница показывает только TODO-тексты. Без реального алгоритма нет demo = нет пилотов.

Что сделать

  • Парсинг GeoJSON Polygon → Shapely Geometry
  • Нормативные отступы (buffer) от красных линий и соседних зданий (упрощённые СП 42.13330)
  • Buildable area = parcel − setbacks
  • Placement grid: прямоугольная сетка для МКД, параметры (шаг, угол) из target_floors / development_type
  • 3 стратегии заглушки max_area / max_insolation / balanced — геометрически различимые
  • Возврат реальный FeatureCollection с полигонами корпусов

Acceptance

  • /concepts POST с реальным GeoJSON возвращает 3 разных варианта (не stub)
  • Полигоны корпусов внутри buildable_area
  • Покрытие тестами: tests/services/generative/test_geometry.py

Owner

backend-engineer

Effort

~5 дней (Sprint 2 нед 1-2)

Dependencies

— (foundation для B1-2)

Risks / open

  • Нормативные отступы для разных регионов отличаются — задокументировать допущения
  • Insolation для бизнес-MVP — упрощённая модель (юг = max)
**Эшелон:** 🎯 Product gaps — Phase 0 deliverables ## Зачем (NorthStar) Главный дифференциатор проекта vs rTIM/TestFit. Сейчас `geometry.py` = `generate_stub()` возвращающий 3 пустых варианта. `/concept` страница показывает только TODO-тексты. **Без реального алгоритма нет demo = нет пилотов.** ## Что сделать - Парсинг GeoJSON Polygon → Shapely Geometry - Нормативные отступы (`buffer`) от красных линий и соседних зданий (упрощённые СП 42.13330) - Buildable area = parcel − setbacks - Placement grid: прямоугольная сетка для МКД, параметры (шаг, угол) из `target_floors` / `development_type` - 3 стратегии заглушки `max_area` / `max_insolation` / `balanced` — геометрически различимые - Возврат реальный FeatureCollection с полигонами корпусов ## Acceptance - [ ] `/concepts` POST с реальным GeoJSON возвращает 3 разных варианта (не stub) - [ ] Полигоны корпусов внутри `buildable_area` - [ ] Покрытие тестами: `tests/services/generative/test_geometry.py` ## Owner `backend-engineer` ## Effort ~5 дней (Sprint 2 нед 1-2) ## Dependencies — (foundation для B1-2) ## Risks / open - Нормативные отступы для разных регионов отличаются — задокументировать допущения - Insolation для бизнес-MVP — упрощённая модель (юг = max) ## Links - Sprint plan: [Sprint2_Stage1_Generative](https://obsidian.gendsgn.ru/) - WorkSplit: [WorkSplit_Generative_Stage1](https://obsidian.gendsgn.ru/) — Person A vector
Sign in to join this conversation.
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: lekss361/gendesign#54
No description provided.