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/rapierfor 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:3000in 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/rapierfor real-time debugging.
Created with creativity and precision, leveraging the power of React Three Fiber, Ecctrl, and Three.js.