블렌더보다 쉽고, 스케치업보다 정확한 3D 모델링 플랫폼
Lighter than Blender, More Precise than SketchUp
https://withoz.github.io/axia3d/
설치도, Rust 도, npm 도 필요 없습니다 — 브라우저만 있으면 어느 컴퓨터에서든
열립니다. 엔진이 WebAssembly 라 계산은 그 컴퓨터에서 로컬로 돕니다: 형상이
서버로 올라가지 않습니다. main 에 push 될 때마다 자동 배포됩니다
(.github/workflows/deploy.yml).
받아오는 양 (배포본에서 performance.getEntriesByType('resource') 로 실측):
| 앱 (엔진 WASM 4.3 MB + JS + CSS + 폰트) | 6.4 MB |
| STEP/IGES 용 OpenCascade | STEP 파일을 열 때만, 115.1 MB |
⚠ 두 번째 줄은 배포본에서만 이렇습니다. ADR-119 의 pre-warm 은 로컬에서 기본
ON 이라 로드 1.2초 뒤 OCCT 를 미리 받아 두고, 그 대가로 STEP 을 열 때
ADR-082 Drift #5 의 180초 대기가 사라집니다. 공개 사이트에서는 STEP 을 열지
않는 방문자까지 115 MB 를 받게 되므로 배포 빌드만 끕니다
(deploy.yml 의 VITE_STEP_PREWARM=off). 미리 받아 두고 싶으면 켜면 됩니다:
localStorage.setItem('axia:step-iges-prewarm', 'true');아래 시작하기 는 엔진을 직접 고칠 때의 개발자 경로입니다.
- 드로우 도구: 선, 사각형, 원 그리기 (SketchUp 스타일)
- 변형 도구: 이동, 회전, 스케일, 오프셋
- 고급 기능: Push/Pull, Boolean 연산 (Union/Subtract/Intersect)
- 그룹 및 컴포넌트: 재사용 가능한 부품 관리
- 스냅 시스템: 정점, 엣지, 중점, 중심 자동 스냅
- 드래그 가능한 패널: Floating/Docked/AutoHide 상태
- 명령어 입력: CAD 스타일 커맨드 라인 (
L 100= 100mm 라인) - 차원 표시: 실시간 길이/각도 표시
- Outliner 패널: 그룹 및 컴포넌트 계층 관리
- Import: DXF, DWG, SKP, OBJ, STL, glTF, DAE, PLY, 3DS
- Export: DXF, XIA (네이티브)
- Rust WASM: Half-Edge DCEL 기반 기하 커널
- Three.js 0.170: 고성능 3D 렌더링
- TypeScript: 타입 안전 프론트엔드
- Vite: 빠른 번들링
- Node.js 20.x 이상
- npm 10.x 이상
- (선택) Rust 툴체인 (WASM 재빌드 시)
이 저장소는 npm workspace 루트 입니다. install 은 항상 루트에서 —
cd web && npm install 은 CONTRIBUTING §2 가 금지합니다(루트 단일
package-lock.json).
npm install # 루트에서 1회
npm run build:wasm # Rust → wasm (최초 또는 엔진 변경 후)
npm run dev브라우저에서 http://localhost:3000 열기 (web/vite.config.ts 의 port).
npm run build:all # wasm + tsc + vitedist/ 폴더에 빌드 결과물 생성
npm run test # 한 번 실행
npm run test:watch # 감시 모드
npm run test:coverage # 커버리지 리포트키보드: 백틱(`) 또는 Ctrl+K 로 명령어 패널 열기
| 명령어 | 설명 | 예시 |
|---|---|---|
L |
라인 도구 활성화 | L (클릭으로 그리기) |
L [길이] |
길이 지정 라인 | L 100 (100mm) |
L x1,y1,z1 x2,y2,z2 |
좌표로 라인 생성 | L 0,0,0 100,0,0 |
R |
사각형 도구 | R |
C [반지름] |
원 그리기 | C 50 (반지름 50mm) |
H 또는 ? |
도움말 | H |
AXiA 3D/
├── web/ # 프론트엔드
│ ├── src/
│ │ ├── ui/
│ │ │ ├── CommandInput.ts # 명령어 입력 UI
│ │ │ ├── DraggablePanelManager.ts
│ │ │ └── ComponentPanel.ts
│ │ ├── tools/
│ │ │ ├── DrawLineTool.ts
│ │ │ ├── PushPullTool.ts
│ │ │ ├── GroupTool.ts
│ │ │ └── ...
│ │ ├── viewport/
│ │ │ └── Viewport.ts # Three.js 렌더링
│ │ └── main.ts
│ ├── vite.config.ts
│ └── package.json
│
├── crates/ # Rust 엔진
│ ├── axia-geo/ # 기하 커널
│ ├── axia-core/ # 씬 및 그룹 관리
│ └── axia-wasm/ # WASM 바인딩
│
├── .github/workflows/
│ ├── build.yml # CI 빌드
│ └── deploy.yml # GitHub Pages 배포
│
└── CLAUDE.md # 개발 지침
- main 브랜치로 푸시 → GitHub Actions 자동 실행
- Node.js 20.x, 22.x에서 빌드
- 테스트 실행
- GitHub Pages에 배포 (선택적)
- Repository → Actions 탭 → 최신 workflow 확인
# PowerShell에서 실행
.\setup-github.ps1또는 수동으로:
git init
git add .
git commit -m "Initial commit: AXiA 3D"
git branch -M main
git remote add origin https://github.com/{username}/{repo}.git
git push -u origin mainWASM 코드 수정 후:
cd crates/axia-wasm
wasm-pack build --target web --out-dir ../../web/src/wasm
# 또는 npm 스크립트 사용
cd ../../web
npm run wasm:build| 파일 | 설명 |
|---|---|
CLAUDE.md |
개발 가이드 및 아키텍처 |
GITHUB_ACTIONS_SETUP.md |
CI/CD 설정 상세 가이드 |
setup-github.ps1 |
GitHub 자동 설정 스크립트 |
- Windows:
npm install(자동 처리) - Linux:
npm ci --no-optional
- 콘솔 경고이며, Three.js만으로도 기본 기능 작동
- 기하 연산 시 필요 (Push/Pull, Boolean 등)
npm install재실행npm cache clean --forcenode_modules삭제 후 재설치
- Fork this repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
MIT License — 자유롭게 사용, 수정, 배포 가능
WYKO — AXiA 3D 프로젝트 개발자
- 📧 Email: withoz1111@gmail.com
- 🔗 GitHub: @withoz1111
마지막 업데이트: 2026-04-13 버전: 0.1.0 (Beta)
🚀 시작하기 → npm run dev (web 폴더에서)