Wawa Sensei logo
LoginEnroll now

Configuraci贸n

En esta lecci贸n configuraremos nuestro entorno con todas las herramientas que necesitamos para comenzar a construir nuestra primera aplicaci贸n 3D. Luego crearemos nuestro primer proyecto en React e instalaremos las dependencias que necesitamos.

No importa tu sistema operativo. Yo estoy usando una Mac, pero puedes seguir en Windows o Linux tambi茅n.

Visual Studio Code

Puedes usar cualquier editor de c贸digo que desees, pero te recomiendo usar Visual Studio Code. Es gratuito, de c贸digo abierto y tiene muchas extensiones geniales.

Puedes descargarlo aqu铆: https://code.visualstudio.com/

Si eliges usar Visual Studio Code, aqu铆 hay algunas extensiones que recomiendo:

  • ESLint: Utilidad de linting para JavaScript y JSX. Te mostrar谩 errores y advertencias en tu c贸digo.
  • Prettier: Formateador de c贸digo. Formatear谩 tu c贸digo autom谩ticamente cuando guardes seg煤n tus configuraciones.
  • Copilot: Programador en pareja con AI. Te ayudar谩 a escribir c贸digo m谩s r谩pido sugiriendo l铆neas de c贸digo seg煤n tu contexto.

Node.js

Node.js es un entorno de ejecuci贸n de JavaScript construido sobre el motor V8 de JavaScript de Chrome. Te permite ejecutar c贸digo JavaScript fuera del navegador. En nuestro caso, lo usaremos para ejecutar el servidor de desarrollo de nuestros proyectos.

Puedes descargarlo aqu铆: https://nodejs.org/en/download/

Descarga la versi贸n LTS. Es la versi贸n m谩s estable.

Yarn

Yarn es un gestor de paquetes para JavaScript. Es similar a npm, pero m谩s r谩pido y seguro.

Puedes descargarlo aqu铆: https://classic.yarnpkg.com/en/docs/install

Lo utilizaremos para instalar las librer铆as que necesitamos para nuestros proyectos. Por ejemplo Three.js, React Three Fiber, etc...

Vite

Vite es una herramienta de construcci贸n para proyectos web modernos. Es r谩pida, ligera y f谩cil de usar.

No requiere instalaci贸n.

Para crear un nuevo proyecto en React, abre tu terminal (en Visual Studio Code se abre desde el men煤 Terminal > New Terminal) y ejecuta el siguiente comando:

yarn create vite

Luego, escribe el nombre de tu proyecto, presiona enter y con las flechas de tu teclado elige React como framework y JavaScript como lenguaje.

Framework selection with Vite

Deber铆as ver algo como esto:

Project successfully created

Ahora, en Visual Studio Code, abre la carpeta del proyecto haciendo clic en Open Folder y seleccionando la carpeta que acabas de crear.

En la terminal, ejecuta los siguientes comandos para instalar las dependencias y comenzar el servidor de desarrollo de tu proyecto:

yarn
yarn dev

Tu terminal deber铆a proporcionarte una URL local para acceder a tu proyecto:

Development server started

脕brela en tu navegador o usa el atajo cmd + click en Mac o ctrl + click en Windows/Linux sobre la URL y deber铆as ver la p谩gina predeterminada de Vite React:

Default Vite React page

Ahora tenemos un proyecto de React en funcionamiento. Es hora de instalar las librer铆as que necesitamos.

React Three Fiber

Para agregar r3f a nuestro proyecto, ejecuta el siguiente comando en tu terminal:

yarn add three @types/three @react-three/fiber

Si tu terminal a煤n est谩 ejecutando el servidor de desarrollo, det茅nlo presionando cmd + c en Mac o ctrl + c en Windows/Linux antes de ejecutar el comando anterior.

Esto instalar谩 three y react-three-fiber como dependencias de nuestro proyecto.

Una vez hecho, elimina el archivo App.css y reemplaza el contenido de index.css con lo siguiente:

#root {
  width: 100vw;
  height: 100vh;
}

body {
  margin: 0;
}

Esto har谩 que nuestro canvas llene toda la pantalla.

Reemplaza el contenido de App.jsx con lo siguiente:

import { Canvas } from "@react-three/fiber";

function App() {
  return (
    <Canvas>
      <mesh>
        <boxGeometry />
        <meshNormalMaterial />
      </mesh>
    </Canvas>
  );
}

export default App;

Un componente Canvas es la ra铆z de cada aplicaci贸n r3f. Es un componente de React que crea un contexto WebGL y una escena Three.js.

Dentro del componente Canvas tenemos un componente mesh. Un mesh es un objeto que se puede renderizar en la escena. Est谩 hecho de una geometry y un material.

No te preocupes si no entiendes lo que es una geometry o un material, lo cubriremos en las pr贸ximas lecciones. Solo debes saber que este c贸digo renderizar谩 un cubo en el centro de la pantalla.

