야간 주변광 보완 — 2026-10-04 유리 밖의 바닥·천장·벽이 Three Hemisphere(.18)에서 보이는 확산 밝기를 E(n)=.18×mix(ground,sky,.5nY+.5), L=albedo×E/π로 변환해 실제 인접 표면에 부여했다. 이 표면에서 회의실로 들어오는 빛은 별도 Cycles 채널로 계산한다. 회의실 자체를 발광시키거나 전체 노출을 올리지 않았다. 중립카드 3방향의 최대 선형 오차8.9e-9. 256samples, 기존 형상/UV와 3개 조명채널 불변. ambient-night.exr 9,879,571bytes + chair-ambient.f32 4,395,840bytes. 야간 가중치1, 주간0. 외부 IBL.045·태양광.055 및 생략된 주변집기는 이 근사에 포함하지 않는다. 최종 대표룸 GLB+4개 EXR+의자4개 RGB·mask 데이터 약75.84MB. LOD 인덱스2.96MB 별도. 로컬 데모이며 인터넷 배포 크기가 충분히 최적화되었다고 주장하지 않는다. 카메라 전환은 같은 객체를 구면 경로로 보간하며, 이동 DPR.85/정지시 원래DPR(상한1.35) 복원을 적용한다. 움직이는 그림자는 유지한다. 인접 공간 조명 보완 — 2026-10-04 회의실 유리 밖 innovation 구역의 실제 시연 광원 위치·크기와 바닥 발광을 별도 256samples 확산광 채널로 계산했다. 도면 기준 주변 바닥·천장, meeting 북·서 불투명 벽을 차폐 프록시로 포함한다. 중립 4000K·야간·100% 기준. innovation ON×밝기로 가중하며 OFF는 0이다. 주간 7/15 배율과 3000K 광원 RGB 비율은 단일 채널의 근사다. 바닥 발광의 주간/색온도 비율까지 각각 재베이크하지 않았다. 외부 Hemisphere/IBL 전체를 옮긴 것이 아니며, 현장 조도나 설치 상태의 물리적 검증 결과가 아니다. 2K HALF16 EXR 9,949,197bytes + 의자 RGB Float32 4,395,840bytes 추가. 기존 모델·원본 UV·기존 주광/실내 조명 데이터는 유지. 의자 366,132정점 적용, 188 퇴화 법선 정점은 atlas fallback. 기존 약47.22MB에 약14.35MB가 추가되므로, 압축 개선을 전체 데이터 절감으로 잘못 표현하지 않는다. 대표 대회의실 변경 사항 — 2026-10-04 추가 검수본 전체층의 벽·카펫에도 아래 새 마감 기준을 적용한다. 대회의실 상세 모델은 다음 규칙이 우선하며, 아래 3~6절의 나머지 집기 규칙은 전체층 공통 모델에 해당한다. 완성도 판정은 기능 검증과 별개이며, 고객의 실사 기준 통과를 의미하지 않는다. 대회의실: 원도면 7.3025×6.985m 구획, 바닥 Y=0, 천장 하부 약2.82m. 테이블: 4.8×1.25m, 두께32mm, oak PBR, 가장자리4mm 반경, 실제 받침·발·케이블 트레이·매립 전원부. 목재 UV는 장변 방향. 의자: Amazon Berkeley Objects B07MDJYKXR 원형 비율 보존, 12개, 폭0.6551/높이0.8199/깊이0.5999m. 원본4K PBR을1K로 리샘플링. 봉제선·곡면 등판/팔걸이·금속 오발·캐스터 포함. CC BY4.0. 벽: 제조 도장 마감 가정, 균일 linear RGB(.72,.705,.675), roughness.78. 천장: 흡음판 설계 가정, 균일 linear RGB(.70,.70,.67), roughness.90, .6×1.2m 구획과1.2mm 간격. 거친 석고 스캔 텍스처 연결 제거. 카펫: ambientCG Fabric045 원본 Color/NormalGL, 반복.40m, normalScale.18, roughness=.82+.14×원본 R, linear albedo dye(.55,.55,.55). 회색 루프 카펫 디자인 근사. 대회의실 반사광도 이 색상으로 다시 계산했다. 실제 납품 제품·실측 타일 치수로 주장하지 않는다. 유리: 닫힌12mm 판, FrontSide, transmission.97, IOR1.5, roughness.055, depthWrite=true. 유리·금속 프레임·가스켓·도어 하드웨어를 분리. 내부 파티션이며 실제 외부 창이라고 해석하지 않는다. 조명: Blender Cycles로 DIRECT+INDIRECT diffuse transport를 주광/전기광으로 분리 베이크. 원본 albedo와 독립된 선형 EXR/HALF16, UV1 atlas2048². Three.js의 irradiance 규약에 맞춘 π 배율은 중성 카드 실험으로 확인. 전기광 OFF는 전기광 맵과 등기구 발광을 함께0으로 만든다. 기본 주광은 내부 유리 쪽 넓은 광원 설계 가정이며 현장 조도 계산이 아니다. 베이크 때만 얇은 중성 투과96% 근사, 웹 유리는 반사/투과 재질 유지. 반사는128px 로컬 cubemap+PMREM+box projection, 조명 변경 후 갱신. 고정 기하에서의 간접광이며 설비 이동 때는 재베이크가 필요하다. 3000K/4000K 선택은 화면 색상 근사, 분광 계산이 아니다. 동일 장면의 room_wall/furniture/detail 그룹을 기존 상승 전환에 연결한다. 평면 선택 ID와 조명·공조 상태는 2D/2.5D/3D 전환에서 보존한다. 실내 카메라 기본 room은 눈높이1.60m/FOV62°/수직 시프트8%. 반대편은 시프트0, 상세는 눈높이1.25m/시프트0. 실내 이탈 시 시프트 해제. 유리 너머 층 내부가 지붕 없는 무대처럼 보이지 않도록 주변 천장을 표시한다. 현재 기본 GLB+두 EXR:28meshes, 약36.96MB. 무손실 Meshopt로 GLB29.97→20.92MB, 복원한 정점·법선·UV·인덱스·이미지 동일. 원거리에는 인덱스만 교체하여 대표룸429,024→287,812tri, 실내에서는 원본복원. 전체층 실제 비교에서는 렌더 삼각형 약12% 감소, draw calls동일. FPS향상으로 해석하지 않는다. 천장512samples/나머지256samples. OIDN2.5 RTLightmap을 천장72개·벽12개 UV섬에만 분리 적용하며, 타 재질 픽셀과 경계 보간 여유 영역 불변을 검증했다. 주광1.6/회의실 전등30%가 기본 시연값. 카메라 노출1.05고정. 사용자는 ON/OFF·밝기·색온도를 변경할 수 있다. 의자는 UV면적이 작은 봉제선의 조명 누락을 막기 위해 위치별 CORNER Float32 조명을 주광/전등별256samples로 계산한다. 원본 정점·법선·UV·인덱스 유지.366,132/366,320정점 적용, 비정상 원본 법선188개는 atlas유지. 정점 조명 데이터10.26MB 추가. GLB+EXR+정점 데이터는 약47.22MB이며, 원거리 LOD인덱스2.96MB는 별도. 실사 품질과 전체층 적용 범위의 판정은 별도 검수 기록을 따른다. 셀 분할은 화면은 같았으나 draw call 증가로 미채택. 광선 추적은 별도 진단만. 출처·수정 고지: public/licenses/quality-room-sources.txt, ABO-CC-BY-4.0.txt. 뉴로메카 판교사옥 DT — 구현 재료·공간 표준 초안 기준: 2026-10-04 현재 소스 / 단위: m / 용도: 웹 시각화 구현·검수 1. 도면 근거와 설계 가정 원본은 「뉴로메카 판교사옥 260908_V2.0.pdf」 1쪽, 도면번호 A-1, 표기 축척 A3 1:300이다. A-1을 실제 층수로 해석하지 않는다. PDF의 외곽·곡면 경계·기둥·주요 실명·연구동 96석 배치를 참조했다. 실 구획은 PDF를 추적한 좌표이며 측량·BIM 납품 모델의 정확도를 보증하지 않는다. 10개 운영 구역은 작은 방을 묶은 애플리케이션 구획이다. 층고, 외벽 유리 사양, 실내 마감, 가구 제품·상세 배치, 천장·설비 위치, 로봇 기종·설치 위치·받침대·포즈는 시각화 설계 가정이다. 실제 설치 정보가 아니다. 건물 외관 높이·층수는 이 평면도만으로 확정하지 않는다. 좌표: u=PDF y, v=841.92−PDF x, 원점(u,v)=(587.46,398.88). x=(u−587.46)×0.1058333333, z=(v−398.88)×0.1058333333; +Y가 위. 전체 외곽 범위는 약90.9×76.6m. imported glTF는 Y-up, 바닥Y=0, XZ 중심 정렬, 가구 정면+Z 규약을 사용한다. 아래 치수는 렌더링 모델 치수다. 2. 2D·2.5D·3D와 이동 규칙 같은 Scene·구역ID·평면좌표를 유지하고 수직 스케일과 카메라를 바꾼다. 2D: 최종 카메라는 정사영 위쪽 시점. 벽·가구·설비 그룹을 숨기고 바닥 평면색·가구 윤곽·벽선·문 열림선을 표시한다. 회전은 비활성화한다. 2.5D: 원근 카메라 FOV35°, 시선 방향(8,115,80)을 정규화하여 도면에 맞춘다. 벽 높이52%, 가구100%, 설비78%. 기본2.8m 벽은1.456m가 된다. 이 구현의 2.5D는 관제용 절개 모드이며 별도 직교투영 메시가 아니다. 3D: 벽·가구·설비 높이100%, 전체보기 방향(36,85,100), FOV35°. 구역 보기에서는(.6,.95,1) 방향으로 해당 구획에 맞춰 이동한다. 실내 보기: 대회의실·회의실만 제공. 눈높이1.60m, FOV62°, near0.08m, 고정 안내 시점이며 자유 보행 기능은 없다. 이때만 천장을 표시한다. 전환: 기본1,350ms, 벽→가구→설비의 시작 지연 비율0/.09/.16. 구역·실내 카메라 이동1,000ms. reduced-motion이면 이동시간0. 전체/구역 원근 카메라 near0.5m·far700m. 선택·설비 상태는 뷰 간 공유한다. 3. 재료 표준 — 현재 실행값 아래 roughness/metalness는 재료 스칼라이며 텍스처가 있으면 픽셀별로 곱해진다. 색상은 코드의 sRGB 입력값이다. MATERIAL_ASSETS의 안내값보다 실제 적용 코드를 우선한다. 유리 | MeshPhysicalMaterial, #b0d0c9, roughness0.16, metalness0.08, opacity0.18, transparent=true, depthWrite=false, DoubleSide. transmission 굴절 모델은 사용하지 않는다. 알파 유리 표현이다. 실내 유리 상단캡 폭0.065·높이0.048m, 세로프레임0.038m. 외벽 세로프레임0.075m, 간격최대약2.4m. 외벽 전면 유리는 설계 가정이다. 벽체 | #e8e4da, roughness0.82, 금속성0. 불투명 벽 두께0.14·높이2.8m. 석고 normal/roughness 사용, normalScale0.08, albedo 미사용. 벽 텍스처는 world-position UV로1m 반복하여 긴 벽의 늘어짐을 줄인다. 불투명 상단캡은 같은 석고 재료, 폭0.145·높이0.055m. 목재 | oak_wood_planks, basecolor/normal/roughness, 반복1.2m. 목재 구역: #fffaf0, roughness0.68, normalScale0.28. 공용 바닥: #f2eadd, roughness0.80, normalScale0.20. 책상: #f0e6d3, roughness0.48, normalScale0.16. 카펫 | #68776f, roughness0.93, normalScale0.28, 반복0.6m. dirty_carpet 원본의 갈색·올리브색은 제거하고 휘도만0.84~1.16배로 기본색에 반영한다. normal/roughness는 유지한다. 원본 이미지 자체는 수정하지 않는다. 광물계 바닥 | #bbc4bd, roughness0.72. 제조실 기본색에는 linear값×1.04 적용. 금속 | 흑연 #303936, roughness0.58/metalness0.32; 알루미늄 #9aaba9, roughness0.32/metalness0.78. 가구 | 절차형 의자 #343d3b, roughness0.90, sheen0.45. 소파·일부 의자 패브릭 변형은 원본 albedo 대신 별도 색상/vertex color, normalScale0.13, AO0.13, sheen0.14, 최종 roughness0.82~0.96 범위를 사용한다. 대회의실12좌석은 Office Chair 원본 PBR/1K 맵. 높이1.05m, 폭0.57163·깊이0.56284m. ?chair=procedural로 이전 메시와 비교할 수 있다. 대회의실 테이블4.8×1.25m, 상판 높이중심0.76m. 일반책상 상판중심0.765m. 천장 | 대회의실·회의실 천장 하부2.82m, #ebeae3, roughness0.94, 석고 normalScale0.04. 코드로 만든 미세 표면과0.6×1.2m 타일 구획. 줄눈은 폭2.5mm의 조명 반응 메시, 천장 아래3mm, #92988f, 발광0. 원본 방 폴리곤을 넘지 않으며 접지 그림자 패스에서는 제외한다. 맵 처리: basecolor=sRGB, normal/roughness=비색상 데이터, anisotropy4. 바닥 기준Y=0, 구역마감0.018, 지원실마감0.025m. 중복 슬래브 상부캡은 숨긴다. 접지 그림자 평면Y=0.033m, 제조셀 패드 상부0.075m로 깊이 충돌을 피한다. 실물 마감 확정 시에는 텍스처 타일 실척·UV·모서리 두께를 함께 다시 검토한다. 4. 조명·그림자·공조 표현 출력 sRGB, ACESFilmic, 노출1.05, DPR 상한1.35. 환경반사는 RoomEnvironment의 PMREM을 사용한다. 현장 HDRI나 실측 조도·광도 배광은 사용하지 않는다. 주간/야간: Hemisphere1.05/0.18, Directional2.0/0.055, 환경강도0.24/0.045. 태양 그림자: PCFSoftShadowMap2048², normalBias0.035, bias−0.00008, radius3. 15개 면광원: 연구동3.2×0.6m, 나머지2.2×0.6m, 아래 방향. 켜짐 밝기비 p=brightness/100, 꺼짐p=0. 면광원 강도=p×주간7/야간15. 3000K/4000K UI는 각각 #ffd29b/#fff0db 색상 근사이며 분광·조도 계산은 아니다. LTC 연산은12m 이내 전체,12~16m에서 감쇠,16m 밖 생략한다. 등기구 발광=p×2.6. 바닥의 간접광 근사는 별도 emissive=p×0.035/0.085. 따라서 발광 바닥은 물리적 GI 결과가 아니다. 실내 선택방: 그림자용 SpotLight1개(거리12m, 각65°, penumbra1, decay2), 높이2.64m, 강도=p×25×(주간0.72/야간1), 그림자1024². 이때 해당 방 면광원 강도×0.55. 사각 면광원의 물리적 그림자를 재현한 것은 아니다. 접지:1536² 깊이 기반 근사, 바닥 위0.55m 이내 형상만 반영, 평면opacity0.68. 천장·유리·바닥·발광등을 제외하고 구조/시점 변화 후 캐시를 갱신한다. 공조: 하향 리본 셰이더로 약/자동/강 바람을 표현한다. CFD나 실제 풍량 계산은 아니다. 설비 on/off·밝기·색온도·설정온도는 시연 상태이며 현장 IoT 연결은 별도다. 5. 자산·라이선스와 원본 보존 Poly Haven CC0-1.0: dining_chair_02(James Ray Cock), sofa_02(Kirill Sannikov), modern_arm_chair_01(Vibrant Nordic), modern_coffee_table_01(Amin), potted_plant_02(Rico Cilliers), oak_wood_planks(Dimitrios Savva), dirty_carpet(Rohit Seervi), white_plaster_02(Rob Tuytel). 원문: https://polyhaven.com/a/[위 ID], 라이선스: https://polyhaven.com/license Office Chair: nisu / CC0-1.0, https://opengameart.org/content/office-chair-1 로봇: Neuromeka 공식 indy-ros2, indy_description/meshes/indy7/visual, branch jazzy-indyDCP3의 STL7개와 indy7.urdf. package.xml은 BSD-3-Clause 명시. 별도 upstream copyright/LICENSE 파일은 확인되지 않아 연도를 임의 작성하지 않았다. 원본 sources/robots/indy7, 고지 public/licenses/neuromeka-indy7-BSD-3-Clause.txt. 원본 URDF 관절 변환을 유지하고 정적 시연 포즈를 부여했다. Blender는 CAD 단순화· glTF 변환에 사용했으며 로봇 형상을 임의 생성한 것이 아니다. 식물 잎은 실제 메시다. Pretendard: SIL OFL1.1. three.js0.180.0/html-to-image1.11.13: MIT. meshoptimizer v1.3: MIT, Copyright(c)2016–2026 Arseny Kapoulkine. https://github.com/zeux/meshoptimizer/tree/v1.3 / public/licenses/meshoptimizer-MIT.txt LOD 생성은 오프라인 meshoptimizer 도구를 사용한다. 대표룸 GLB의 무손실 압축 해제에는 Three r180 배포본의 Meshopt 0.22 WASM 디코더(MIT)를 브라우저에서 실행한다. 6. 상세도·검증 수치의 범위 근접 원본: 로봇24,387tri/대×13, 식물12,527tri/개×10. 전체층 LOD: 같은 Mesh/Geometry·정점·UV·normal·재질·instanceMatrix를 유지하고 meshoptimizer simplifyWithAttributes로 만든 인덱스만 교체한다. 잎 경계는 LockBorder. 카메라 거리70m 이상에서 low,60m 미만에서 full 복구. 실내는 항상full. spatial.setDetail(false/true), ?lod=off로 비교한다. 토글은 새 메시를 생성하지 않는다. 두 자산 합계442,301→109,136tri(75.3% 감소), 추가 데이터111,156bytes. 전체 CPU geometry 집계1,157,737→824,572tri(28.78% 감소), mesh draw284개 동일. 이 수치는 텍스처를 생략한 CPU 모델 검사이며 GPU pass·그림자·선 draw/FPS 수치가 아니다. 20회 왕복에서 원본 index 참조·객체·속성·인스턴스 행렬 복원을 확인했다. LOD 정점은 원본 정점의 부분집합이므로 기존 점유 bounds를 확장하지 않는다. 대회의실 신규 의자12개는 벽 최소1.211m, 테이블 최소0.199m 여유로 검사했다. 눈높이 시점은 벽에서최소0.70m. 라운지 외곽 이탈2건을 이동 후 전체 가구 검사0건. 근거 파일 sources/plan-derived.json; src/spatial.js; src/asset-library.js; src/finish-detail.js; src/interior-ceiling.js; src/viewer.js; src/interior-light.js; src/contact-shadows.js; src/asset-lod.js; sources/lod/verification.json; research/robot-source.json. 현재 소스 스냅샷에 대한 구현 기준이며 고객 품질 승인·현장 치수 검증을 대체하지 않는다.