A simple and easy-to-use 3D engine for the LÖVE 2D game framework.
g3d is a simple 3D engine built for the LÖVE 2D game framework. It extends LÖVE's capabilities to support 3D model rendering, camera controls, and basic 3D interactions, allowing developers to create 3D games and demos within the familiar LÖVE environment. It solves the problem of adding 3D functionality to a primarily 2D-focused framework with minimal complexity.
LÖVE developers who want to incorporate 3D elements into their games without switching to a full 3D engine, and hobbyist game developers looking for a lightweight, Lua-based 3D solution.
Developers choose g3d because it integrates seamlessly with LÖVE, offering a straightforward API that reduces the learning curve for 3D development. Its simplicity and focus on essential features make it ideal for prototyping and small-scale 3D projects within the LÖVE ecosystem.
Simple and easy 3D engine for LÖVE.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
The Earth and Moon demo is under 30 lines of code, demonstrating how quickly 3D scenes can be set up with intuitive functions like g3d.newModel.
Built specifically for LÖVE, it requires minimal setup—just add the folder and require it, making it easy to incorporate into existing LÖVE projects without engine switching.
Includes core functionalities such as .obj model loading, first-person camera controls, and support for both perspective and orthographic projections, covering basic 3D needs out of the box.
Allows developers to create and apply custom vertex and fragment shaders, providing flexibility for visual effects beyond the built-in capabilities, as highlighted in the features list.
Only supports .obj files, excluding other popular formats like .fbx or .gltf, which may require conversion for assets from modern 3D tools and pipelines.
Lacks advanced 3D engine features such as skeletal animations, dynamic lighting systems, or particle effects, restricting it to simpler 3D applications as implied by its lightweight philosophy.
Designed for lightweight use, it may struggle with high-polygon models or complex scenes, as its focus on simplicity over optimization could lead to frame rate drops in demanding projects.