brunosimon /folio-2025

★ 2,003⑂ 343👁 14▤ 0
JavaScriptCreated 2024-10-12bruno-simon.com
2,003
stars
+0+2+94
343
forks
14
watchers
–
prs
–
issues
0
releases
–
discussions

README

Folio 2025

!image info

 Setup

Create .env file based on .env.example

Download and install Node.js then run this followed commands:

 bash
 Install dependencies
npm install --force

 Serve at localhost:1234
npm run dev

 Build for production in the dist/ directory
npm run build


 Game loop

 0

- Time
- Inputs

 1

- Player:pre-physics (Inputs)

 2

- PhysicalVehicle:pre-physics (Player:pre-physics)

 3

- Physics

 4

- PhysicsWireframe (Physics)
- Objects (Physics)

 5

- PhysicalVehicle:post-physics (Player:pre-physics)

 6

- Player:post-physics (Physics, PhysicalVehicle:post-physics)

 7

- View (Inputs, Player:post-physics)

 8

- Intro
- DayCycles
- YearCycles
- Weather (DayCycles, YearCycles)
- Zones (Player:post-physics)
- VisualVehicle (PhysicalVehicle:post-physics, Inputs, Player:post-physics, View)

 9

- Wind (Weather)
- Lighting (DayCycles, View)
- Tornado (DayCycles, PhysicalVehicle)
- InteractivePoints (Player:post-physics)
- Tracks (VisualVehicle)

 10

- Area++ (View, PhysicalVehicle:post-physics, Player:post-physics, Wind)
- Foliage (VisualVehicle, View)
- Fog (View)
- Reveal (DayCycles)
- Terrain (Tracks)
- Trails (PhysicalVehicle)
- Floor (View)
- Grass (View, Wind)
- Leaves (View, PhysicalVehicle)
- Lightnings (View, Weather)
- RainLines (View, Weather, Reveal)
- Snow (View, Weather, Reveal, Tracks)
- VisualTornado (Tornado)
- WaterSurface (Weather, View)
- Benches (Objects)
- Bricks (Objects)
- ExplosiveCrates (Objects)
- Fences (Objects)
- Lanterns (Objects)
- Whispers (Player)

 13

- InstancedGroup (Objects, [SpecificObjects])

 14

- Audio (View, Objects)
- Notifications
- Title (PhysicalVehicle:post-physics)

 998

- Rendering

 999

- Monitoring

 Blender

 Export

- Mute the palette texture node (loaded and set in Three.js Material directly)
- Use corresponding export presets
- Don't use compression (will be done later)

 Compress

Run npm run compress

Will do the following

 GLB

- Traverses the static/ folder looking for glb files (ignoring already compressed files)
- Compresses embeded texture with etc1s --quality 255 (lossy, GPU friendly)
- Generates new files to preserve originals

 Texture files

- Traverses the static/ folder looking for png|jpg files (ignoring non-model related folders)
- Compresses with default preset to --encode etc1s --qlevel 255 (lossy, GPU friendly) or specific preset according to path
- Generates new files to preserve originals

 UI files

- Traverses the static/ui. folder looking for png|jpg files
- Compresses to WebP

 Resources

- https://gltf-transform.dev/cli
- https://github.com/KhronosGroup/KTX-Software?tab=readme-ov-file
- https://github.khronos.org/KTX-Software/ktxtools/toktx.html

Snapshot: 2026-11-04T14:00:00Z · Data license Apache-2.0 · JSON