도구 명칭을 cimery(Civil + BIM + -ery)로 확정. 웹(PWA)·데스크톱(Tauri) 듀얼 타깃의 Rust 기반 스택을 잠정 확정하고 근거와 후속 결정 항목을 ADR로 기록. - 기하 커널: OpenCascade.js(웹) / opencascade-rs(데스크톱) 이원화, GeomKernel trait 추상화 - 렌더: wgpu → WebGPU - 순수 Rust 공유 모듈: LPG 증분 엔진, FBM Feature, 선형·LRS - 기존 C# 엔진은 알고리즘·지식만 승계 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2.7 KiB
2.7 KiB
나의 핵심 맥락
1. 나는 누구인가
BIM SW 시니어 개발자. 25년간 3D 뷰어·에디터·모델링툴, DWG·CAD 엔진 개발. 현재 자산: C# 자체 3D 엔진 (sweep/loft/boolean 등 솔리드 연산 가능, 파라메트릭 아님, 성숙도 낮음). cimery는 Rust 기반 신규 스택으로 결정 — 기존 C# 엔진은 알고리즘·도메인 지식만 승계.
2. 무엇을 만드는가
두 단계로 나눈다.
- ParaWiki (지금 만드는 것): AI가 읽고 활용할 수 있는 파라메트릭 모델링 지식 저장소. "AI를 위한 세컨드 브레인".
- cimery (다음 단계): 토목용 파라메트릭 모델링 도구. Revit의 토목 버전. 건축이 아닌 토목 구조물 중심. ParaWiki를 재료로 AI와 함께 개발. (명칭: Civil + BIM + -ery)
3. 왜 저장소부터 만드는가
파라메트릭 모델링 개발에는 방대한 도서·논문·수학이 필요하다. AI가 양질의 골든 저장소를 읽고 개발을 도울 수 있어야 한다.
4. MVP 범위
- 구조물: 거더교(Girder Bridge)
- 사용자: 설계자, 시공사
- 철근 설계: 제외 (v2 이후).
MVP는 기능을 좁히는 것이지 대충 만드는 것이 아니다. 기능은 적게, 품질·아키텍처는 타협 없이 간다.
5. 잠정 설계 원칙 (자료 수집의 나침반)
- 비(非)패밀리 조립 단위 — 토목은 패밀리 재사용 ROI가 낮다. 대체 단위를 탐색.
- 증분 인터랙티브 파라메트릭(incremental) — 파라미터 변경 시 전체 재생성이 아닌 증분 갱신.
- 선형·GIS 기반 좌표계 — 선형(alignment)과 외부지형이 모델링의 출발점. 일급 시민으로 다룸.
자료 수집 시 세 원칙 중 최소 하나와 연결되는지 확인. 원칙은 자료가 쌓이며 갱신.
6. 저장소 작성 규칙
- 재료: 현재는 AI로 조사한 문서가 주 소스.
- 언어: 한국어 작성, 중요 용어는 영어 병기 (예: 선형(alignment)).
- 구조: AI가 잘 활용할 수 있는 구조 1순위. 사람은 최상위 index의 링크로 접근 (사람도 결국 AI로 질의).
7. cimery 기술 스택 (2026-04-14 확정)
- 언어: Rust. 웹(PWA)과 데스크톱(Tauri) 하나의 코드베이스로 듀얼 타깃.
- 기하 커널:
GeomKerneltrait 추상화 → 웹은 OpenCascade.js(WASM), 데스크톱은 opencascade-rs C++ FFI. - 렌더: wgpu → WebGPU (웹·데스크톱 공통).
- UI 프레임워크: 미정(egui / Yew / Leptos).
- 순수 Rust 공유 모듈: LPG 증분 엔진, FBM Feature 정의, 선형·LRS.
- MVP 타깃 환경: Chromium + WebGPU. 전 브라우저 호환·대용량 IFC는 v2.
- 상세:
Output/reports/ADR-001-tech-stack.md.