Commit Graph

28 Commits

Author SHA1 Message Date
minsung
2550e13b10 viewer Sprint 5 완성 — 한글 폰트 + 슬라이더 자동 재생성
- Windows Malgun Gothic 폰트 로드 (한글 지원)
- param_slider! 매크로: drag_released() / lost_focus() 시 자동 rebuild_mesh()
- "▶ 적용 (Apply)" 버튼은 manual fallback으로 유지

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 20:50:37 +09:00
minsung
a05e8f5dea viewer: egui depth format 불일치 수정 + 변수명 경고 제거
- egui_wgpu::Renderer:🆕 depth format None (UI는 depth 불필요)
- bridge_scene.rs: SPAN_M 등 snake_case로 전환

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 20:44:26 +09:00
minsung
23ddcfade0 Sprint 5 — 인터랙티브 파라메트릭 + egui 속성 패널
- SceneParams: 경간/거더수/간격/높이/슬래브두께 — 실시간 변경 가능
- egui SidePanel(좌측): 슬라이더 편집 → ▶ 적용 → 씬 재생성
- rebuild_mesh(): 파라미터 변경 시 GPU 버텍스·인덱스 버퍼 재생성
- wgpu 22 + egui-wgpu 0.29: forget_lifetime() 로 render pass 전달
- 3D 인코더와 egui 인코더 분리 (wgpu 22 lifetime 호환)
- build_bridge_scene(&SceneParams): 경간·거더수·간격 파라메트릭

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 20:35:43 +09:00
minsung
3645b85828 받침 중심 정렬 + 부재별 색상 구분
bearing.rs: X 중심, Y 하방향 (-h to 0) 기하학 수정
bridge_scene.rs: 받침 X 오프셋 제거 (girder 정렬)
Mesh: colors 필드 추가 + recolor() 메서드
sweep.rs / occt.rs: 기본 콘크리트 색 자동 채움
bridge_scene: 부재별 색상 (거더/슬래브/받침/교대)
shader.wgsl: base_color 입력 → 조명 계산에 적용

선택(Selection) 기능은 계획대로 별도 Sprint에 구현.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 20:26:40 +09:00
minsung
eac079f46c bridge_scene: 교대 X 이중 오프셋 수정 — 중심 정렬
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 20:18:57 +09:00
minsung
13b1c8dfe8 abutment: X/Z 방향 수정 — 흉벽이 경간에 수직으로 배치
kernel/abutment.rs:
- 흉벽(breast wall): X=횡단(bw_w), Y=높이(bw_h), Z=두께(bw_t) — 올바른 방향
- 기초(footing): X=횡단(ft_w), Y=두께(ft_t), Z=경간방향(ft_l)
- 날개벽(wing wall): ±X 방향으로 연장

viewer/lib.rs: unused imports 제거 (경고 해소)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 20:15:51 +09:00
minsung
096fc133c4 viewer: Pan + ZoomExtents + 표준 뷰 단축키
camera.rs:
- pan(dx, dy): Shift+중간버튼으로 target 이동 (화면 평면 이동)
- zoom_extents(mn, mx): E키로 전체 씬 맞춤
- set_standard_view(StandardView): 축 고정 뷰
- StandardView: Top(7) / Front(1) / Right(3) / Left(4) / Iso(Home)

lib.rs:
- shift_pressed 추적 (ModifiersChanged)
- Shift+중간버튼 드래그 → pan
- E → ZoomExtents
- 1/3/4/7/Home → 표준 뷰 스냅
- scene_mn/mx 저장 → zoom_extents에 전달

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 20:11:07 +09:00
minsung
3359475879 Sprint 4 — Full bridge scene (Girder×5 + DeckSlab + Bearing×10 + Abutment×2)
viewer/bridge_scene.rs: BridgeScene compositor
- 5× PSC-I Girder (2500mm c/c)
- DeckSlab (12000mm, 220mm thick, top of girders)
- 10× Elastomeric Bearing (5 per abutment end)
- 2× ReverseT Abutment (start & end)
- sweep::merge_meshes로 단일 메시 합성
- scene_extents()로 카메라 자동 배치

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 20:08:21 +09:00
minsung
37221b9ca7 PROGRESS: OcctKernel B-rep 렌더 확인 기록
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 20:03:16 +09:00
minsung
c20d5b21e1 viewer: --features occt 시 OcctKernel B-rep 렌더링 연결
- viewer/Cargo.toml: occt feature → cimery-kernel/occt 전파
- lib.rs: cfg(feature = "occt") 분기
  - OcctKernel: OCCT B-rep PSC-I + BRepMesh 테셀레이션
  - PureRustKernel: 기본값 (occt 없을 때)
