포물선 운동
각도를 바꾸면 얼마나 멀리 날아갈까?
직접 만지고 돌려보면서 배우는 물리 실험실 · 별을 모두 모아보세요!
각도를 바꾸면 얼마나 멀리 날아갈까?
무거운 공이 가벼운 공을 치면 어떻게 될까?
왜 처음보다 더 높이 못 올라갈까?
달은 왜 떨어지지 않을까?
직접 운전하며 배우는 가속도·마찰·제동거리!
우주엔 마찰이 없다! 관성을 느끼며 게이트 통과하기
200톤 기차를 정지선에 딱 맞춰 세울 수 있을까?
AI 물리 선생님을 쓰려면 Google AI Studio에서 발급받은 API 키가 필요합니다. 키는 이 컴퓨터의 브라우저에만 저장되며 어디로도 전송되지 않습니다.
획득한 ⭐ 기록은 이 브라우저에만 저장됩니다. 이름·나이 같은 개인정보는 저장하지 않습니다.
Three.js(쓰리제이에스)는 웹브라우저 안에서 3D 그림을 그릴 수 있게 해주는 무료 도구 상자예요. 누구나 가져다 쓸 수 있게 공개되어 있는 자바스크립트 라이브러리(= 미리 만들어 둔 기능 모음)랍니다. 게임 프로그램을 따로 설치하지 않아도, 인터넷 창만 있으면 3D가 움직이는 이유가 바로 이것 때문이에요.
브라우저 안에는 WebGL이라는 기능이 들어 있어요. 이건 컴퓨터의 그래픽카드(GPU)에게 "여기에 삼각형을 몇 백만 개 그려줘!" 하고 직접 부탁하는 통로예요. 그런데 WebGL에게 말을 걸려면 아주 복잡한 명령이 필요합니다. Three.js는 그 어려운 부분을 대신 처리해 주는 통역사 같은 역할을 해요.
내가 쓴 코드 → Three.js → WebGL → 그래픽카드(GPU) → 화면
연극 무대를 만든다고 생각하면 쉬워요.
// Three.js 코드는 이렇게 다섯 줄이면 시작돼요 const scene = new THREE.Scene(); // ① 무대 const camera = new THREE.PerspectiveCamera(); // ② 카메라 const renderer = new THREE.WebGLRenderer(); // ③ 화가 scene.add(new THREE.DirectionalLight()); // ④ 조명 scene.add(new THREE.Mesh(geometry, material)); // ⑤ 물체
사실 3D 화면은 아주 빠르게 넘기는 그림책이에요. 1초에 약 60번, 물체의 위치를 조금씩 바꾼 뒤 다시 그리는 것을 반복합니다(애니메이션 루프). 이 웹앱은 여기에 더해서, 물리 계산은 정확히 1/120초 간격으로 따로 계산해요. 그래야 빠른 컴퓨터든 느린 컴퓨터든 실험 결과가 똑같이 나오거든요.
CylinderGeometry, SphereGeometryLine + LineDashedMaterialSphereGeometry + 임팩트 RingGeometryCatmullRomCurve3 + TubeGeometryPoints (점 수천 개를 한 번에)Sprite + 직접 그린 CanvasTextureBoxGeometry + 직접 만든 도로 BufferGeometryConeGeometry, TorusGeometry, ArrowHelperInstancedMesh (한 번에 찍어내기)CanvasTexture 하늘돔 + shadowMapOrbitControls공식 홈페이지 threejs.org 에 들어가면 수백 개의 예제를 직접 만져볼 수 있어요. 이 웹앱은 설치 없이 CDN(인터넷에 올라와 있는 파일을 바로 불러오는 방법)으로 Three.js r166 버전을 사용하고 있습니다.