View in English

  • Apple Developer
    • 시작하기

    시작하기 탐색

    • 개요
    • 알아보기
    • Apple Developer Program

    알림 받기

    • 최신 뉴스
    • Hello Developer
    • 플랫폼

    플랫폼 탐색

    • Apple 플랫폼
    • iOS
    • iPadOS
    • macOS
    • tvOS
    • visionOS
    • watchOS
    • App Store

    피처링

    • 디자인
    • 배포
    • 게임
    • 액세서리
    • 웹
    • 홈
    • CarPlay
    • 기술

    기술 탐색

    • 개요
    • Xcode
    • Swift
    • SwiftUI

    피처링

    • 손쉬운 사용
    • 앱 인텐트
    • Apple Intelligence
    • 게임
    • 머신 러닝 및 AI
    • 보안
    • Xcode Cloud
    • 커뮤니티

    커뮤니티 탐색

    • 개요
    • Apple과의 만남 이벤트
    • 커뮤니티 주도 이벤트
    • 개발자 포럼
    • 오픈 소스

    피처링

    • WWDC
    • Swift Student Challenge
    • 개발자 이야기
    • App Store 어워드
    • Apple 디자인 어워드
    • 문서

    문서 탐색

    • 문서 라이브러리
    • 기술 개요
    • 샘플 코드
    • 휴먼 인터페이스 가이드라인
    • 비디오

    릴리즈 노트

    • 피처링 업데이트
    • iOS
    • iPadOS
    • macOS
    • watchOS
    • visionOS
    • tvOS
    • Xcode
    • 다운로드

    다운로드 탐색

    • 모든 다운로드
    • 운영 체제
    • 애플리케이션
    • 디자인 리소스

    피처링

    • Xcode
    • TestFlight
    • 서체
    • SF Symbols
    • Icon Composer
    • 지원

    지원 탐색

    • 개요
    • 도움말
    • 개발자 포럼
    • 피드백 지원
    • 문의하기

    피처링

    • 계정 도움말
    • 앱 심사 지침
    • App Store Connect 도움말
    • 새로 추가될 요구 사항
    • 계약 및 지침
    • 시스템 상태
  • 빠른 링크

    • 이벤트
    • 뉴스
    • 포럼
    • 샘플 코드
    • 비디오
 

비디오

메뉴 열기 메뉴 닫기
  • 컬렉션
  • 전체 비디오
  • 소개

