Professional 3D Game Engine for Python
Project description
S3D Engine - Professional 3D Game Engine for Python
The easiest way to create stunning 3D games in Python!
S3D Engine combines the performance of C# with the simplicity of Python, giving you professional 3D graphics with minimal code.
🚀 Quick Start
import s3d
# That's it! One line creates a 3D window with a rotating cube
s3d.show("My Amazing Game")
✨ Features
- 🎯 Ultra Simple API - Get 3D graphics running in seconds
- ⚡ High Performance - C# core with Python bindings
- 🎮 Complete Game Engine - ECS, Physics, Audio, Networking
- 🎨 Advanced Graphics - PBR, Shadows, Post-processing, Compute Shaders
- 📱 Cross-Platform - Windows, Linux, macOS support
- 🔧 Professional Tools - Scene editor, Asset pipeline, Profiler
- 📚 Rich Documentation - Comprehensive guides and examples
- 🌟 Modern Architecture - Entity-Component-System design
📦 Installation
pip install s3d-engine
🎮 Examples
Ultra Simple
import s3d
s3d.show("My Game") # One line = 3D window with rotating cube!
Basic Game
import s3d
# Create engine
engine = s3d.Engine.create_opengl("My 3D Game", 1920, 1080)
# Create entities
player = s3d.create_cube("Player")
player.transform.position = s3d.Vector3(0, 1, 0)
camera = s3d.create_camera("MainCamera")
camera.transform.position = s3d.Vector3(0, 2, -5)
light = s3d.create_light("Sun", s3d.LightType.DIRECTIONAL)
# Run the game
engine.run()
FPS Controller
class PlayerController(s3d.ScriptComponent):
def update(self, delta_time):
# Movement
h = s3d.Input.get_axis("Horizontal")
v = s3d.Input.get_axis("Vertical")
move = self.transform.forward * v + self.transform.right * h
self.transform.translate(move * 5.0 * delta_time)
# Mouse look
mouse = s3d.Input.get_mouse_delta()
self.transform.rotate(s3d.Vector3(0, mouse.x * 2.0, 0))
player.add_component(PlayerController)
🎯 Use Cases
- Indie Games - Rapid prototyping to full production
- Game Jams - Get impressive results quickly
- Educational Projects - Learn 3D graphics programming
- Simulations - Scientific and engineering visualizations
- VR/AR Applications - Immersive experiences
- Architectural Visualization - 3D walkthroughs
- Product Showcases - Interactive 3D presentations
🏗️ Architecture
S3D Engine uses a modern Entity-Component-System (ECS) architecture:
# Entities are containers
player = s3d.create_entity("Player")
# Components add functionality
transform = player.add_component(s3d.Transform)
renderer = player.add_component(s3d.MeshRenderer)
rigidbody = player.add_component(s3d.Rigidbody)
# Systems process components
physics_system = s3d.PhysicsSystem()
render_system = s3d.RenderSystem()
📚 Documentation
- Complete API Documentation - Full reference with examples
- Ultra Simple Demo - One-line 3D graphics
📄 License
S3D Engine is released under the MIT License, making it free for both personal and commercial projects.
Made with ❤️ by the S3D Engine Team
Ready to create amazing 3D games? Try the demo now!
python ultra_simple_demo.py
Project details
Release history Release notifications | RSS feed
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 s3d_engine-1.0.0.tar.gz.
File metadata
- Download URL: s3d_engine-1.0.0.tar.gz
- Upload date:
- Size: 129.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9af6ed2a6fa2abdfc1bb184f58e57b3b32217ad3045988210cbf861cc523f66f
|
|
| MD5 |
e58efd26a888cf06081f29d7a2e4b13d
|
|
| BLAKE2b-256 |
b5120ff264cfb65f9a4cbfdb5b5277ffdff95a09441e6bc044c77ad33b6c6da8
|
File details
Details for the file s3d_engine-1.0.0-py3-none-any.whl.
File metadata
- Download URL: s3d_engine-1.0.0-py3-none-any.whl
- Upload date:
- Size: 43.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 |
c0c9daebba0077451ad76d6fe449527b2ef9ccc5d3f8303f9e4fb95b1b23722e
|
|
| MD5 |
3f7d085c20f2024788cabe3fe0121433
|
|
| BLAKE2b-256 |
718d46e1585b71c36ecfa60a2324d0a40d3d6dfda08ea7fdfca945ce10ab7da1
|