Highly Optimized Graphics Math (glm) for C
📚 Documentation
Almost all functions (inline versions) and parameters are documented inside the corresponding headers.
Complete documentation: http://cglm.readthedocs.io
📌 Note for previous versions:
- _dup (duplicate) is changed to _copy. For instance
glm_vec_dup -> glm_vec3_copy
- OpenGL related functions are dropped to make this lib platform/third-party independent
- make sure you have latest version and feel free to report bugs, troubles
- [bugfix] euler angles was implemented in reverse order (extrinsic) it was fixed, now they are intrinsic. Make sure that
you have the latest version
- [major change] by starting v0.4.0, quaternions are stored as [x, y, z, w], it was [w, x, y, z] in v0.3.5 and earlier versions
- [api rename] by starting v0.4.5, glm_simd functions are renamed to glmm_
- [new option] by starting v0.4.5, you can disable alignment requirement, check options in docs.
- [major change] by starting v0.5.0, vec3 functions use glm_vec3_ namespace, it was glm_vec_ until v0.5.0
- [major change] by starting v0.5.1, built-in alignment is removed from vec3 and mat3 types
- [major change] by starting v0.7.3, inline print functions are disabled in release/production mode to eliminate print costs (see options in documentation). Print output also improved. You can disable colors if you need (see documentation)
- [major change] by starting v0.8.3, cglm supports alternative clipspace configuations e.g. Left Handed, Zero-to-One (_zo)...
CGLM_FORCE_DEPTH_ZERO_TO_ONE and CGLM_FORCE_LEFT_HANDED is provided to control clipspace. You should be able to use cglm with Vulkan, DirectX and Metal now... see https://cglm.readthedocs.io/en/latest/opt.html#clipspace-option-s
Reviews
Builds
| toolchain |
public-0.17.0 |
| target |
aarch64-linux-gnu |
| tgt config |
linux_debian_12-gcc_14 |
| timestamp |
2025-12-29 17:52:28 UTC (55:21 minutes ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.17.0 |
| target |
aarch64-linux-gnu |
| tgt config |
linux_debian_12-clang_17 |
| timestamp |
2025-12-29 15:35:33 UTC (03:12:16 hours ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.17.0 |
| target |
aarch64-linux-gnu |
| tgt config |
linux_debian_12-clang_17_libc++ |
| timestamp |
2025-12-29 15:34:51 UTC (03:12:57 hours ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.17.0 |
| target |
aarch64-linux-gnu |
| tgt config |
linux_debian_12-gcc_13 |
| timestamp |
2025-12-29 14:47:02 UTC (04:00:46 hours ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.17.0 |
| target |
x86_64-linux-gnu |
| tgt config |
linux_fedora_40-gcc_14-bindist |
| timestamp |
2025-12-29 08:43:47 UTC (10:04:01 hours ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.17.0 |
| target |
x86_64-linux-gnu |
| tgt config |
linux_debian_12-gcc_14-ndebug_O3 |
| timestamp |
2025-12-28 23:53:47 UTC (18:54:01 hours ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.17.0 |
| target |
x86_64-linux-gnu |
| tgt config |
linux_debian_12-gcc_14-static_O3 |
| timestamp |
2025-12-28 23:53:10 UTC (18:54:39 hours ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.17.0 |
| target |
x86_64-linux-gnu |
| tgt config |
linux_debian_12-gcc_14 |
| timestamp |
2025-12-28 22:24:11 UTC (20:23:37 hours ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.17.0 |
| target |
x86_64-linux-gnu |
| tgt config |
linux_debian_12-gcc_14-O3 |
| timestamp |
2025-12-28 22:22:16 UTC (20:25:32 hours ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.17.0 |
| target |
aarch64-linux-gnu |
| tgt config |
linux_debian_12-gcc_14-O3 |
| timestamp |
2025-12-28 18:10:19 UTC (01 00:37:29 days ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.17.0 |
| target |
aarch64-linux-gnu |
| tgt config |
linux_debian_12-gcc_14-ndebug_O3 |
| timestamp |
2025-12-28 18:08:11 UTC (01 00:39:37 days ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.17.0 |
| target |
aarch64-linux-gnu |
| tgt config |
linux_debian_12-gcc_14-static_O3 |
| timestamp |
2025-12-28 18:06:26 UTC (01 00:41:22 days ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.17.0 |
| target |
x86_64-microsoft-win32-msvc14.3 |
| tgt config |
windows_10-clang_18_llvm_msvc_17.10-static_O2 |
| timestamp |
2025-12-28 09:39:55 UTC (01 09:07:53 days ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.17.0 |
| target |
x86_64-linux-gnu |
| tgt config |
linux_debian_12-gcc_12-bindist |
| timestamp |
2025-12-28 09:19:21 UTC (01 09:28:28 days ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.17.0 |
| target |
x86_64-w64-mingw32 |
| tgt config |
windows_10-gcc_13.2_mingw_w64-static_O2 |
| timestamp |
2025-12-28 08:55:51 UTC (01 09:51:58 days ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.17.0 |
| target |
x86_64-w64-mingw32 |
| tgt config |
windows_10-gcc_13.2_mingw_w64-O2 |
| timestamp |
2025-12-28 08:53:03 UTC (01 09:54:46 days ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.17.0 |
| target |
x86_64-w64-mingw32 |
| tgt config |
windows_10-gcc_13.2_mingw_w64 |
| timestamp |
2025-12-28 08:49:37 UTC (01 09:58:12 days ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.17.0 |
| target |
x86_64-linux-gnu |
| tgt config |
linux_ubuntu_24.04-gcc_13-bindist |
| timestamp |
2025-12-28 08:41:33 UTC (01 10:06:15 days ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.17.0 |
| target |
x86_64-freebsd14.1 |
| tgt config |
freebsd_14-clang_18-O3 |
| timestamp |
2025-12-28 08:27:59 UTC (01 10:19:49 days ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.17.0 |
| target |
x86_64-freebsd14.1 |
| tgt config |
freebsd_14-clang_18 |
| timestamp |
2025-12-28 08:27:24 UTC (01 10:20:25 days ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.17.0 |
| target |
x86_64-freebsd13.3 |
| tgt config |
freebsd_13-clang_17 |
| timestamp |
2025-12-28 08:27:11 UTC (01 10:20:37 days ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.17.0 |
| target |
x86_64-freebsd14.1 |
| tgt config |
freebsd_14-clang_18-static_O3 |
| timestamp |
2025-12-28 08:18:56 UTC (01 10:28:53 days ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.17.0 |
| target |
x86_64-linux-gnu |
| tgt config |
linux_debian_12-clang_17 |
| timestamp |
2025-12-28 08:16:57 UTC (01 10:30:52 days ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.17.0 |
| target |
x86_64-linux-gnu |
| tgt config |
linux_debian_12-clang_17_libc++ |
| timestamp |
2025-12-28 08:13:39 UTC (01 10:34:09 days ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.17.0 |
| target |
x86_64-linux-gnu |
| tgt config |
linux_debian_12-gcc_13.1 |
| timestamp |
2025-12-28 08:11:42 UTC (01 10:36:06 days ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.17.0 |
| target |
aarch64-linux-gnu |
| tgt config |
linux_debian_12-clang_18_libc++-static_O3 |
| timestamp |
2025-12-28 03:14:12 UTC (01 15:33:37 days ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.17.0 |
| target |
aarch64-linux-gnu |
| tgt config |
linux_debian_12-clang_18_libc++ |
| timestamp |
2025-12-28 03:13:42 UTC (01 15:34:06 days ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.17.0 |
| target |
aarch64-linux-gnu |
| tgt config |
linux_debian_12-clang_18_libc++-O3 |
| timestamp |
2025-12-28 03:13:35 UTC (01 15:34:14 days ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.17.0 |
| target |
aarch64-linux-gnu |
| tgt config |
linux_debian_12-clang_18-O3 |
| timestamp |
2025-12-28 03:13:02 UTC (01 15:34:46 days ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.17.0 |
| target |
aarch64-linux-gnu |
| tgt config |
linux_debian_12-clang_18-static_O3 |
| timestamp |
2025-12-28 03:12:31 UTC (01 15:35:18 days ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.17.0 |
| target |
aarch64-linux-gnu |
| tgt config |
linux_debian_12-clang_18 |
| timestamp |
2025-12-28 03:11:51 UTC (01 15:35:57 days ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.17.0 |
| target |
x86_64-microsoft-win32-msvc14.3 |
| tgt config |
windows_10-clang_18_llvm_msvc_17.10 |
| timestamp |
2025-12-27 13:56:59 UTC (02 04:50:50 days ago) |
| result |
warning (update) | log | rebuild |
| toolchain |
public-0.17.0 |
| target |
x86_64-microsoft-win32-msvc14.3 |
| tgt config |
windows_10-clang_18_llvm_msvc_17.10-O2 |
| timestamp |
2025-12-27 13:56:05 UTC (02 04:51:43 days ago) |
| result |
warning (update) | log | rebuild |
| toolchain |
public-0.17.0 |
| target |
x86_64-microsoft-win32-msvc14.3 |
| tgt config |
windows_10-msvc_17.8-O2 |
| timestamp |
2025-12-27 13:25:20 UTC (02 05:22:28 days ago) |
| result |
warning (update) | log | rebuild |
| toolchain |
public-0.17.0 |
| target |
x86_64-microsoft-win32-msvc14.3 |
| tgt config |
windows_10-clang_17_msvc_msvc_17.10 |
| timestamp |
2025-12-27 13:24:56 UTC (02 05:22:52 days ago) |
| result |
warning (update) | log | rebuild |
| toolchain |
public-0.17.0 |
| target |
x86_64-microsoft-win32-msvc14.3 |
| tgt config |
windows_10-msvc_17.8-static_O2 |
| timestamp |
2025-12-27 13:22:58 UTC (02 05:24:51 days ago) |
| result |
warning (update) | log | rebuild |
| toolchain |
public-0.17.0 |
| target |
x86_64-microsoft-win32-msvc14.3 |
| tgt config |
windows_10-msvc_17.8 |
| timestamp |
2025-12-27 13:20:46 UTC (02 05:27:02 days ago) |
| result |
warning (update) | log | rebuild |
| toolchain |
public-0.17.0 |
| target |
x86_64-microsoft-win32-msvc14.3 |
| tgt config |
windows_10-msvc_17.10-static_O2 |
| timestamp |
2025-12-24 12:52:35 UTC (05 05:55:13 days ago) |
| result |
warning (update) | log | rebuild |
| toolchain |
public-0.17.0 |
| target |
x86_64-microsoft-win32-msvc14.3 |
| tgt config |
windows_10-msvc_17.10-O2 |
| timestamp |
2025-12-24 12:51:51 UTC (05 05:55:58 days ago) |
| result |
warning (update) | log | rebuild |
| toolchain |
public-0.17.0 |
| target |
x86_64-microsoft-win32-msvc14.3 |
| tgt config |
windows_10-msvc_17.10 |
| timestamp |
2025-12-24 12:50:46 UTC (05 05:57:02 days ago) |
| result |
warning (update) | log | rebuild |
| toolchain |
public-0.17.0 |
| target |
x86_64-linux-gnu |
| tgt config |
linux_debian_12-clang_18 |
| result |
unbuilt |
| toolchain |
public-0.17.0 |
| target |
x86_64-linux-gnu |
| tgt config |
linux_debian_12-clang_18-O3 |
| result |
unbuilt |
| toolchain |
public-0.17.0 |
| target |
x86_64-linux-gnu |
| tgt config |
linux_debian_12-clang_18-static_O3 |
| result |
unbuilt |
| toolchain |
public-0.17.0 |
| target |
x86_64-linux-gnu |
| tgt config |
linux_debian_12-clang_18_libc++ |
| result |
unbuilt |
| toolchain |
public-0.17.0 |
| target |
x86_64-linux-gnu |
| tgt config |
linux_debian_12-clang_18_libc++-O3 |
| result |
unbuilt |
| toolchain |
public-0.17.0 |
| target |
x86_64-linux-gnu |
| tgt config |
linux_debian_12-clang_18_libc++-static_O3 |
| result |
unbuilt |
| toolchain |
public-0.17.0 |
| target |
x86_64-linux-gnu |
| tgt config |
linux_fedora_39-gcc_13-bindist |
| result |
unbuilt |
| toolchain |
public-0.17.0 |
| target |
x86_64-apple-darwin22.5.0 |
| tgt config |
macos_13-clang_15.0 |
| result |
unbuilt |
| toolchain |
public-0.17.0 |
| target |
x86_64-apple-darwin23.5.0 |
| tgt config |
macos_14-clang_15.0 |
| result |
unbuilt |
| toolchain |
public-0.17.0 |
| target |
x86_64-apple-darwin23.5.0 |
| tgt config |
macos_14-clang_15.0-O3 |
| result |
unbuilt |
| toolchain |
public-0.17.0 |
| target |
x86_64-apple-darwin23.5.0 |
| tgt config |
macos_14-clang_15.0-static_O3 |
| result |
unbuilt |
| toolchain |
public-0.17.0 |
| target |
x86_64-apple-darwin23.5.0 |
| tgt config |
macos_14-gcc_14_homebrew |
| result |
unbuilt |
| toolchain |
public-0.17.0 |
| target |
x86_64-apple-darwin23.5.0 |
| tgt config |
macos_14-gcc_14_homebrew-O3 |
| result |
unbuilt |
| toolchain |
public-0.17.0 |
| target |
x86_64-apple-darwin23.5.0 |
| tgt config |
macos_14-gcc_14_homebrew-static_O3 |
| result |
unbuilt |