add: license + v1 archi
This commit is contained in:
@@ -0,0 +1,13 @@
|
|||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2026 La Fabrik Durable
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software to use, copy, modify, merge, publish, distribute, sublicense,
|
||||||
|
and/or sell copies of the software, and to permit persons to whom the software
|
||||||
|
is furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of this software.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND.
|
||||||
@@ -2,20 +2,108 @@
|
|||||||
|
|
||||||
An interactive 3D web experience for La Fabrik Durable — a low-tech repair and transformation service in Altera, a post-capitalist city rebuilt in 2039. Players step into the role of a newly onboarded technician and experience a day at the service: repairing an e-bike, fixing a power grid, and upgrading a vertical farm's irrigation system.
|
An interactive 3D web experience for La Fabrik Durable — a low-tech repair and transformation service in Altera, a post-capitalist city rebuilt in 2039. Players step into the role of a newly onboarded technician and experience a day at the service: repairing an e-bike, fixing a power grid, and upgrading a vertical farm's irrigation system.
|
||||||
|
|
||||||
Built with React 19, TypeScript, and Vite.
|
## 📦 Tech Stack
|
||||||
|
|
||||||
## 🔗 Ressources
|
### Build & Language
|
||||||
|
| Package | Doc |
|
||||||
| Techno | Doc |
|
|
||||||
|--------|-----|
|
|--------|-----|
|
||||||
| Three.js | https://threejs.org/docs/ |
|
| [TypeScript](https://www.typescriptlang.org/docs/) | https://www.typescriptlang.org/docs/ |
|
||||||
| React Three Fiber | https://docs.pmnd.rs/react-three-fiber/getting-started/introduction |
|
| [React](https://react.dev/learn) | https://react.dev/learn |
|
||||||
| Drei | https://drei.docs.pmnd.rs/getting-started/introduction |
|
| [Vite](https://vite.dev/guide/) | https://vite.dev/guide/ |
|
||||||
| Rapier (physique) | https://rapier.rs/docs/ |
|
| [ESLint](https://eslint.org/docs/latest/) | https://eslint.org/docs/latest/ |
|
||||||
| R3F Rapier | https://github.com/pmndrs/react-three-rapier |
|
| [Prettier](https://prettier.io/docs/) | https://prettier.io/docs/ |
|
||||||
| Zustand | https://zustand.docs.pmnd.rs/learn/getting-started/introduction |
|
|
||||||
| GSAP | https://gsap.com/docs/v3/Installation/ |
|
### 3D Engine
|
||||||
| Postprocessing | https://github.com/pmndrs/postprocessing |
|
| Package | Doc |
|
||||||
| r3f-perf | https://github.com/utsuboco/r3f-perf |
|
|--------|-----|
|
||||||
| Vite | https://vite.dev/guide/ |
|
| [Three.js](https://threejs.org/docs/) | https://threejs.org/docs/ |
|
||||||
| AnimationMixer | https://threejs.org/docs/#api/en/animation/AnimationMixer |
|
| [@react-three/fiber](https://docs.pmnd.rs/react-three-fiber/getting-started/introduction) | https://docs.pmnd.rs/react-three-fiber |
|
||||||
|
| [@react-three/drei](https://pmndrs.github.io/drei) | https://pmndrs.github.io/drei |
|
||||||
|
| [@react-three/rapier](https://rapier.rs/docs/) | https://rapier.rs/docs/user_guides/javascript/ |
|
||||||
|
| [@react-three/postprocessing](https://github.com/pmndrs/postprocessing) | https://github.com/pmndrs/postprocessing |
|
||||||
|
| [GSAP](https://gsap.com/docs/v3/Installation/) | https://gsap.com/docs/v3/ |
|
||||||
|
|
||||||
|
### State
|
||||||
|
| Package | Doc |
|
||||||
|
|--------|-----|
|
||||||
|
| [Zustand](https://zustand.docs.pmnd.rs/) | https://zustand.docs.pmnd.rs/ |
|
||||||
|
|
||||||
|
### Performance & Effects
|
||||||
|
| Package | Doc |
|
||||||
|
|--------|-----|
|
||||||
|
| [r3f-perf](https://github.com/utsuboco/r3f-perf) | https://github.com/utsuboco/r3f-perf |
|
||||||
|
| [AnimationMixer](https://threejs.org/docs/#api/en/animation/AnimationMixer) | https://threejs.org/docs/#api/en/animation/AnimationMixer |
|
||||||
|
|
||||||
|
|
||||||
|
## Architecture
|
||||||
|
la-fabrik/
|
||||||
|
├── public/
|
||||||
|
│ ├── models/
|
||||||
|
│ │ ├── map/
|
||||||
|
│ ├── textures/
|
||||||
|
│ └── sounds/
|
||||||
|
│
|
||||||
|
└── src/
|
||||||
|
├── world/
|
||||||
|
│ ├── Map.tsx
|
||||||
|
│ ├── Environment.tsx
|
||||||
|
│ ├── PostFX.tsx
|
||||||
|
│ ├── zones/
|
||||||
|
│ │ ├── WorkshopZone.tsx
|
||||||
|
│ │ ├── PowerGridZone.tsx
|
||||||
|
│ │ └── FarmZone.tsx
|
||||||
|
│ │ └── SchoolZone.tsx
|
||||||
|
│ │ └── ResidentialZone.tsx
|
||||||
|
│ └── player/
|
||||||
|
│ ├── FPSController.tsx
|
||||||
|
│ └── Crosshair.tsx
|
||||||
|
│
|
||||||
|
├── components/
|
||||||
|
│ ├── 3d/
|
||||||
|
│ │ └── InteractiveObject.tsx
|
||||||
|
│ └── ui/
|
||||||
|
│ ├── NarrativeOverlay.tsx
|
||||||
|
│ ├── MissionHUD.tsx
|
||||||
|
│ ├── MapHUD.tsx
|
||||||
|
│ ├── CinematicBars.tsx
|
||||||
|
│ └── LoadingScreen.tsx
|
||||||
|
│
|
||||||
|
├── stores/
|
||||||
|
│ ├── useExperienceStore.ts
|
||||||
|
│ ├── usePlayerStore.ts
|
||||||
|
│ └── useAudioStore.ts
|
||||||
|
│
|
||||||
|
├── hooks/
|
||||||
|
│ ├── useZoneDetection.ts
|
||||||
|
│ ├── useInteraction.ts
|
||||||
|
│ └── useAudio.ts
|
||||||
|
│ ├── useCinematic.ts
|
||||||
|
│ └── useLOD.ts
|
||||||
|
│
|
||||||
|
├── data/
|
||||||
|
│ ├── zones.ts
|
||||||
|
│ └── dialogues.ts
|
||||||
|
│
|
||||||
|
├── shaders/
|
||||||
|
│
|
||||||
|
├── utils/
|
||||||
|
│ ├── debug.js
|
||||||
|
│ ├── sizes.js
|
||||||
|
│ ├── time.js
|
||||||
|
│ └── loadingscreen.js
|
||||||
|
│
|
||||||
|
├── App.tsx
|
||||||
|
└── main.tsx
|
||||||
|
|
||||||
|
## 🚀 Getting Started
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git clone https://github.com/La-Fabrik-Durable/La-Fabrik.git
|
||||||
|
cd La-Fabrik
|
||||||
|
npm install
|
||||||
|
npm run dev
|
||||||
|
```
|
||||||
|
|
||||||
|
## 📜 License
|
||||||
|
|
||||||
|
See [LICENSE](./LICENSE) file.
|
||||||
Reference in New Issue
Block a user