Skip to main content

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!

Python License Platform

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

📄 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

s3d_engine-1.0.0.tar.gz (129.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

s3d_engine-1.0.0-py3-none-any.whl (43.8 kB view details)

Uploaded Python 3

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

Hashes for s3d_engine-1.0.0.tar.gz
Algorithm Hash digest
SHA256 9af6ed2a6fa2abdfc1bb184f58e57b3b32217ad3045988210cbf861cc523f66f
MD5 e58efd26a888cf06081f29d7a2e4b13d
BLAKE2b-256 b5120ff264cfb65f9a4cbfdb5b5277ffdff95a09441e6bc044c77ad33b6c6da8

See more details on using hashes here.

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

Hashes for s3d_engine-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c0c9daebba0077451ad76d6fe449527b2ef9ccc5d3f8303f9e4fb95b1b23722e
MD5 3f7d085c20f2024788cabe3fe0121433
BLAKE2b-256 718d46e1585b71c36ecfa60a2324d0a40d3d6dfda08ea7fdfca945ce10ab7da1

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page