Julian Henry's Blog

🎨 Announcing Three.js Support

19 Jan 2026

I’m excited to announce that this blog now supports interactive 3D graphics using Three.js!

Three.js is a powerful JavaScript library that makes WebGL accessible and easy to use. With it, I can now embed interactive 3D visualizations directly into blog posts to better illustrate complex concepts in mathematics, physics, computer science, and more.

Demo: Rotating Torus

Here’s a simple demo to show what’s possible. This is a real-time 3D scene rendered in your browser:

Pretty cool, right? The torus rotates smoothly, and the sphere in the center gently pulses. All of this is being computed and rendered in real-time using your GPU.

Why Three.js?

Adding 3D visualization capabilities opens up exciting possibilities for future posts:

  • Mathematical Visualizations: Visualizing complex surfaces, transformations, and geometric concepts
  • Physics Simulations: Demonstrating particle systems, fluid dynamics, and other physical phenomena
  • Algorithm Demonstrations: Showing how 3D algorithms work in real-time
  • Interactive Exploration: Allowing readers to interact with and explore concepts hands-on

Technical Details

The implementation uses:

  • Three.js v0.182.0 - The core 3D library loaded via CDN
  • WebGL - Hardware-accelerated 3D graphics in the browser
  • Responsive Design - Scenes automatically resize with the page
  • Custom Scripts - Reusable demo functions for different visualizations

The demo above creates a torus knot with physically-based materials (PBR), multiple light sources, and atmospheric fog effects. The animation runs at 60fps and is fully GPU-accelerated.

What’s Next?

I’m planning to use Three.js in upcoming posts about:

  • Quantum computing visualizations (Bloch spheres, quantum gates)
  • 3D mathematical surfaces and transformations
  • Computer graphics algorithms
  • Physics simulations and numerical methods

Stay tuned for more interactive content!

Source Code

The rotating torus demo is quite simple. Here’s the core of how it works:

// Create torus geometry
const torusGeometry = new THREE.TorusGeometry(1.2, 0.4, 16, 100);
const torusMaterial = new THREE.MeshStandardMaterial({
  color: 0x6366f1,
  metalness: 0.7,
  roughness: 0.3,
});
const torus = new THREE.Mesh(torusGeometry, torusMaterial);

// Animation loop
function animate() {
  requestAnimationFrame(animate);
  torus.rotation.x += 0.005;
  torus.rotation.y += 0.008;
  renderer.render(scene, camera);
}

I’m excited about the new possibilities this brings to the blog. If you have suggestions for visualizations you’d like to see, feel free to reach out!