더 많은 비디오

  • 소개
  • 요약
  • 코드
  • HTML 모델 요소 시작하기

    이 모델 요소로 이제 iOS, iPadOS, macOS, visionOS의 웹사이트에 어떻게 인터랙티브 3D 콘텐츠를 도입할 수 있는지 알아보세요. 3D 애셋을 생성하고 최적화하기 위한 도구를 살펴보세요. 모델 요소의 다양한 기능을 둘러보고 웹 표준이 어떻게 웹에서 3D의 미래를 만들어 가고 있는지 확인해 보세요.

    챕터

    • 0:00 - Introduction
    • 2:22 - Prepare the USDZ model asset
    • 4:18 - Loading and fallbacks
    • 6:14 - Model background
    • 6:48 - Interactions
    • 8:26 - Transition animation
    • 10:08 - Animation playback
    • 10:52 - AR and spatial
    • 12:29 - Optimize assets for production
    • 14:53 - Next steps

    리소스

    • WebKit.org - Theater Ticket Sales immersive website environment demo for Apple Vision Pro
    • The HTML model element in Apple Vision Pro
    • GitHub: model element samples
    • WebKit.org – Report issues to the WebKit open-source project
    • AOUSD – Alliance for OpenUSD
    • w3.org – Model element
    • Submit feedback
      • HD 비디오
      • SD 비디오

    관련 비디오

    WWDC26

    • Safari 27용 WebKit의 새로운 기능
    • visionOS에서 몰입형 웹사이트 환경 살펴보기

    WWDC25

    • 공간 웹의 새로운 기능

    WWDC24

    • USD 및 MaterialX의 새로운 기능
  • 비디오 검색…
    • 4:19 - Load a model

      <!-- Using the src attribute -->
      <model src="mallet.usdz"></model>
      
      <!-- Using a <source> child for MIME type -->
      <model>
          <source src="mallet.usdz" type="model/vnd.usdz+zip">
      </model>
    • 4:39 - Image fallback

      <model id="mallet" src="mallet.usdz">
          <img src="mallet.png"
               alt="Rubber mallet with wooden handle">
      </model>
    • 5:09 - Ready promise

      <model id="mallet" src="mallet.usdz"></model>
      
      <script>
          const model = document.getElementById("mallet");
          model.ready.then(result => {
              // Hide the loading indicator
          }).catch(error => {
              // Loading failed, show fallback
          });
      </script>
    • 5:39 - Polyfill fallback

      <script type="module">
          if (!window.HTMLModelElement) {
              import("model-element-polyfill.js").then(() => {
                  // Polyfill ready to use
              });
          }
      </script>
    • 6:13 - Model background

      <model id="mallet" src="mallet.usdz"></model>
      <style>
          model {
              background-color: #f4f1ec;
          }
      </style>
    • 6:47 - Stage mode

      <model id="mallet"
             src="mallet.usdz"
             stagemode="orbit">
      </model>
    • 7:31 - Custom transforms

      <model id="boot" src="boot.usdz"></model>
      <button id="button-side">Side</button>
      <button id="button-reset">Reset</button>
      
      <script>
          const model = document.getElementById("boot");
          const initialTransform = model.entityTransform;
      
          document.getElementById("button-side")
                  .addEventListener("click", () => {
              const transform = new DOMMatrix();
              transform.rotateSelf(0, 135, 0);
              model.entityTransform = transform;
          });
      
          document.getElementById("button-reset")
                  .addEventListener("click", () => {
              model.entityTransform = initialTransform;
          });
      </script>
    • 8:35 - Transition animation

      <script>
          const model = document.getElementById("boot");
          const duration = 500;
          let currentAngle = 0;
          let animationId = null;
      
          function animateTo(targetAngle) {
              if (animationId) cancelAnimationFrame(animationId);
              const startAngle = currentAngle;
              const startTime = performance.now();
      
              function step(now) {
                  const progress = Math.min((now - startTime) / duration, 1);
                  const ease = 1 - Math.pow(1 - progress, 3);
                  currentAngle = startAngle + (targetAngle - startAngle) * ease;
                  model.entityTransform = new DOMMatrix().rotateSelf(0, currentAngle, 0);
                  if (progress < 1) animationId = requestAnimationFrame(step);
              }
      
              requestAnimationFrame(step);
          }
      
          document.getElementById("button-side").addEventListener("click", () => animateTo(135));
          document.getElementById("button-reset").addEventListener("click", () => animateTo(0));
      </script>
    • 10:07 - Animation playback

      <model id="bottle" src="bottle.usdz"></model>
      <button id="button-play" onclick="play(5)">
          Play
      </button>
      <button id="button-reverse" onclick="play(-5)">
          Reverse
      </button>
      
      <script>
          const model = document.getElementById("bottle");
      
          function play(rate) {
              model.playbackRate = rate;
              model.play();
          }
      </script>
    • 11:06 - AR Quick Look

      <a rel="ar" href="bottle.usdz">
          <model id="boot" src="bottle.usdz"></model>
      </a>
    • 0:00 - Introduction
    • The HTML model element, which brings 3D content to the web as simply as an image and now extends from visionOS to iOS, iPadOS, and macOS — how it compares to the model-viewer library and where it stands as an emerging web standard.

    • 2:22 - Prepare the USDZ model asset
    • Approaches for creating 3D content: scanning with iPhone, converting existing files, authoring in tools like Blender, and generating models from images or text prompts. Why USDZ is the recommended format — it bundles geometry, materials, textures, and animations into a single file.

    • 4:18 - Loading and fallbacks
    • Embed a model with the tag's src attribute or a nested . Use a nested as a fallback for older browsers, await the ready promise to know when the model can be displayed, and load the W3C polyfill so the element works where it isn't supported natively.

    • 6:14 - Model background
    • Set background-color directly on the model element to match the surrounding page. The model renders in its own virtual space and doesn't inherit page styles, and any background is composited as fully opaque.

    • 6:48 - Interactions
    • Add stagemode="orbit" to let visitors rotate the model with automatic spring-back and clipping protection. For custom interactivity, disable stagemode and drive the entityTransform property with a DOMMatrix to snap the model to specific viewing angles from JavaScript.

    • 8:26 - Transition animation
    • Animate between custom orientations by updating entityTransform inside requestAnimationFrame. The pattern captures a starting angle, eases each frame's rotation, and cancels any in-flight animation so successive transitions don't conflict.

    • 10:08 - Animation playback
    • Play animations baked into a USDZ file using the element's play() method and playbackRate property. Positive rates play forward, negative rates reverse, and the magnitude scales speed.

    • 10:52 - AR and spatial
    • Wrap the model in an tag to enable AR Quick Look on iOS and iPadOS. On visionOS the model element renders stereoscopically and can power immersive website environments that place visitors inside a 3D scene.

    • 12:29 - Optimize assets for production
    • Use usdcrush to shrink USDZ files (often by 4x) with no perceived quality loss, and usdrecord to render thumbnails or fallback images from a 3D file. Both ship with macOS as part of the broader USD tool suite.

    • 14:53 - Next steps
    • Generate a 3D model from images or a prompt, add a tag to your site, optimize assets with usdcrush, and join the W3C Immersive Web Community Group to help shape the spec.

