public 3d-motion repository
portfolio-itom
// ITomPoland/portfolio-itom
An immersive, interactive 3D Web Developer portfolio built by Tomasz 'ITom' Szmajda using React Three Fiber, GSAP, and advanced WebGL rendering architecture.
🎨 ITom Dev | Interactive 3D WebGL Portfolio
Welcome to the open-source repository of Tomasz "ITom" Szmajda's interactive 3D Web Developer portfolio. This project pushes the limits of modern web technologies by blending spatial WebGL computing, complex React ecosystems, and highly optimized frontend engineering.
[!NOTE] Ensure hardware acceleration is enabled in your browser settings to experience the smooth 60 FPS high-tier rendering of this application.
🚀 Key Performance Architectures (2026 Standards)
This application is strictly optimized for cross-device operability, achieving zero lag spikes even on mobile processors through several bespoke architectural implementations:
- Invisible Semantic SEO Fallback: Bypasses WebGL canvas SEO limitations via strategic
sr-only-seoindexing DOM injections, rendering fully visible semantic trees to native search-engine crawlers without mounting heavy bundles. - Asynchronous Shader Compilation: Enforces
gl.compileAsyncduring the Preloading phase inside a hiddenRoomWarmupSuspense boundary. This allows Three.js to pre-compile complex materials asynchronously without blocking the main React update thread. - Baked Global Tinting & Lighing Extraction: Replaced real-time WebGL shadow maps and infinite light rays with baked-in global textures (
apply_global_tint.js), dropping the GPU compute overhead entirely while maintaining visual depth. - DOM Mutation Bypassing: Critical animation properties (like SVG preloader states tracking 130+ concurrent HTTP texture requests) write directly to the
ref.current.style, intentionally bypassing React’ssetStaterender cycles to conserve CPU. - Adaptive Device Tiering: Auto-detects
navigator.deviceMemory, hardware concurrency, and viewport sizes to scale WebGL resolutions (dpr), antialiasing algorithms, and texture loading strictness on the fly.
🏗️ 3D Scene Architecture
graph TD;
A[App.jsx] --> B[SceneProvider Context];
A --> C[canvas];
A --> D[2D DOM / SEO / HUD];
C --> E[Experience.jsx];
E --> F[RoomWarmup Pre-compiler];
E --> G[Infinite Corridor Manager];
G --> H[Gallery Room];
G --> I[Studio Room];
G --> J[Contact Room];
G --> K[About Room];
H -.-> L{useTexture & useGLTF};
L -.-> M(GPU Memory);
🛠️ Local Development Setup
To run this application natively on your local machine:
-
Clone the repository:
git clone https://github.com/ITomPoland/portfolio-itom.git cd portfolio-itom -
Install dependencies: Make sure you are on Node.js v20+.
npm install -
Start the local Dev Server:
npm run dev
[!IMPORTANT] Since this project heavily utilizes
vite-plugin-compressionand hundreds of high-res textures, your initial local load might take a few seconds as the dev-server buffers asset delivery. For performance testing, always runnpm run build && npm run preview.
🤝 Contributing & Feedback
All PRs improving the shader physics, 3D math logic, or component memoization runtimes are welcome. Please refer to our new .github Issue and Pull Request templates when submitting!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingRoom) - Commit your Changes (
git commit -m 'feat: Added realistic liquid simulation to Contact Room') - Push to the Branch (
git push origin feature/AmazingRoom) - Open a Pull Request
Designed and Developed by Tomasz Szmajda (ITom Dev).
[INFO] 5 topics link to curated motion topic pages.