Low-code Front-end Design & Development Platform
Front-end development platform, with a visual builder and headless content modelling capabilities. Static website creation, and UI development tools.
翻譯準備中
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證正在載入完整 README。 以下為已儲存的摘錄。
사진·영상·3D 작품을 올려 웹에서 관람할 수 있는 3D 전시관을 만드는 도구입니다. 서버 없이 브라우저 안에서 동작합니다. • 편집 모드: 건축 프로그램처럼 층마다 공간을 그리고 벽에 액자·벽 글을, 바닥에 조각 좌대를 배치한 뒤 작품을 올려요. • 관람 모드: 공개된 전시 목록에서 하나를 고르면 초대장이 뜨고, 3D 전시관에 입장해 층을 오가며 작품을 감상해요. 자동 투어·음성 해설·VR 관람을 지원해요. 첫 실행 시 2층짜리 샘플 전시가 자동으로 만들어집니다 (작품 이미지는 개발용 임시 이미지, 입구에 서문 벽 글). main 에 push 하면 GitHub Actions(.github/workflows/deploy.yml)가 테스트·빌드 후 https://ring-experimental.github.io/museum-constructor/ 에 배포합니다. 빌드는 상대 경로(base: './')라 어느 하위 경로에 올려도 동작하고, public/ 파일은 publicUrl()(src/publicUrl.ts)로 불러옵니다. 서버가 없으므로 배포된 사이트에서도 전시 데이터는 각 방문자의 브라우저에만 저장됩니다.檢視完整 README ↗
사진·영상·3D 작품을 올려 웹에서 관람할 수 있는 3D 전시관을 만드는 도구입니다. 서버 없이 브라우저 안에서 동작합니다.
npm install
npm run dev # http://127.0.0.1:5173 (PORT 환경변수가 있으면 그 포트)
npm test # 도면·충돌·자동배치·감상 순서·스키마·EXIF·텍스처 LOD·오디오·VR 단위 테스트
npm run build # 타입체크 + 프로덕션 빌드 (dist/)
첫 실행 시 2층짜리 샘플 전시가 자동으로 만들어집니다 (작품 이미지는 개발용 임시 이미지, 입구에 서문 벽 글).
main 에 push 하면 GitHub Actions(.github/workflows/deploy.yml)가 테스트·빌드 후 https://ring-experimental.github.io/museum-constructor/ 에 배포합니다. 빌드는 상대 경로(base: './')라 어느 하위 경로에 올려도 동작하고, public/ 파일은 publicUrl()(src/publicUrl.ts)로 불러옵니다. 서버가 없으므로 배포된 사이트에서도 전시 데이터는 각 방문자의 브라우저에만 저장됩니다.
| 도구 (단축키) | 하는 일 |
|---|---|
| 선택 (1, V) | 항목 선택·드래그 이동. 빈 곳 드래그 = 화면 이동. Shift+클릭 = 여러 개 선택, Shift+드래그 = 범위 선택, Ctrl+A = 층 전체 |
| 공간 (2) | 격자를 드래그해 바닥(방)을 칠함. 벽은 공간 둘레에 자동 생성. 우클릭 드래그 = 지우기 |
| 칸막이 벽 (3) | 격자선을 클릭/드래그해 내부 벽을 세우거나 없앰 |
| 액자 (4) | 벽 가까이 클릭 → 액자 걸기. 보관함에서 작품을 고르면 클릭할 때마다 다음 작품이 순서대로 걸림 |
| 벽 글 (5) | 벽에 전시 서문·섹션 제목·안내문을 붙임. 글자 크기·정렬·색(벽 색에 맞춰 자동)·폭·높이 조절 |
| 엘리베이터 (6) | 벽에 엘리베이터 설치 (층마다 1개, 층 이동 지점) |
| 소품 (7) | 벤치·화분·조각 좌대 배치, R 로 회전. 조각 좌대에는 3D 작품(GLB)을 올릴 수 있음 |
| 시작 위치 (8) | 관람객이 처음 서는 곳. 클릭 후 드래그로 방향 지정 |
| 지우개 (9) | 액자·벽 글·소품·칸막이 벽 삭제 |
.museum.json 파일로 내보내기/가져오기 (업로드한 사진·영상·3D 모델·오디오 포함) — 서버 없이 백업·공유.드래그 둘러보기 · WASD/방향키 이동(Shift 빠르게) · 바닥 클릭 이동 · 휠 앞뒤 이동 · 작품/벽 글 클릭 감상(←/→ 이전·다음, ‘크게 보기’, 3D 작품은 ‘돌려 보기’) · 미니맵(M, 클릭 이동) · 엘리베이터 또는 우측 상단 층 버튼으로 층 이동. 모바일 터치도 같은 방식(드래그/탭)으로 동작합니다.
#/visit/<전시>?art=<작품> 으로 그 작품 앞에서 바로 시작해요.src/
core/ 데이터 모델(types), 스키마 버전·검증(schema), 도면 계산(grid), 충돌(collision),
템플릿·자동배치(factory), 감상 순서(tour), 업로드 파일 참조(blobs)
storage/ IndexedDB 저장소(exhibitionRepo, imageRepo), 업로드 리사이즈, EXIF, 영상 포스터,
내보내기/가져오기, 샘플 시드
three/ Stage(렌더러·조명·카메라 받침대), buildFloor(층 → 3D 씬), 액자 몰딩, 벽 글 텍스처,
작품 텍스처 캐시 + 거리별 해상도(artworkSlot), 3D 작품(GLB) 로더, 스포트라이트, 소품 GLB
viewer/ 1인칭 컨트롤러, 미니맵, 오디오 가이드(TTS·녹음·배경 음악), WebXR
editor/ zustand 스토어(실행취소·다중 선택), 2D 도면(SVG), 3D 미리보기, 인스펙터, 작품 보관함,
일괄 편집 표, 감상 순서 목록, 오디오 첨부
pages/ 관람 목록 · 관람 · 스튜디오 목록 · 편집기
tools/blender/ 소품 3D 모델 생성 스크립트 (→ public/assets/models/*.glb)
docs/EXTERNAL_ASSETS.md 외부 제작이 필요한 2D 에셋 목록과 규격
cols × rows 격자, 한 칸 = 2m. 칸을 칠하면 바닥, 칠한 칸과 빈 칸의 경계에 벽이 자동으로 생깁니다. 칸막이 벽은 격자선(모서리) 단위.벽 모서리 + 바라보는 방향(side) + 좌우 오프셋으로 저장되어, 벽 위치만 알면 3D 좌표가 결정됩니다.Exhibition JSON 에는 schemaVersion 이 있고(현재 v2 — 벽 글, 감상 순서, 작품 종류(media), 좌대 작품, 오디오, 작품 조명), 저장소에서 읽거나 파일을 가져올 때 모두 migrateExhibition(src/core/schema.ts)을 거칩니다.
javascript: 같은 주소)은 버려집니다.data: URL 만 받습니다.SCHEMA_VERSION 을 올리고 migrateExhibition 에 변환을 추가하세요.ExhibitionRepository(src/storage/exhibitionRepo.ts) 인터페이스와 Exhibition JSON(src/core/types.ts)은 그대로 API 페이로드로 쓸 수 있게 설계했습니다. 게시판 서버를 붙일 때는 REST 구현으로 저장소를 교체하고(읽은 문서는 migrateExhibition 으로 검증 — 서버 쪽 요청 검증에도 같은 함수 사용 가능), 업로드 파일은 collectBlobIds/remapBlobIds(src/core/blobs.ts)로 찾아 오브젝트 스토리지로 옮기면 됩니다. status: draft | published 가 공개 여부를, ?art= 작품 링크가 공유 주소를 담당합니다.
로컬 Blender 5.2 로 스크립트 생성한 GLB 를 씁니다. 다시 만들려면 (PowerShell, 프로젝트 루트):
& "C:\Program Files\Blender Foundation\Blender 5.2\blender.exe" -b --factory-startup --python tools/blender/build_props.py -- --out public/assets/models
& "C:\Program Files\Blender Foundation\Blender 5.2\blender.exe" -b --factory-startup --python tools/blender/render_previews.py
두 번째 명령은 GLB 검증(크기·원점·방향 출력)과 미리보기 렌더(tools/blender/previews/)를 합니다. GLB 가 없으면 앱은 단순 도형으로 대체합니다. 조각 좌대 모델의 Sculpture 노드는 사용자 3D 작품을 올리면 자동으로 빠집니다.
ko-KR 기준으로 고르므로, 한국어 음성이 없는 OS 에서는 다른 언어 음성이 어색하게 읽을 수 있어요.immersive-vr 를 지원하는 환경에서만 버튼이 보이며, 실제 헤드셋에서의 조작감은 기기별 확인이 필요합니다.