도면 SVG Spike Test — Layer 1 (base floor plan)
2026-04-28 · 옥탑방 (L05) · 시나리오 씬 5/12/14/18/25/27 + selected shots → spec.json → matplotlib 렌더링
비교 대상: 사람이 시나리오 분석 + 3차례 정제(v1→v2→v3)한 도면 prompt로 gpt-image-2가 그린 도면. 메모리 session_20260428_floor_plan_experiment.md 참조.
핵심 검증: LLM이 한 번에 v3 수준의 정확도로 spec.json을 출력하는가?
1. Base Floor Plan 비교
GPT-5.5
rooms=5 · doors=7 · furniture=21 · exterior=1 · rejected=4 · validation warnings=0
Gemini-3.1-pro
rooms=5 · doors=7 · furniture=13 · exterior=1 · rejected=3 · validation warnings=0
2. spec.json 통계 비교
| 항목 | GPT-5.5 | Gemini-3.1-pro | 비고 |
| rooms | 5 | 5 | 거실/안방/수리영방/욕실/현관 5 zone 둘 다 식별 |
| doors | 7 | 7 | front_entry + interior 5 + window N |
| furniture | 21 | 13 | GPT가 더 디테일 (sofa, kitchen 가전 등) |
| exterior_adjacency_zones | 1 | 1 | rooftop 양쪽 모두 식별 |
| rejected_layouts | 4 | 3 | 둘 다 시나리오 contradiction 명시 |
| schema validation warnings | 0 | 0 | 가구가 room 안에 있고 door가 wall 위에 있음 |
3. v3 수동 도면과 시각 비교 체크리스트
| v3 수동 도면 핵심 요구사항 | GPT | Gemini |
| 거실 = TV(왼쪽 벽) + sofa(오른쪽 벽) 마주봄 | ? | ? |
| 거실 = sink + window 위쪽 벽 | ? | ? |
| 안방 = top-right corner + bed | ? | ? |
| 수리영방 = right side + bed + window with curtain | ? | ? |
| 욕실 = bottom-right + mirror + sink | ? | ? |
| 현관 = lower-left of apartment | ? | ? |
| front entry door 옆 ROOFTOP concrete (NOT balcony) | ? | ? |
| 모든 interior door가 거실에서 분기 | ? | ? |
→ PNG 시각 검토로 ? 항목 채울 것
Variant B — SVG XML in prompt (no schematic PNG)
가설: SVG XML 텍스트를 prompt에 넣으면 모델이 좌표를 layout으로 해석하는가?
입력: SVG XML 7,411자 + chain bg photoreal prompt (총 9,403자). 입력 이미지 없음.
비교 대상: variant E/F (도면 PNG ref + photoreal prompt, 검증된 방식).
핵심 검증: 텍스트 좌표만으로 모델이 TV/sofa/sink/문 위치를 정확히 그리는가?
gpt-image-2 (text-to-image, no ref)
SVG XML in prompt only · 1536x1024
Gemini nano-banana-2 (text-to-image, no ref)
SVG XML in prompt only · 16:9 2K
비교용 — variant F (S5_Shot3 정확 케이스) 결과: 31_chain_bg_v3_living_day.png (도면 PNG ref + photoreal prompt)
Variant D — 자연어 spatial DSL (option a)
가설: 자연어 spatial language("LEFT wall", "FACES across", "upper-right corner") 가 SVG XML 보다 모델 친화적. 학습 데이터에 풍부.
입력: 자연어 DSL 4,742자 + chain bg photoreal prompt (총 6,643자).
입력 이미지 없음.
변환 예시:
APARTMENT FLOOR LAYOUT (top-down view, 10m wide × 4m deep). +x=east, +y=north.
### LIVING/KITCHEN (거실 주방) [living]
Position: LOWER-LEFT corner.
Size: 6.0m wide (E-W) × 4.0m deep (N-S).
Furniture:
- TELEVISION (tv): 1.2m × 0.1m, on the LEFT wall (west wall, on camera-left), centered along the wall.
- SOFA: 1.5m × 0.6m, on the RIGHT wall (east wall, on camera-right), centered along the wall.
...
FURNITURE FACING RULES:
- The TV (LEFT wall) and the SOFA (RIGHT wall) FACE EACH OTHER ACROSS the room.
- The kitchen SINK on the BACK wall faces toward the front (toward the camera).
gpt-image-2 (text-to-image, no ref)
자연어 DSL in prompt only · 1536x1024
Gemini nano-banana-2 (text-to-image, no ref)
자연어 DSL in prompt only · 16:9 2K
변환 전체 텍스트: spec_gpt_natural_dsl.txt ·
full prompt: variant_d_prompt.txt
비교용: variant B (SVG XML) 두 결과 위에 / variant F (도면 PNG ref) 31_chain_bg_v3_living_day.png
Variant E — ASCII grid (option c)
가설: 단순 2D char grid가 SVG/DSL보다 모델이 직관적으로 인식. 학습 데이터에 게임 맵, 코드 댓글의 ASCII art 풍부.
입력: 14×16 char grid + legend + chain bg prompt. 이미지 ref 없음.
Grid 미리보기:
w
MMMMMwwSSScwpwcS
MbbbbwwSSSSSSSSS
MbbbbwwSSSSbbbbb
MbbbbbMbddSbbbbb
MMMMIMMbdISbbbbb
TTTLLLLLLLLLL
LL,,tc,,LLLllw
LL,,pc,,LLLll
RR LLLttttLLLLLL
RREEELLLLLLLLLmBBB
RRFEILLLLLKKkkIKoo
RRsssLLLLLKKkkmKoo
RR
gpt-image-2 (ASCII grid)
Gemini nano-banana-2 (ASCII grid)
Variant F — 좌표 array (10×10 bbox)
가설: 가장 단순한 코드/JSON 형식.
tv: [2, 5, 3, 5] = bbox cols 2-3 row 5.
입력: 10×10 grid + bbox array + chain bg prompt. 이미지 ref 없음.
Array 미리보기:
ROOMS:
living_kitchen : [2, 1, 9, 5] # 거실 겸 부엌
main_bedroom : [1, 5, 4, 8] # 안방
small_bedroom : [4, 5, 9, 8] # 작은방
bathroom : [7, 1, 9, 3] # 욕실
FURNITURE:
tv : [2, 5, 3, 5] # in living_kitchen, on top wall
table : [4, 3, 5, 4]
sink : [5, 1, 6, 1] # on bottom wall
...
gpt-image-2 (좌표 array)
Gemini nano-banana-2 (좌표 array)
Test 6 — LLM 자동 도면 prompt vs 사람 수동 v3
핵심 검증: spec.json/matplotlib 모두 제거. 가장 단순한 흐름 — Gemini Pro가 시나리오 보고 도면 prompt를 자동 작성 → gpt-image-2가 도면 PNG 생성. 사람 v3 정확도 도달?
흐름:
시나리오(6 씬 + selected shots)
↓
[Gemini Pro] 자동 prompt 작성 (1578자 영문)
↓
[gpt-image-2 text-to-image] 도면 PNG (자동본)
↓
[Gemini nano-banana-2] chain bg = image=[도면 PNG] + photoreal prompt
전체 prompt:
auto_floor_plan_prompt.txt
도면 PNG 비교 (Step 1+2)
자동 도면 (LLM prompt)
Gemini Pro 1578자 prompt → gpt-image-2 1024×1024
수동 v3 도면 (사람 작성 prompt)
사람이 v1→v2→v3 정제, "TWO-WALL SEPARATION RULE" 명시
chain bg 결과 비교 (Step 3 — Gemini nano-banana-2)
chain bg (자동 도면 ref)
image=[auto_floor_plan.png] + photoreal prompt
chain bg (수동 v3 도면 ref) ← variant F baseline
image=[manual_v3.png] + photoreal prompt
분기
| 결과 | 의미 | 다음 |
| 자동 도면 + chain bg가 수동 v3 + chain bg와 동급 정확 | spec.json/matplotlib 모두 제거. 가장 단순한 자동화 가능 | v2 plan 대폭 단순화 |
| 자동 도면이 부정확 (zone 누락, layout 모호) | LLM prompt 자동화로는 사람 v3 도달 못함 | vision validator + retry chain 추가 필요 |
| 도면은 OK인데 chain bg 결과 차이 큼 | 도면 자체가 layout authority로 작동 안 함 | 다른 접근 (사람 도면 업로드, 또는 도면 자체를 ref로 안 쓰고 prompt에만 의존) |
⚠️ 이전 발견 — spec.json 자체 sofa 누락 (참고)
중요: 어떤 variant 결과에도 sofa가 없는 이유는 spec_gpt.json 자체에 sofa가 없기 때문.
GPT가 시나리오 + selected shot에서 sofa를 추출 못함 — 씬 텍스트에 "소파"가 명시되지 않거나 selected shot이 sofa를 언급 안 함. 수동 v3 prompt의 "fabric sofa parallel to the wall facing the TV"는 사람이 추가한 정보.
의미: variant B/D/E/F의 layout 따르기 능력 평가는 sofa 외 다른 요소(TV 위치, sink 위치, 두 침실 문)로 해야 함. 그리고 v2 plan에 spec.json 정확도 보강이 필요 — 시나리오에 명시 없는 가구도 inferred하도록.
variant 비교 매트릭스
| variant |
입력 형태 |
입력 이미지 |
가설 |
예상 |
| F (검증됨) |
도면 PNG + photoreal prompt |
도면 PNG (sch.) |
visual ref가 강력 |
정확 |
| B |
SVG XML 텍스트 in prompt |
없음 |
SVG는 모델이 vector graphics format으로 학습 |
부정확 (모델이 좌표 해석 X) |
| D |
자연어 spatial DSL in prompt |
없음 |
"LEFT wall", "FACES across" 같은 spatial language는 학습 데이터 풍부 |
B보다 정확, F에 가까울지 검증 |
| E |
ASCII grid (char) |
없음 |
게임 맵, 코드 댓글의 ASCII art 학습 풍부 |
모델이 grid pattern을 layout으로 인식? |
| F |
좌표 array bbox (JSON-like) |
없음 |
가장 단순한 코드 형식, 모델이 코드 풍부하게 학습 |
D/E보다 단순, 효과는? |
결정 분기
| 결과 | 분기 |
| 두 도면 모두 v3 수준으로 정확 | v2 plan SVG-first 그대로 진행. 모델 cost 차이로 선택. |
| 한쪽만 정확 | 해당 모델 사용. 다른 모델 fallback. |
| 양쪽 모두 부정확 (zone 위치 틀림) | hybrid: 사람 spec 작성 또는 prompt에 v3 layout hint 추가 |
| 좌표는 OK, 시각 표현만 부족 | SVG renderer 개선 (벽 두께, 가구 도형 디테일) |