Developer Footer

  • 비디오
  • WWDC26
  • HTML 모델 요소 시작하기
  • 메뉴 열기 메뉴 닫기
    • iOS
    • iPadOS
    • macOS
    • tvOS
    • visionOS
    • watchOS
    메뉴 열기 메뉴 닫기
    • Swift
    • SwiftUI
    • Swift Playground
    • TestFlight
    • Xcode
    • Xcode Cloud
    • SF Symbols
    메뉴 열기 메뉴 닫기
    • 손쉬운 사용
    • 액세서리
    • Apple Intelligence
    • 앱 확장 프로그램
    • App Store
    • 오디오 및 비디오(영문)
    • 증강 현실
    • 디자인
    • 배포
    • 교육
    • 서체(영문)
    • 게임
    • 건강 및 피트니스
    • 앱 내 구입
    • 현지화
    • 지도 및 위치
    • 머신 러닝 및 AI
    • 오픈 소스(영문)
    • 보안
    • Safari 및 웹(영문)
    메뉴 열기 메뉴 닫기
    • 문서(영문)
    • 튜토리얼
    • 다운로드
    • 포럼(영문)
    • 비디오
    메뉴 열기 메뉴 닫기
    • 지원 문서
    • 문의하기
    • 버그 보고
    • 시스템 상태(영문)
    메뉴 열기 메뉴 닫기
    • Apple Developer
    • App Store Connect
    • 인증서, 식별자 및 프로파일(영문)
    • 피드백 지원
    메뉴 열기 메뉴 닫기
    • Apple Developer Program
    • Apple Developer Enterprise Program
    • App Store Small Business Program
    • MFi Program(영문)
    • Mini Apps Partner Program
    • News Partner Program(영문)
    • Video Partner Program(영문)
    • Security Bounty Program(영문)
    • Security Research Device Program(영문)
    메뉴 열기 메뉴 닫기
    • Apple과의 만남
    • Apple Developer Center
    • App Store 어워드(영문)
    • Apple 디자인 어워드
    • Apple Developer Academy(영문)
    • WWDC
    최신 뉴스 읽기.
    Apple Developer 앱 받기.
    Copyright © 2026 Apple Inc. 모든 권리 보유.
    약관 개인정보 처리방침 계약 및 지침