# Interactive portfolio built around multiple Three.js scenes

**URL:** <https://discourse.threejs.org/t/interactive-portfolio-built-around-multiple-three-js-scenes/95100>\
**Category:** Showcase\
**Tags:** gltf-loader, loaders, camera, animation, gltf, threejs, shaders, geometry\
**Created:** [October 8, 2026, 4:50am UTC](https://discourse.threejs.org/t/interactive-portfolio-built-around-multiple-three-js-scenes/95100 "2026-10-08T04:50:28Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Henry\_Loiv](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.threejs.org/henry_loiv/32/72297_2.png) [@Henry\_Loiv](https://discourse.threejs.org/u/Henry_Loiv)\
**Post date:** [October 8, 2026, 4:50am UTC](https://discourse.threejs.org/t/interactive-portfolio-built-around-multiple-three-js-scenes/95100/1 "2026-10-08T04:50:28Z")

</div>

![Screenshot 2026-10-08 at 00.29.43](https://canada1.discourse-cdn.com/flex035/uploads/threejs/original/3X/6/6/6658723f6d5c13f29803c132168b6c5d4ef2cc5c.jpeg)

I’ve been working on a portfolio where Three.js is part of the actual navigation and interaction, rather than just a background effect.

It ended up becoming a collection of small experiments:

- a fully interactive / solvable Rubik’s cube
- writing directly into sand
- a 3D character/avatar
- several scene transitions and smaller interactive details

One of the more interesting parts was figuring out how far I could push the visual side without making the site frustrating to actually use, especially on mobile.

I’m still refining some of the performance and interaction details, so I’d be interested in feedback from people here — particularly on mobile behaviour, scene transitions, and anything that feels heavier than it should.

**Site:** [Design by HL – Frontend development and web design](https://dsgnbyhl.com/en/)

Happy to explain how any particular part was built if someone is interested.

---

<div class="post-metadata">

**Author:** ![Tibi](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.threejs.org/tibi/32/61300_2.png) [@Tibi](https://discourse.threejs.org/u/Tibi)\
**Post date:** [October 8, 2026, 8:19am UTC](https://discourse.threejs.org/t/interactive-portfolio-built-around-multiple-three-js-scenes/95100/2 "2026-10-08T08:19:47Z")

</div>

Great job, I like the attention to details, you don’t see this in the AI edge everybody is in a hurry…

---

<div class="post-metadata">

**Author:** ![Henry\_Loiv](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.threejs.org/henry_loiv/32/72297_2.png) [@Henry\_Loiv](https://discourse.threejs.org/u/Henry_Loiv)\
**Post date:** [October 8, 2026, 9:09am UTC](https://discourse.threejs.org/t/interactive-portfolio-built-around-multiple-three-js-scenes/95100/3 "2026-10-08T09:09:14Z")

</div>

Thanks, I really appreciate that! I spent quite a bit of time polishing the small interactions, so it’s very nice to hear that 😄

---

<div class="post-metadata">

**Author:** ![TheNeoVerse](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.threejs.org/theneoverse/32/69974_2.png) [@TheNeoVerse](https://discourse.threejs.org/u/TheNeoVerse)\
**Post date:** [October 10, 2026, 12:41pm UTC](https://discourse.threejs.org/t/interactive-portfolio-built-around-multiple-three-js-scenes/95100/4 "2026-10-10T12:41:14Z")

</div>

that looks cool

---

<div class="post-metadata">

**Author:** ![Henry\_Loiv](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.threejs.org/henry_loiv/32/72297_2.png) [@Henry\_Loiv](https://discourse.threejs.org/u/Henry_Loiv)\
**Post date:** [October 10, 2026, 1:01pm UTC](https://discourse.threejs.org/t/interactive-portfolio-built-around-multiple-three-js-scenes/95100/5 "2026-10-10T13:01:10Z")

</div>

Thank you very much!
