크라우니 4상균형3진 자체 웹엔진 — 자원감사·아키텍처·전략 (울트라)
7에이전트 워크플로(자원감사 5병렬 + opus 종합 + 전략). 실측·소스라인 검증 기반.
1. 자원체크 — 오래 쌓인 자산의 진짜 상태
| 영역 | 자산 | 핵심 판정 |
|---|---|---|
| 얇은 동작경로(척추) | 한선씨웹엔진(649줄)→cmd→렌더브라우저/cmd렌더러→소프트GPU | 5/5 작동 — 작지만 진짜 픽셀. CSS없음·블록전용 |
| v2 거대경로 | 41파일 105,512줄 | HTML파서·CSS엔진·DOM엔진 실구현(작동), 나머지 15 부분, JS엔진 strpool 소진 |
| 렌더 말단 | 소프트GPU·CIF디코더·글꼴·한글꼴·HAL | 6/8 작동, 진짜3진 3 |
| 3진 코어 | cube_add(crownyc.c:2734)·CIF씨앗·opcode | 진짜 균형3진 4/7 (바닥은 사실) |
| 문서/레거시 | MASTERPLAN·spec·백업 | MASTERPLAN 900[x]=허위, "47000줄·크롬동등"=과장(정정필요) |
2. 아키텍처 — cmd IR 척추 + 재사용
결정: cmd 프로토콜(INIT/RECT/ROUND/SHADOW/TEXT/IMAGE/END)을 레이아웃↔래스터 단일 IR로 동결. 얇은경로 cmd코어+소프트GPU를 척추로, v2의 진짜 파서/DOM/CSS를 앞단에 접목. 79파일 전부 안 살림(미디어/RTC/확장/WASM 보류).
| 레이어 | 살린다 | 신규/승격 |
|---|---|---|
| HTML파싱 | v2/HTML파서(272줄) | span/strong/em/img 추가 |
| DOM | v2/DOM엔진(8슬롯, readyState 진짜3진) | 노드상태 트릿팩 |
| CSS | v2/CSS엔진(캐스케이드·변수·@media) | computed색→CIF 9트릿 브리지 |
| 레이아웃 | 한선씨웹엔진 블록흐름 | ROUND/SHADOW 발행부 |
| 텍스트 | 글꼴+한글꼴(opcode347 직결) | FB_RGB_TEXT(366) CIF벡터 |
| 이미지 | IMAGE_LOAD(757)+CIF디코더 | img파싱 + cmd IMAGE verb |
| 합성 | 소프트GPU(7셰이더·알파, 진짜3진) | 프레임버퍼→네이티브창 |
| JS | v2/JS엔진(1759줄) | strpool 소진=치명 블로커, 아레나 재작성 |
| VM ALU | cube_add | 그대로(진짜3진) |
3. 마일스톤 — WebKit→한선씨 점진 교체
현 "순수모드"조차 loadHTMLString으로 WKWebView에 주입 = WebKit이 픽셀 그림. 진짜 교체 = 소프트GPU→네이티브창(표시면 B).
- M0 척추결선(1~2주): 소프트GPU 프레임버퍼→HAL 네이티브창. WKWebView 없이 1페이지 픽셀 출력 증명.
- M1 MVP 정적(3~4주)★: v2 파서/DOM/CSS 승격 + 색절단(CSS→CIF 9트릿). 정적 crowny.org를 WebKit 없이 렌더. 검증: WKWebView vs 소프트GPU 픽셀 SSIM≥0.95.
- M2 텍스트/이미지(4~6주): CIF벡터폰트·img·인라인.
- M3 커널동등+상호작용(4주): vm_core opcode 789·355 신규 → CrownyOS 커널=네이티브 동일렌더. 이벤트/링크클릭.
- M4 JS(8주+): strpool 아레나 재작성, typeof/RegExp/Promise 마이크로태스크.
- M5 외부웹(보류): WebKit 폴백 영구 유지. 크롬 동등 추격 금지.
4. WebKit 대체 가능성 (질문 직답)
| 대상 | 가능성 |
|---|---|
| 크라우니 전용(crowny.org 200서비스) | M3에 WebKit 완전제거 가능 (정적·SSR). 전제: crowny.org CSS 프로파일 측정·고정, 색절단, 한글래스터, crowny:// 라우팅 |
| 일반 외부 웹 | WebKit 폴백 영구 유지. 스킴분기(crowny://=자체, http(s)=WebKit) 이미 존재 |
5. 차별화 전략 (opus, fable 대체)
★ 수렴 = 최대 차별점 (사용자 통찰을 감사가 확증)
- 브라우저 픽셀경로(소프트GPU→opcode 358/366) = OS 커널 픽셀경로(vm_core 358/366 실구현) 같은 opcode.
- M3에서 VIRT갭(789/355) 닫으면 "CrownyOS 커널=네이티브=동일렌더".
- 렌더 substrate가 OS·브라우저 공유 → 자체엔진 = OS 렌더러의 웹 일반화. 따로 안 만듦.
- ChromeOS=리눅스+크롬(이종접합) vs 크라우니=단일 3진VM 위 OS·브라우저 수렴(동종). "브라우저가 OS, OS가 브라우저"가 진짜 단일기반. Brave가 OS와 별개 250MB Chromium 드는 것과 정반대 — 엔진 1벌로 둘 다.
왜 3진인가 (기술적 실체)
- 색 end-to-end 균형3진(CIF 9트릿) → UI·이미지·영상 한 색계
- 3값 논리 DOM(참/거짓/모름) → 규칙엔진 직결
- 바닥 ALU가 균형3진(cube_add 검증)
포지셔닝 — 올인/포기
- 올인: 최경량(~수MB)·멤버전용·3진색계 통일·OS수렴·개발도상국 저용량·전용프로토콜 네이티브
- 의도적 포기: 일반웹 100%호환·최신CSS전부·무거운JS·미디어코덱 → WebKit 폴백 위임
- Chrome/Brave(만능·무거움)·Arc(Chromium)와 다른 시장(생태계 내부도구) → 정면충돌 회피
리스크 (냉정)
- JS strpool 소진 = M4 관문(아레나 재작성). 안 풀리면 동적서비스 SSR/폴백
- CSS는 crowny.org 프로파일로 한정 — 범위통제가 성패
- 문서 과장 정정(900[x]·47000줄·크롬동등) = 신뢰 필수
- 하지 말것: 외부웹 크롬동등 추격(승산0), 79파일 전부살리기
M0 척추결선 — 실증 완료 (2026-06-27)
WebKit 0으로 HTML이 픽셀이 됨을 증명. 체인: HTML파일 → 한선씨웹엔진(cmd 15줄) → cmd렌더러(VM 프레임버퍼 opcode 화면초기화/RGB사각형/RGB글쓰기/화면저장) → PPM 1280×800 3MB 실픽셀 → PNG.
- ✅ 블록 레이아웃·태그 팔레트 색차등(h2 골드/링크 코랄)·구분선·불릿·줄바꿈 정확
- ⚠️ 글자 글리프 거침(비트맵폰트) → M2 CIF벡터폰트가 해결 / 출력 PPM(네이티브창은 HAL 박막결선 잔여)
- 산출물:
native/m0-실증/{m0.html,cmd,ppm,png,재현.sh}. 재현:재현.sh [html경로] - ⚠️ CROWNY_WEB_HTML = 파일경로(내용 아님). CROWNY_WEB_MODE=cmd 필수.
트릿 색심도 — 검토 완료
현 채널당 3트릿=27레벨=19,683색(8비트比 853배 조악). 확장: 15트릿(5/채널)=14.3M≈8비트(이미지표준,+15%), 18트릿(6/채널)=387M(CVF/HDR,+22%, CVF 4상3진 정합). OS UI는 9트릿 충분. 구현=색심도: 헤더필드 + _색채널N(arr,오프셋,n) 일반화함수(공식 rgb=((sum+max)255)/(2max), max=(3^n-1)/2), 두 파일(CIF디코더·소프트GPU)만 수정, 하위호환.Windows — 빌드 위치 확정
Mac 교차컴파일 불가(실증 3차단: WebView2.h 부재·WebView2LoaderStatic.lib MSVC COM vtable 충돌·Secure CRT 함수 MinGW 미지원). 코드는 Mac에서 완성(test_win 14/14), Windows에서 build.bat 1회(MSVC+WebView2 SDK+Runtime).native/win/build.bat(4단계 자동화) + BUILD-WINDOWS.md 완비. "만들어놓으면 됨" 확정.M2 — CIF 벡터폰트 실증 완료 (2026-06-27)
크라우니폰트 CIF 글리프로 텍스트 렌더 — M0 비트맵 대비 압도적 품질 개선.
- 자원:
cifont/CrownyGothic·CrownyMyeongjo각 128글리프(ASCII 95+한글 33),<유니코드HEX>.cif72×84 9트릿. - 순서대로: ①글리프 합성 실증(사/폰트) ②한선씨
글리프조판.한선(PSV 계획→합성) ③64KB 캡 해결. - ★64KB 캡 해결 = 직접 그리기 모드:
글리프조판.한선에CROWNY_DRAW=1추가 — cmd 파일 안 거치고 각 글리프 CIF(각<64KB)를 읽어 RGB사각형 opcode 직결, 한 VM run에서 FB 누적 → 거대 중간 cmd파일 제거 → 임의 길이 렌더. (읽기()=65535 캡 / 입력() stdin스트리밍은 VM 불안정 → 직접모드가 정답.) - 검증: "크라우니 폰트"(6글자 3314획) · "안녕 CROWNY 2026"(한글+영문+숫자 12글자) 한 번에 렌더. 산출물
native/m2-실증/. - 잔여 ③ 최종배선: 한선씨웹엔진 TEXT cmd → 글리프조판 직접드로우(문자→코드포인트 드라이버 + 폰트사이즈 스케일). RECT(박스)+TEXT(글리프) 통합 페이지렌더러.
M3 — ③ 배선 완료 (통합 페이지렌더러, 2026-06-27)
HTML → 한선씨웹엔진 → 통합 플랜 → 페이지렌더러 → CIF폰트 페이지 (WebKit 0) 전 파이프라인 작동.
src/페이지렌더러.한선신규: 통합 플랜(CANVAS/RECT/GLYPH) 직접 드로우. 글리프=잉크만(근백 스킵)→임의 배경 위 합성. 색 오버라이드(GLYPH 6~8필드=텍스트색, 골드 헤딩 반영). 각 글리프 CIF만 읽어 64KB 캡 무관.native/m3-배선/페이지배선.py: page cmd 파싱 → RECT 통과 + TEXT→글리프 전개(문자→코드포인트, scale=size/60).- 작동: "크라우니 폰트"·"안녕 하세요"·구분선 가독 렌더, 색 오버라이드 OK. 산출물
native/m3-배선/. - 정직한 잔여(글리프 메트릭 튜닝): 셀 기반 어드밴스라 ASCII 겹침·소형 한글 클러스터. 해법=각 CIF의 잉크 bbox(비백 seed의 min/max x) 추출→per-glyph 실폭 어드밴스. 소형 글자 가독성·최적 스케일도 메트릭으로 해결.