Creating Smoke Particle System using custom shaders and particle effects in ThreeJS

In this article, we’ll explore how to create a dynamic smoke particle system using Three.js. Particle systems are a common technique used in computer graphics to simulate fuzzy phenomena like fire, smoke, or clouds. We’ll be focusing on smoke, with the flexibility to customize it to your liking. Creating the Shaders: To start, we need… Continue reading Creating Smoke Particle System using custom shaders and particle effects in ThreeJS

Cloud Rendering of Three.js Websites

What is Cloud Rendering? Cloud rendering refers to the process of rendering 3D graphics on a remote server rather than on the client’s device. The rendered images or video streams are then delivered to the client in real-time over the internet. This approach allows users with devices that lack the necessary hardware power to experience… Continue reading Cloud Rendering of Three.js Websites

Best Character Controls Add-ons for Three.js

When developing immersive experiences in Three.js, having robust character controls is essential for creating engaging interactions within 3D environments. Whether you’re working on a game, a VR/AR experience, or a simulation, the right character controls can make a significant difference in user experience. Below, we explore some of the best character control add-ons for Three.js… Continue reading Best Character Controls Add-ons for Three.js

How to Optimize and Smoothly Render a Three.js Website

Three.js is a powerful JavaScript library that allows developers to create stunning 3D graphics in the browser. However, rendering complex 3D scenes can be challenging, especially when aiming for smooth performance across various devices. In this article, we’ll explore strategies to optimize your Three.js website, ensuring smooth rendering and a better user experience. 1. Efficiently… Continue reading How to Optimize and Smoothly Render a Three.js Website

DRACOLoader

Draco is an open source library for compressing and decompressing 3D meshes and point clouds. Compressed geometry can be significantly smaller, at the cost of additional decoding time on the client device. A normal glTF file can be converted to a Draco-compressed glTF file using glTF-Pipeline. When using Draco with glTF, an instance of DRACOLoader will be… Continue reading DRACOLoader

ThreeJs SKY

Sky Sky creates a ready to go sky environment for your scenes. Import Sky is an add-on, and therefore must be imported explicitly. See Installation / Addons. import { Sky } from ‘three/addons/objects/Sky.js’; Code Example const sky = new Sky(); sky.scale.setScalar( 450000 ); const phi = MathUtils.degToRad( 90 ); const theta = MathUtils.degToRad( 180 ); const… Continue reading ThreeJs SKY

MISC Timer

Timer This class is an alternative to Clock with a different API design and behavior. The goal is to avoid the conceptual flaws that became apparent in Clock over time. Timer has an .update() method that updates its internal state. That makes it possible to call .getDelta() and .getElapsed() multiple times per simulation step without getting different values. The class uses the… Continue reading MISC Timer

Troika Text for Three.js

Troika Text The troika-three-text package provides high quality text rendering in Three.js scenes, using signed distance fields (SDF) and antialiasing using standard derivatives. Rather than relying on pre-generated SDF textures, this parses font files (.ttf, .otf, .woff) directly using Typr, and generates the SDF atlas for glyphs on-the-fly as they are used. It also handles proper kerning, ligature glyph substitution,… Continue reading Troika Text for Three.js

Audio

In Three.js, audio functionality allows you to integrate sound effects and music into your 3D scenes. This can enhance the immersive experience of your application or game. The Three.js library provides several classes to handle different aspects of audio, including loading audio files, creating audio sources, and controlling audio playback. Code Example // create an… Continue reading Audio

Physics and Interactions in Three.js

Three.js is a powerful JavaScript library for creating 3D graphics on the web, but it doesn’t include built-in physics or complex interaction capabilities. To fill this gap, several frameworks and libraries integrate seamlessly with Three.js, providing robust physics engines and advanced interaction features. This article explores some of the best options available, helping you choose… Continue reading Physics and Interactions in Three.js