한국어
시작하기
설치

설치

설치하기

Mirage Engine은 타입 선언이 포함된 ES 모듈로 배포됩니다. three는 peer dependency이므로 버전은 여러분 앱에서 직접 정합니다.

npm install mirage-engine three

요구 사항

항목버전비고
three^0.160.0peer dependency, 번들에 포함되지 않음
브라우저WebGL2 + MutationObserver + IntersectionObserver모든 최신 브라우저
모듈 형식ESM패키지가 "type": "module"
⚠️

Mirage는 생성자에서 window, document, WebGLRenderingContext를 건드립니다. 서버 사이드 렌더링 중에는 실행할 수 없습니다 — 아래 SSR 프레임워크를 참고하세요.

설치 확인

import { Mirage } from "mirage-engine";
 
const target = document.querySelector("#target") as HTMLElement;
const mirage = new Mirage(target, {});
 
await mirage.start();
console.log(mirage.getCanvas()); // 타깃 옆에 삽입된 <canvas>

캔버스 요소가 로그에 찍히고 타깃이 시각적으로 복제되어 보이면 정상입니다.

SSR 프레임워크

Mirage는 클라이언트에서만 import하고 생성하세요.

"use client";
import { useEffect, useRef } from "react";
 
export function MirageLayer() {
  const ref = useRef<HTMLDivElement>(null);
 
  useEffect(() => {
    if (!ref.current) return;
    let mirage: import("mirage-engine").Mirage | undefined;
 
    (async () => {
      const { Mirage } = await import("mirage-engine");
      mirage = new Mirage(ref.current!, { mode: "overlay" });
      await mirage.start();
    })();
 
    return () => mirage?.destroy();
  }, []);
 
  return <div ref={ref}>{/* 평소대로 쓰는 마크업 */}</div>;
}

서브 패키지

mirage-engine 하나면 필요한 건 다 들어 있습니다. 내부 모듈만 따로 쓰고 싶다면 개별 패키지도 배포되어 있습니다.

패키지이럴 때 사용
@mirage-engine/painterDOM 동기화 없이 DOM 스타일 그대로의 Three.js 머티리얼만 필요할 때
@mirage-engine/dom-tracker배치 처리되는 DOM 옵저버만 필요할 때
@mirage-engine/sandwichMirage 없이 캔버스 위에 DOM을 레이어링하고 싶을 때
@mirage-engine/coreEngine 위에 자체 파사드를 만들 때

다음 단계

빠른 시작으로 이어집니다.


Mirage Engine — MIT 라이선스 © 2026 dltldn333