📄 Published in SoftwareX (Elsevier)
HandWind-Sim: Real-time web-based cloth simulation with gesture-driven wind interaction
🔗 DOI: https://doi.org/10.1016/j.softx.2025.102442
A real-time, web-based cloth simulation framework with gesture-driven wind interaction.
HandWind-Sim is an interactive framework that recognizes user hand gestures via a standard webcam to interact with a 3D cloth simulation in real-time, directly in the browser. This project aims to increase the accessibility of complex physics-based interactions for applications in HCI research, interactive art, and virtual prototyping.
- 🖥️ Real-time Web Simulation: Provides a real-time cloth simulation that runs directly in modern web browsers without any installation required.
- 👋 Intuitive Gesture Interaction: Recognizes user hand movements via a standard webcam and translates them into an intuitive wind vector to control the simulation.
- 📊 Interactive Visual Feedback: Offers a visual feedback system for the generated wind (direction and strength) and the tracked hand position, providing an immersive and understandable experience.
HandWind-Sim utilizes a pipeline architecture where modules for gesture input, physics simulation, and rendering are organically connected.
- Gesture Input & Processing: Extracts hand landmarks from the webcam video stream using MediaPipe and analyzes the movement to generate a wind vector.
- Physics Simulation: Simulates the deformation of the cloth mesh based on the generated wind vector and physical constraints, using a Position-Based Dynamics (PBD) algorithm.
- Rendering & Visualization: Renders all 3D elements, including the deformed cloth, tracked hand, and wind effects, using Three.js to provide visual feedback to the user.
- A modern web browser with WebGL support (e.g., Chrome, Firefox, Edge).
- A webcam.
- Clone this repository:
- Navigate to the project directory:
- Open the
index.htmlfile in your web browser.- For the best experience and to avoid potential browser security issues with local files, it is recommended to use a local server. A simple way is to use an extension like Live Server in Visual Studio Code.


