Scythe
SCYTHE is a lightweight, C#-based game engine focused on modifiability and rapid iteration using Raylib.
A clean and customizable 3D gizmo tool for raylib. Designed with an Immediate Mode style for simplicity, it requires ju…
git clone https://github.com/cloudofoz/raylib-gizmo.gitcloudofoz/raylib-gizmoNote: This library is in beta. Your feedback and support in enhancing its quality are greatly appreciated!
raylib-gizmo is a clean and customizable 3D gizmo tool for raylib. Designed with an Immediate Mode style for simplicity, it requires just a single function call to draw and interact.
No dependencies other than raylib: just include raygizmo.c/.h in your project, and you're ready to go!
Transform structure, eliminating the need for additional data structures.#include <raygizmo.h>
int main(...) {
Model model;
...
// Initialize a Transform for the gizmo.
// This Transform stores translation, rotation, and scaling values,
// and will be dynamically updated by the gizmo during the program.
Transform gizmoTransform = GizmoIdentity();
while (...) {
...
// Update the model's transform matrix using the gizmo's Transform.
model.transform = GizmoToMatrix(gizmoTransform);
// Draw the model with the updated transformation matrix.
DrawModel(model, Vector3Zero(), 1.0f, WHITE);
// Render a translation + rotation gizmo and handle user input.
// The gizmoTransform will be directly updated by this gizmo.
DrawGizmo3D(GIZMO_TRANSLATE | GIZMO_ROTATE, &gizmoTransform);
...
}
}
1) example_01_getting_started.c
Description: Demonstrates how to integrate and interact with a simple, globally oriented, 3D translation gizmo in a raylib scene.
Description: Demonstrates multiple gizmo modes (translate, rotate, scale, and all combined) with fixed configurations for simplicity.
2) example_03_render_targets.c
Description: Demonstrates four independent 3D viewports, each rendered to its own texture. The main gizmo (in translate mode) becomes active when the mouse hovers over one of the viewports. Note: This example requires raylib built from this commit:
c4d733e.
This project is licensed under the Zlib License. See the LICENSE file for details.
| Operation | Global | Local | View |
|---|---|---|---|
| Translate | Yes | Yes | Yes |
| Rotate | Yes | Yes | Yes |
| Scale | No | Yes | No |
For now, every gizmo with a scaling component will operate in local axis orientation. This means that an object will always be scaled as if no other transforms are applied.
For those who prefer a fully fledged CMake build system, there is a dedicated branch for you:
cmake-support branch
Credits and thanks to @GuvaCode for his work in adding CMake support to raylib-gizmo!
Although many gizmos share a similar appearance, this project drew visual inspiration from the Blender 3D editor. Interacting with Blender's gizmo provided key insights into designing my tool.
more like this
SCYTHE is a lightweight, C#-based game engine focused on modifiability and rapid iteration using Raylib.
Pathfinding library for calculating all node pairs' shortest paths in an unweighted undirected graph.
.Net 10 (.Net 8+) webassembly starter project using raylib-cs nuget 7.0.2 and raylib 5.5
search projects, people, and tags