Luego ejecuta yarn dev nuevamente para iniciar el servidor de desarrollo con las nuevas dependencias.

Deber铆as ver un cuadrado en el centro de la pantalla:

First r3f scene

Pero parece 2D, no 3D, esto se debe a que el cube est谩 frente a la camera.

Podemos mover ligeramente la c谩mara hacia arriba, a la derecha y hacia atr谩s agregando la propiedad camera al componente Canvas:

<Canvas camera={{ position: [3, 3, 3] }}>

Cubriremos c贸mo funciona el posicionamiento en las pr贸ximas lecciones.

Ahora el cubo es visible en 3D:

First r3f scene camera moved

Versiones 鈿狅笍

Three.js y React Three Fiber son bibliotecas que se actualizan frecuentemente. Esto significa que el c贸digo que ves en este curso u otros tutoriales podr铆a comportarse de manera diferente si no est谩s usando la misma versi贸n.

En el momento de escribir este curso, Three.js est谩 en su transici贸n hacia WebGPU, lo cual es propenso a cambios dr谩sticos o cambios en la forma en que se renderizan las cosas.

Usando el starter pack proporcionado con este curso, te asegurar谩s de tener las mismas versiones que yo, pero es importante saber c贸mo verificar las versiones de tus dependencias.

Abre el archivo package.json y busca los objetos dependencies y devDependencies:

{
  "name": "react-three-fiber-starter",
  "private": true,
  "version": "0.0.0",
  "type": "module",
  "scripts": {
    "dev": "vite",
    "build": "vite build",
    "lint": "eslint src --ext js,jsx --report-unused-disable-directives --max-warnings 0",
    "preview": "vite preview"
  },
  "dependencies": {
    "@react-three/drei": "^9.74.14",
    "@react-three/fiber": "^8.13.0",
    "@types/three": "^0.152.1",
    "react": "^18.2.0",
    "react-dom": "^18.2.0",
    "three": "^0.153.0"
  },
  "devDependencies": {
    "@types/react": "^18.0.37",
    "@types/react-dom": "^18.0.11",
    "@vitejs/plugin-react": "^4.0.0",
    "eslint": "^8.38.0",
    "eslint-plugin-react": "^7.32.2",
    "eslint-plugin-react-hooks": "^4.6.0",
    "eslint-plugin-react-refresh": "^0.3.4",
    "vite": "^4.3.9"
  }
}

Puedes ver que la versi贸n de Three.js es ^0.153.0 y la versi贸n de React Three Fiber es ^8.13.0.

El s铆mbolo ^ significa que estamos usando una versi贸n semver. Esto significa que obtendremos todas las actualizaciones de la biblioteca hasta la pr贸xima versi贸n principal.

Para aprender m谩s sobre Semantic Versioning revisa este enlace: https://devhints.io/semver

ESLint

Si instalaste la extensi贸n ESLint para Visual Studio Code, deber铆as ver algunos errores en tu c贸digo.

Esto se debe a que el archivo de configuraci贸n predeterminado hecho por Vite no incluye reglas de r3f.

Para solucionarlo, abre el archivo .eslintrc.cjs y agrega esta l铆nea al array extends:

"plugin:@react-three/recommended",

Tu archivo completo deber铆a verse as铆:

module.exports = {
  env: { browser: true, es2020: true },
  extends: [
    "eslint:recommended",
    "plugin:react/recommended",
    "plugin:react/jsx-runtime",
    "plugin:react-hooks/recommended",
    "plugin:@react-three/recommended",
  ],
  parserOptions: { ecmaVersion: "latest", sourceType: "module" },
  settings: { react: { version: "18.2" } },
  plugins: ["react-refresh"],
  rules: {
    "react-refresh/only-export-components": "warn",
  },
};

Ahora, despu茅s de guardar el archivo, los errores deber铆an desaparecer.

Para poder lint nuestro c贸digo, necesitamos instalar el paquete @react-three/eslint-plugin en las dependencias de desarrollo de nuestro proyecto:

yarn add -D @react-three/eslint-plugin

-D instalar谩 el paquete como una dependencia de desarrollo. (Ya que no se necesita en la compilaci贸n final de producci贸n)

Drei

Drei es una colecci贸n de 煤tiles helpers y abstracciones sobre r3f.

Lo utilizaremos mucho en las pr贸ximas lecciones para crear experiencias 3D de manera m谩s f谩cil y r谩pida.

Para instalar el paquete drei ejecuta el siguiente comando en tu terminal:

yarn add @react-three/drei

Conclusi贸n

Hemos instalado todas las dependencias que necesitamos para nuestros proyectos y ahora tenemos un proyecto r3f funcionando. Desde aqu铆 empezaremos a crear nuestras experiencias 3D.