Goblin3D 0.0.2
Graphics engine for rendering 3D wireframe on monochromatic displays and TFT LCDs without any dependency required for Arduino platform.
|
Goblin3D is a lightweight, dependency-free graphics engine designed for rendering 3D wireframes on monochromatic displays and TFT LCDs using the Arduino platform. Goblin3D is perfect for embedded systems where resources are limited but 3D rendering capabilities are desired.
Goblin3D demo with ESP32 on TFT and OLED.
This library is also compatible with desktop environments. You can simply integrate it with SLD2, OpenGL, et cetera.
*.obj
Rendering: Goblin3D can render *.obj
files made with Blender directly from SD card.
Goblin3D port with SDL2
Goblin3D
folder to your Arduino libraries directory (typically ~/Documents/Arduino/libraries/
on Windows and Linux, ~/Documents/Arduino/libraries/
on macOS).Goblin3D SDL2 port example is availble on Docker to try it out.
Here’s a simple example of how to use Goblin3D to load an *.obj
file from SD card to TFT ILI9341 display.
Follow these steps to export a 3D scene from Blender in a format compatible with Goblin3D:
Open the Export Menu
In Blender, navigate to the top menu bar and select File > Export > Wavefront (.obj)
. This will allow you to export your 3D scene in the OBJ format, which Goblin3D can read and render as a wireframe.
Configure the Export Settings
Before saving the file, ensure that the Vertex Groups
option is selected. This will export the vertex information needed for wireframe rendering.
Optionally, you can check the Triangulate Faces
option to convert all faces into triangles, which is commonly used in wireframe rendering to ensure consistent results across different models.
Save the OBJ File
When saving, you do not need to include the Material File (*.mtl) since Goblin3D only renders the wireframe, and materials are not required for this purpose. Simply save the OBJ file, and it's ready for use with Goblin3D.
Low-Power Displays
Goblin3D can be used for rendering 3D wireframe graphics on low-power, monochrome displays (e.g., OLEDs, TFTs) in embedded systems, which often lack the resources for full shading or texture mapping.
Wearable Devices
It can be integrated into wearable tech with small displays, such as smartwatches, where simple 3D visualizations like fitness progress or notifications might be shown in wireframe.
3D Modeling Previews
Designers can use Goblin3D to quickly preview 3D models in a wireframe format, providing a sense of object geometry before moving to a more detailed rendering process.
Retro 3D Games
Goblin3D can be used to develop retro-style 3D games on resource-constrained devices, where wireframe graphics give a nostalgic feel while minimizing resource usage.
Contributions and feedback are all welcome to enhance this library. If you encounter any issues, have suggestions for improvements, or would like to contribute code, please do so.
Copyright 2024 - Nathanne Isip
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.