← 모든 릴리스 · 2026-05-21 · release

v0.2.63

v0.2.63 — "도시형(2D 전용)" 레이아웃을 계획도시 블록 패킹으로 재작성

변경 사항

기존 한계 (v0.2.62 이전)

v0.2.63 신규 알고리즘 — 재귀 블록 패킹 (Recursive Block Packing)

const CITY_CELL_W = NODE_W_2D + 24; // 224
const CITY_CELL_H = NODE_H_2D + 12; // 48
const CITY_STREET = 48; // 블록 사이 도로
const CITY_ROOT_GAP = 56; // root - 첫 블록 row gap
  1. 파일 패킹cols = max(1, min(8, ceil(sqrt(N)))). cap=8 이라 파일 많은 폴더도 너무 wide 하지 않게 → 부모 row-fill 시 옆 블록과 같은 행 공유 가능. Files → { x: (i%cols)*CELL_W, y: floor(i/cols)*CELL_H } row-major grid.
  2. 서브폴더 재귀 — 각 서브폴더 packBlock 호출 → { width, height, positions } 받음.
  3. Items 리스트 — 파일 블록 1 개 + 서브폴더 블록들 (헤더 1 셀 + content). 각 item 은 place(cx, cy) callback 으로 자기 자식 좌표를 global 로 commit.
  4. Row-fill bin-packingtargetW = max(CELL_W*3, sqrt(totalArea) * 1.8). 1.8 배수는 실험치 — 4~7 개 블록 시 2~3 블록 per row 로 자연스러움.
  5. Cursor 이동: cx += it.width + STREET, row 가득 차면 cy += rowH + STREET; cx=0.

시각 효과

시뮬레이션 검증

변경 파일

검증

핸드오프 메모


← v0.2.62 v0.2.64 →

📦 GitHub 릴리스 노트: v0.2.63