A brutalist portfolio site featuring ascii art, infinite scroll contact banner, and an interactive 3D head scan.
- HTML + CSS
- JavaScript (Vanilla)
- Three.js (3D rendering)
- GLTFLoader (3D model loading)
- OrbitControls (3D interaction)
- Monospaced font typography
- Minimal, high-contrast design
- Interactive 3D model created using Polycam
- Auto-rotation with pause on interaction
- Orbit controls for user manipulation
- Custom positioning and camera angles
- Click to trigger site-wide color inversion
- Seamless infinite scroll animation
- Monospaced typography
- No JavaScript needed for animation
- Smooth 3D model auto-rotation
- Color inversion on model click
- Infinite scroll contact banner
- Hover state interactions
- Mobile-friendly layout
- Responsive 3D viewer
- Adaptive typography
- Maintained brutalist aesthetic across devices
- Clone repo
- Add your 3D model to
/model/3dscan.glb
- Open
index.html
in browser - Edit CSS for style adjustments
- Modify
model.js
for 3D viewer changes - Note: you may have to adjust the initial camera position and scaling in
model.js
- Three.js implementation
- 3D model integration
- Custom animation timing
- Brutalist design principles
- CSS animation techniques
- Performance optimization
- 3D scan created with Polycam
- Three.js for 3D rendering
- Inspired by my friend Lachies sites: https://lachie.co/