AR 藝術品互動專案

POC 開發規劃 — 2026 年 4 月 ~ 6 月

總預算
$50,000
NTD
時薪
$250
NTD / hr
可用時數
200
小時
開發期間
~13
週 (4/6 - 6/29)
人力配置
1
全端 + UIUX

甘特圖 — 時程規劃

UI/UX 設計
後端建構
前台 Mode 1 (AR)
前台 Mode 2 (3D)
後台 Mode 1
後台 Mode 2
測試 & 整合
緩衝
任務
W1
4/6
W2
4/13
W3
4/20
W4
4/27
W5
5/4
W6
5/11
W7
5/18
W8
5/25
W9
6/1
W10
6/8
W11
6/15
W12
6/22
W13
6/29
UI/UX 設計 25h
W1-W2.5
後端建構 20h
W2-W3.5
前台 Mode 1 (AR) 50h
W3-W7
前台 Mode 2 (3D) 25h
W7-W9
後台 Mode 1 20h
W8-W10
後台 Mode 2 30h
W10-W12
測試 & 整合 20h
W11-W13
緩衝時間 10h
分散在各階段
Note: 因為只有一人作業,任務基本上是序列進行,但有部分任務可平行處理(如 UI/UX 設計與後端建構有少量重疊)。前台 Mode 1 (AR) 是技術風險最高的部分,因此分配最多時間。緩衝時間 10 小時分散在各階段,用於應對突發狀況。

人力成本分配

任務項目 時數 (hr) 成本 (NTD) 佔比 風險等級
UI/UX 設計(前後台 Wireframe + 基本視覺) 25 $6,250 12.5%
後端建構(API / DB / 部署) 20 $5,000 10.0%
前台 Mode 1 — AR 辨識 + 材質替換 50 $12,500 25.0%
前台 Mode 2 — 3D Orbit 瀏覽器 25 $6,250 12.5%
後台 Mode 1 — 管理介面(瀏覽 + 資料管理) 20 $5,000 10.0%
後台 Mode 2 — 位置編輯器(拖曳 / 座標調整) 30 $7,500 15.0%
測試 & 整合(實機測試、跨瀏覽器、E2E) 20 $5,000 10.0%
緩衝 / 突發修正 10 $2,500 5.0%
合計 200 $50,000 100%

技術架構(全開源)

Runtime & 建置

  • Bun — Runtime + Package Manager
  • Next.js 15 + Turbopack — 前後台共用框架
  • TypeScript — 型別安全

AR / 3D 渲染

  • MindAR.js — 圖像辨識追蹤(支援多目標)
  • Three.js — 3D 渲染引擎
  • OrbitControls — 3D 場景旋轉/縮放
  • @react-three/fiber — React 整合 Three.js

後端 & 資料

  • Next.js API Routes — RESTful API
  • Drizzle ORM — 輕量 ORM
  • SQLite (Turso) — 零成本資料庫
  • S3 / Cloudflare R2 — 素材儲存

後台 UI

  • shadcn/ui — UI 元件庫(自訂性高)
  • @dnd-kit — 拖曳操作
  • Zustand — 輕量狀態管理
  • React Three Drei — 3D 編輯輔助

部署

  • Vercel / Cloudflare Pages — 免費方案
  • GitHub Actions — CI/CD

設計

  • Figma(免費版)— UI/UX 設計
  • Excalidraw — 流程圖 / 架構圖

AR 套件分析比較

套件 圖像追蹤 多目標支援 效能 Three.js 整合 動態載入目標 費用 維護狀態
MindAR.js
★ 推薦
優秀
NFT 自然特徵追蹤,辨識精度高
支援
可同時追蹤多個目標
中上
WASM 加速,手機表現穩定
原生支援
內建 Three.js 模式
支援
可動態新增/移除追蹤目標
免費
MIT License
活躍
持續更新中
AR.js 普通
NFT 模式辨識較慢
有限
多目標效能下降明顯
中等
Marker 模式快,NFT 模式較慢
間接
主要依賴 A-Frame,Three.js 需額外處理
不支援
需重新初始化
免費
MIT License
緩慢
更新頻率低
8th Wall 頂級
業界最強圖像追蹤
優秀
原生多目標支援
最佳
深度優化的 SLAM
原生支援
Three.js / A-Frame / Babylon
支援
完整 API
付費
~$99/月起,超量另計
活躍
Niantic 維護
WebXR API
瀏覽器原生
不支援
無圖像追蹤功能
N/A 最佳
原生效能
原生支援
Three.js WebXRManager
N/A 免費
瀏覽器內建
發展中
iOS Safari 支援不完整
Zappar 優秀
精度高,速度快
支援
多目標追蹤
優秀
WASM 深度優化
原生支援
@zappar/zappar-threejs
有限
需預編譯目標檔
付費
免費額度有限,商用需付費
活躍
穩定維護

推薦方案:MindAR.js

  • ▸ 完全免費開源,符合預算限制
  • ▸ 原生 Three.js 整合,不需繞道 A-Frame
  • ▸ 支援動態載入/卸載追蹤目標,適合 200-300 品項分區策略
  • ▸ WASM 編譯的電腦視覺核心,手機效能表現穩定
  • ▸ 社群活躍,GitHub Issues 回覆快速

