Feather
Lightweight 3D C++ OpenGL engine, with physics powered by XPBD
Install / Use
/learn @BarthPaleologue/FeatherREADME
Feather
Feather is a small OpenGL engine written in C++ developed for fun and learning purposes. The API is loosely inspired by BabylonJS.

Features
General
- Blinn-Phong shading
- PBR shading
- Normal mapping
- Shadow Mapping
- CPU mouse picking
- Post-processing effects
- Compute shaders
- Raw
.objfile loading - Up to 128 point lights by default
- ImGui integration
Physics
The entire code for the physics engine is available in the core/physics directory. It is based on the Position-Based Dynamics (PBD) method, and includes the following features:
- XPBD soft body simulation
- HPBD multigrid solver for XPBD
- Distance constraints
- Fast and Dihedral bending constraints
- Tetrahedral volume constraints
- Global volume constraints
- Collision constraints with friction
- Collision LoD using HPBD
- Constraints and bounding boxes helpers
A detailed report is available in the root directory of the project.
Main controls
- Mouse drag: Rotate the camera
- Ctrl + Mouse drag: Pan the camera
- Mouse wheel: Zoom in/out
- Shift + Mouse drag: lock rotation to pick an object
How to build
Dependencies
Feather uses GLFW3 for window management and input, as well as GLM for math operations.
They can be installed on any Debian-based system using the following command:
sudo apt install libglfw3-dev libglm-dev
CMake
Feather uses CMake as its build system. To build the project, you can use the following commands:
mkdir build
cd build
cmake ..
make

Related Skills
node-connect
346.8kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
107.6kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
346.8kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
346.8kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
