Skip to main content

A simple 3D Ray Caster for pygame.

Project description

Pygame 6DoF Ray Caster

PySiDoCast is a Python module that allows you to render 3D scenes using Pygame images.

Warning There is no GPU support for the moment: The rendering is made on the CPU only.

Installation

To install PySiDoCast, simply use pip:

pip install pysidocast

Screenshot of example

Usage

Here is a basic example of how to use PySiDoCast to render a 3D scene:

import pygame
from pysidocast import Scene

# Initialize Pygame
pygame.init()
screen = pygame.display.set_mode((480, 480))

# Load an image using pygame
image = pygame.image.load(".\\img.png").convert_alpha()  # using ".convert_alpha()" is MANDATORY

# Create a new Scene
scene = Scene()

# Add the image into the scene
scene.add_wall(image, (-1, 2, 3), (1, 0, 1))

# Main Loop
while True:

    # Render the scene
    scene.render(screen, (0, 1, 0), 0, 90, fov=60)

    # Update the screen
    pygame.display.update()

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            exit()

Example

Features

  • Create 3D objects with basic shapes
  • Multiples Scenes support
  • Render to Pygame Surface
  • Simple Camera movement
  • Customizable lighting
  • Transparency using Dithering

Contribution

Any contributions, bug reports, bug fixes, documentation improvements, enhancements and ideas are welcome.

License

PySiDoCast is licensed under the MIT license.

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

pysidocast-1.2.2.tar.gz (14.7 kB view hashes)

Uploaded Source

Built Distribution

pysidocast-1.2.2-cp310-cp310-win_amd64.whl (25.1 kB view hashes)

Uploaded CPython 3.10 Windows x86-64

Supported by

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