MindAR 需注意的限制

  • ⚠ 單次載入追蹤目標建議 ≤ 30 個,超過需分區管理
  • ⚠ 追蹤目標需先用 compiler 預處理成 .mind 檔
  • ⚠ 辨識距離受圖像大小與複雜度影響
  • ⚠ 低階手機(< 3GB RAM)多目標時可能掉幀
  • ⚠ 無內建 SLAM / 平面偵測(僅圖像追蹤)

200-300 品項效能策略

1. 分區載入(Zone Loading)
將 200-300 品項依空間位置分成 10-15 個區域,每區 ≤ 25 個追蹤目標。使用者在現場移動時,根據位置動態切換載入的區域。
2. 預編譯 .mind 檔案
所有品項圖像預先用 MindAR Compiler 編譯成 .mind 檔,依區域打包。後台上傳素材時自動觸發編譯流程。
3. LOD 渲染策略
近距離品項用高品質材質,遠距離用低解析度替代。Three.js LOD 物件自動根據相機距離切換。
4. Worker 離線辨識
將 MindAR 辨識邏輯放入 Web Worker,避免阻塞主線程的渲染迴圈,維持 60fps 流暢度。

各階段產出物

前台 Mode 1 — AR

  • 手機開啟網頁後啟動相機
  • 對準藝術品自動辨識(MindAR 圖像追蹤)
  • 辨識後疊加 AR 效果(材質替換 / 色彩變換)
  • 完整支援 200-300 品項辨識(分區載入 + lazy loading)
  • 畫面中多個目標可同時渲染
  • 效能優化(動態載入追蹤目標、視野範圍偵測)

前台 Mode 2 — 3D 瀏覽

  • 完整 3D 藝術品場景載入
  • Orbit Control 旋轉 / 縮放 / 平移
  • 各品項可點擊查看資訊
  • RWD 手機優先

後台 Mode 1 — 瀏覽管理

  • 品項列表 CRUD(名稱、材質、貼圖)
  • 3D 場景預覽(與前台 Mode 2 類似)
  • 藝術品專案管理
  • 素材上傳管理

後台 Mode 2 — 位置編輯

  • 3D 場景中點擊選取品項
  • TransformControls 移動 / 旋轉 / 縮放
  • 座標數值微調面板
  • 儲存位置並同步至前台

風險評估 & 緩解策略

高風險 AR 多目標同時辨識效能
200-300 個品項全部同時追蹤在手機上會有效能瓶頸。
緩解: 採用分區載入 + lazy loading + 視野範圍偵測策略,只載入當前相機視野附近的追蹤目標。MindAR 支援動態載入/卸載追蹤目標,搭配 LOD(Level of Detail)降低遠距品項的渲染負擔。
中風險 手機瀏覽器相容性
WebXR / 相機 API 在不同手機瀏覽器行為可能不同。
緩解: 優先支援 iOS Safari + Android Chrome,其他瀏覽器列為後續優化。
中風險 3D 場景編輯器的 UX 複雜度
後台 Mode 2 需要在網頁上做 3D 場景編輯,操作可能不直覺。
緩解: POC 版用基本的 TransformControls + 數值輸入面板,不追求完美 UX。
低風險 時程壓力(一人作業)
200 小時只有一個人,沒有太多容錯空間。
緩解: 嚴格控制 POC 範圍,每階段 timeboxing,不做 nice-to-have 功能。

系統架構概覽

┌─────────────────────────────────────────────────────────────────────┐
│                          使用者裝置(手機)                           │
│                                                                     │
│   ┌─────────────────────┐     ┌─────────────────────┐              │
│   │   前台 Mode 1 (AR)   │     │  前台 Mode 2 (3D)   │              │
│   │                     │     │                     │              │
│   │  Camera → MindAR    │     │  Three.js Scene     │              │
│   │  → Three.js Overlay │     │  + OrbitControls    │              │
│   └────────┬────────────┘     └────────┬────────────┘              │
│            │                           │                            │
└────────────┼───────────────────────────┼────────────────────────────┘
             │         REST API          │
             ▼                           ▼
┌─────────────────────────────────────────────────────────────────────┐
│                     Next.js Server (Bun Runtime)                     │
│                                                                     │
│   ┌──────────────┐   ┌──────────────┐   ┌──────────────────┐      │
│   │  API Routes  │   │  Drizzle ORM │   │  Static Assets   │      │
│   │  /api/*      │──▶│              │──▶│  /public/models  │      │
│   └──────────────┘   └──────┬───────┘   └──────────────────┘      │
│                             │                                       │
│                     ┌───────▼───────┐                               │
│                     │ SQLite (Turso) │                               │
│                     │  品項資料      │                               │
│                     │  位置座標      │                               │
│                     │  材質設定      │                               │
│                     └───────────────┘                               │
└─────────────────────────────────────────────────────────────────────┘
             ▲                           ▲
             │         REST API          │
┌────────────┼───────────────────────────┼────────────────────────────┐
│            │                           │                            │
│   ┌────────┴────────────┐     ┌────────┴────────────┐              │
│   │  後台 Mode 1 (管理)  │     │  後台 Mode 2 (編輯)  │              │
│   │                     │     │                     │              │
│   │  CRUD 列表          │     │  3D Scene Editor    │              │
│   │  素材上傳            │     │  TransformControls  │              │
│   │  3D 預覽            │     │  座標面板            │              │
│   └─────────────────────┘     └─────────────────────┘              │
│                                                                     │
│                          藝術家(電腦)                               │
└─────────────────────────────────────────────────────────────────────┘
Generated for AR Art Interactive Project — POC Development Plan 2026