- 타이틀 자동: "OcctKernel B-rep" vs "PSC-I PureRustKernel"

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 19:42:23 +09:00
minsung
0bc3f12688 OcctKernel 구현 — PSC-I B-rep sweep + BRepMesh 테셀레이션
- cimery-kernel/src/occt.rs: OcctKernel (--features occt 전용)
  - Workplane::xy().sketch()로 PSC-I 14-vertex 2D 프로파일 생성
  - Face::extrude(DVec3) → Solid (OCCT B-rep)
  - Mesher::try_new() + mesh() → 테셀레이션
  - cimery Mesh로 변환 (vertices/normals/indices)
  - 기타 Feature: PureRustKernel 위임
- kernel/Cargo.toml: glam 0.24 (opencascade-rs 동일 버전)
- cargo build --features occt 빌드 확인 완료

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 19:37:51 +09:00
minsung
bdacea5253 Sprint 3 — Must Feature 5종 추가 (상부→하부 순서)
상부 구조물:
- DeckSlabIR + DeckSlabBuilder + 기하학 (직사각형 슬래브 스위프)

연결부:
- BearingIR + BearingBuilder (카탈로그 기반, KDS 기본값 포함)

하부 구조물:
- PierIR + PierBuilder + 기하학 (다주 지원, 코핑 포함)
- AbutmentIR + AbutmentBuilder + 기하학 (흉벽 + 기초 + 날개벽)

core에 BearingType·PierType·ColumnShape·AbutmentType 열거형 추가
kernel: sweep.rs 공유 모듈 (sweep_profile_flat·box·prism·merge)
psc_i.rs → sweep.rs 의존으로 리팩터
GeomKernel trait에 4개 메서드 추가 (상부→하부 문서화 주석)

cargo test 57개 전부 통과

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 19:27:57 +09:00
minsung
40857f39c5 viewer: PureRustKernel로 교체 — PSC-I 단면 렌더 확인
StubKernel(박스) → PureRustKernel(실제 PSC-I 14-vertex 스위프).
플랜지·웹·헌치 형상 정상 렌더 확인 (스크린샷).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 19:06:24 +09:00
minsung
9cbe76cc5e cimery Sprint 2 — PSC-I 기하학 + viewer 개편 + OCCT optional
kernel:
- PureRustKernel: PSC-I 단면 14-vertex polygon 스위프, flat normals
  56 triangles / 168 vertices, 법선 단위벡터 검증 포함
- opencascade 의존성 optional feature (--features occt)로 격리
  → OCCT 없이도 전체 빌드 가능
- psc_i.rs: 프로파일 검증, AABB, 법선 테스트 6개

viewer:
- camera.rs: arcball orbit (middle-mouse drag + scroll zoom)
- shader.wgsl: MVP matrix uniform + 방향성 조명 (콘크리트 베이지)
- lib.rs: depth buffer, index 렌더, 실제 Mesh 업로드
  StubKernel → PureRustKernel → OcctKernel 교체 경로 문서화

CLAUDE.md: MVP 품질 원칙 강화 ("아키텍처 임의 변경 절대 불가")

cargo test --workspace (viewer 제외) 43개 전부 통과

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 18:48:10 +09:00
minsung
62ddf3aea6 cimery Sprint 1 — Rust 워크스페이스 + 전 계층 파이프라인
8개 크레이트 구현, cargo test 32개 전부 통과:
- core: Mm/M 단위 newtype, UnitExt 리터럴, FeatureError
- ir: GirderIR + 전 단면 파라미터(PSC-I/U/SteelBox/PlateI) serde JSON
- dsl: Girder builder + 검증 (경간 범위·count·spacing)
- kernel: GeomKernel trait + StubKernel (box mesh, AABB)
- incremental: dirty-tracking IncrementalDb (salsa 업그레이드 경로 주석)
- evaluator: 상태 없는 IR→kernel 브리지
- usd: USDA 1.0 텍스트 익스포트 (CimeryBridgeAPI·GirderAPI schema)
- viewer: wgpu 22 + winit 0.30 컬러 삼각형 (Sprint 1 proof-of-concept)

Sprint 2 다음 단계:
- opencascade-rs로 StubKernel 교체 (실제 PSC-I sweep)
- viewer에서 Girder Mesh 렌더 + 카메라 orbit

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 17:46:14 +09:00
minsung
919855c1e8 Revit API 참조 상세를 분리 문서로 이동
CLAUDE.md에서 Revit API 섹션 제거 → Output/guides/revit-api-guide.md로 분리.
CLAUDE.md 권위 문서 테이블에 포인터 한 줄만 유지.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 17:36:48 +09:00
minsung
b4a8714793 Revit API Developer's Guide MD 변환본 추가 (368 페이지)
Revit 2026 공식 Developer's Guide HTML → MD 변환.
Output/revit-api-guide/에 8개 카테고리 폴더로 정리.
CLAUDE.md에 참조 규칙 추가, .gitignore에 .scratch/ 제외.

