Focus-Ecctrl Level Physics is an interactive 3D web application built with React and Three.js, featuring a controllable character, dynamic levels, and realistic physics simulation. It provides an immersive experience with customizable environments and smooth animations.
-
🕹️ Character: A fully animated and controllable 3D character with:
- Walking, running, and jumping animations
- Physics-based movement
- Customizable actions
-
🌍 Level: A dynamic 3D environment with:
- Preloaded GLTF models
- Static physics-based objects
- Optimized rendering for performance
-
🎭 Stage: The main 3D scene setup, including:
- Lighting and environment presets
- Physics simulation
- Keyboard controls for interaction
- 🕹️ Controllable Character: Smooth animations and physics-based movement.
- 🌍 Dynamic Levels: Preloaded and optimized 3D environments.
- 🎮 Keyboard Controls: Configurable key mappings for movement and actions.
- ⚡ Realistic Physics: Powered by
@react-three/rapier
for accurate simulations. - 📊 Performance Optimization: Integrated with memoization and lazy loading.
The project leverages the following technologies:
- ⚛️ React: A JavaScript library for building user interfaces.
- 🎨 React Three Fiber: A React renderer for Three.js.
- 🌌 Three.js: A 3D library for rendering and animating 3D graphics.
- 🧠 @react-three/drei: Useful helpers for React Three Fiber.
- ⚙️ @react-three/rapier: A physics engine for realistic simulations.
- 🖋️ Ecctrl: For character control and animation.
Follow these steps to set up and run the project:
-
Clone the repository:
git clone https://github.com/L3DW/Focus-Ecctrl_Level_Physics.git cd Focus-Ecctrl_Level_Physics
-
Install dependencies: Ensure you have Node.js installed, then run:
npm install
-
Run the development server: Start the app locally:
npm start
-
Open the app:
- Navigate to
http://localhost:3000
in your browser.
- Navigate to
-
Build for production (optional): To create a production build, run:
npm run build
- 🧠 Memoized Components: Reduces unnecessary re-renders.
- 🎥 Lazy Loading: Optimized resource loading for 3D models.
- 📊 Physics Debugging: Integrated with
@react-three/rapier
for real-time debugging.
Created with creativity and precision, leveraging the power of React Three Fiber, Ecctrl, and Three.js.