A 3D engine based on OpenGL and pygame for beginners
Project description
soup3D
A 3D engine based on OpenGL and pygame that is easy for beginners to learn, and can be used for 3D game development, data visualization, 3D graphics rendering, and other development tasks.
Installation
If your python environment includes pip, you can install it using the following command:
pip install soup3D
Quick Start
After installation, you can try this code:
import soup3D # 3D rendering library
import pygame # pygame window library for displaying soup3D rendered images
if __name__ == '__main__':
pygame.init() # Initialize pygame
pygame.display.set_caption("soup3D") # Set pygame window title
pygame.display.set_mode((1920, 1080), pygame.DOUBLEBUF | pygame.OPENGL) # Configure window mode
soup3D.init(bg_color=(1, 1, 1), width=1920, height=1080) # Initialize soup3D
soup3D.light.ambient(1, 1, 1) # Set ambient light to maximum
surface = soup3D.shader.AutoSP(soup3D.shader.MixChannel((1, 1), 1, 0.5, 0)) # Create orange surface shader
face = soup3D.Face( # Create a right triangle
soup3D.TRIANGLE_L,
surface,
(
(0, 0, 0, 0, 0), # (x, y, z, u, v)
(1, 0, 0, 0, 0),
(0, 1, 0, 0, 0)
)
)
model = soup3D.Model(0, 0, -5, face) # Add triangle to model
model.show() # Display model
running = True # Running status
while running: # Main loop
soup3D.update() # Update soup3D
pygame.display.flip() # Refresh pygame screen
for event in pygame.event.get(): # Iterate through all events
if event.type == pygame.QUIT: # Detect window closing event
pygame.quit() # Close window
running = False # End loop
If the environment is properly configured, you will see an orange triangle in the window after running this code.
Contributing
Due to limited individual development capabilities, we welcome like-minded people to develop this project together. But for better code management, please first understand our development goals and code standards.
-
Development Goals
The purpose of developing this project is to create a 3D rendering engine that is easy to use while also having professional capabilities. We want Python developers to be able to develop 3D applications in a way that suits their habits.
-
Code Standards
Following these standards will increase the likelihood of your code being accepted:
-
All functions, classes, and class methods must have
Googlestyledocstringformat comments -
Test your code before submitting a PR. Please refer to the
Function Testingsection below for testing methods -
Confirm requirements with the author before developing any module
-
New features should尽量 not affect the calling methods of existing features
-
-
Function Testing
After development, you can test functionality in the following way:
-
Create a test environment with the following structure
-
Edit test code in
.../project/test.pyto test the functions you've written -
Run
.../project/test.py. If it runs successfully, the test is successful
-
More Information
This library has many more methods for you to use. For more information, please refer to the Help Document
License
This project is licensed under the MIT License, see the LICENSE file for details.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file soup3d-4.3.3.tar.gz.
File metadata
- Download URL: soup3d-4.3.3.tar.gz
- Upload date:
- Size: 91.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4be710ed3de35565114ebca66ada47955e6daeb6e7b01a776f5934187354c594
|
|
| MD5 |
6f6f2ea501021befcdeb39ce18ce65d6
|
|
| BLAKE2b-256 |
c051d9fe062d7307bafa171f3d82d97b4dcbe86fb2e0ecbaf10a273f9aee6231
|
File details
Details for the file soup3d-4.3.3-py3-none-any.whl.
File metadata
- Download URL: soup3d-4.3.3-py3-none-any.whl
- Upload date:
- Size: 62.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5cc7255bc011335e2b5df80e188b7d0a8a10ccf4028a0360504d15d86ad87a21
|
|
| MD5 |
f11bb304162753abca445055c8085c86
|
|
| BLAKE2b-256 |
e3e69bc673009c8763994181b8a7cb44500a69f2ecd37475d2df5936acb46f29
|