소스: help.autodesk.com/view/RVT/2026/ENU (CC BY-NC-SA 3.0)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 17:33:42 +09:00
minsung
3bd01e31c9 에이전트 협업 인프라 구축 — .claude/ 확장
All checks were successful
Publish ParaWiki / build-and-deploy (push) Successful in 29s
- PLAN.md · PROGRESS.md 도입: 병렬 에이전트 조정 지점
- CLAUDE.md 린화 + 에이전트 작업 흐름 섹션 (상세는 Output/guides/로 분리)
- Output/guides/cimery-dev-guide.md, obsidian-cli.md 신설
- Agents: cimery-architect-researcher, adr-drafter
- Commands: /plan, /progress, /adr, /research, /cimery-start
- Skill: plan-commit
- Hooks: raw/ 쓰기 차단, SessionStart PLAN/PROGRESS 주입,
  wiki/ADR 변경 시 log 갱신 알림, auto-approve (deny 훅 우선 유지)
- .gitignore: .claude/ 공유 자산 포함, 로컬 상태·바이너리만 유지 제외

Closes #3

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 17:21:11 +09:00
minsung
d90ef2cfe1 ADR-003 후속 아키텍처 결정 추가
All checks were successful
Publish ParaWiki / build-and-deploy (push) Successful in 29s
12개 주제 병렬 조사 기반 결정 통합:
UI(Leptos+wgpu), IFC(ifc-lite-core), CI/CD(Gitea+GH 미러),
USD(Codeless schema), Alignment 단계 도입, WASM plugin 3단계,
Feature 카탈로그, FEM(MIDAS), LOD 300, 리본 12탭,
선택/필터, 설정 3계층 모델.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 16:42:06 +09:00
minsung
20761ca795 Feature DSL 아키텍처 ADR-002 추가
All checks were successful
Publish ParaWiki / build-and-deploy (push) Successful in 31s
cimery Feature DSL의 20개 기본 결정 정리.
Rust 내장 DSL + IR + salsa 증분 + 별도 evaluator,
CSV 라운드트립 UX, AI·diff 친화 저장 구조.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 16:15:34 +09:00
minsung
561d2ea4fd cimery 프로젝트명 확정 및 기술 스택 ADR-001 추가
도구 명칭을 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>
2026-04-14 14:59:14 +09:00
minsung
b011197401 탐색기 가독성 개선 (색상 띠 + 간격)
All checks were successful
Publish ParaWiki / build-and-deploy (push) Successful in 32s
긴 한국어 제목 구분성 향상을 위해 각 항목에 좌측 색상 띠와 점선 구분선 추가.
빌드 시 quartz-custom/custom.scss가 Quartz 기본 custom.scss를 덮어씀.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 12:02:40 +09:00
minsung
5aaf63eff5 Pages 프로젝트 자동 생성 단계 추가
All checks were successful
Publish ParaWiki / build-and-deploy (push) Successful in 33s
첫 배포 시 프로젝트가 없어서 실패했던 문제 수정.
배포 전에 project create를 시도하고, 이미 존재하면 continue-on-error로 통과.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 11:52:29 +09:00
minsung
9fd924d8a9 Cloudflare Pages 자동 배포 워크플로 추가
Some checks failed
Publish ParaWiki / build-and-deploy (push) Failing after 27s
wiki/ 변경 시 Quartz 4로 빌드하여 parawiki.pages.dev에 자동 배포.
Gitea Actions Runner가 Quartz 클론 → 의존성 설치 → content 교체 → 빌드 → wrangler deploy.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 11:47:54 +09:00
minsung
3bd47aec01 Gitea Actions Runner 동작 확인용 ping 워크플로 추가
All checks were successful
Ping (runner check) / ping (push) Successful in 3s
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 11:19:49 +09:00
minsung
0324c6d102 위키 콘텐츠 및 작업 규칙 정비
- wiki/ 초기 페이지 추가 (index, log, 주요 개념 9종)
- Output/, wiki/ 하위 CLAUDE.md 규칙 파일 추가
- .gitignore 추가 (.obsidian, .claude, raw, Backup 등 제외)
- CLAUDE.md 프로젝트 규칙 갱신

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 11:14:46 +09:00
minsung
9d0e948bfd Add 나의 핵심 맥락.md and CLAUDE.md for ParaWiki foundation
ParaWiki는 AI가 읽고 활용할 파라메트릭 모델링 지식 저장소로, 최종 산출물은
토목용 파라메트릭 모델링 도구. 이번 커밋은 프로젝트의 핵심 맥락과 AI 작업 지침을 확정.

- MVP: 거더교, 설계자·시공사 대상, 철근 설계는 v2 이후
- 잠정 설계 원칙 3가지(비패밀리/증분 인터랙티브/선형·GIS)
- 저장소 작성 규칙: 한국어+영어 병기, AI 우선 구조

Refs #1

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 09:38:57 +09:00
f3e3fd2211 Initial commit 2026-04-14 08:21:10 +09:00