Skip to main content

Payton 3D Kickstart Toolkit

Project description

Payton 3D SDK

Payton is a general-purpose 3D Software Development Kit. Simply, a 3D Programming Playground!

  • Payton is a playground. Kickstart any idea fast and easy, grow it.
  • Create tools for the next step. Create map editors, small animations, small algorithms or artificial intelligence for your game. Whenever you need to try a new idea, don't bother to create a new application with all the details. Payton comes with all the necessary defaults and that is what makes it unique. Almost everything has a pre-set.
  • Game engines and other libraries are way too complex and it takes a long time to start the initial playground.
  • Payton never intends to take place as a game engine or a full-featured 3D environment. There is already plenty of stuff for that purpose.
  • Tools programming is easy.
  • Easy to visualize what you want to achieve or do what you want to do.
  • You can move forward from Payton to any other place if you like.

We draw 2D graphs and charts in reports and we generally understand much more easily when we visualize the data. But in some cases, visualizing exceeds 2 dimensions. We require to have third and even fourth dimensions. (And on top of those, the definition of the fourth dimension as time can get foggy in terms of relativity.)

Payton gives you the ability to extend your graphics into 4 dimensions. It is not software but a software development toolkit/library built with Python. This will give users the ability to read real-time data from sensors, cameras or any other data sources in realtime and visualize them in real-time. The data source can be a thermometer, a random number generator, a toy car connected to a speed sensor, a map, a vehicle port or anything that generates time-based 3D data. Furthermore, it can be a time-based formula. As this can get too complex, software with that complexity will probably be too hard to use and understand where Payton is designed to be as simple as it can be. So easy to program that a newbie can kick-start it just by following the tutorials.

Contents of this Document:

Features:

  • 3D Math Library
  • Various base geometries:
    • Cube
    • Cylinder
    • Triangular Mesh
    • Plane
    • Lines
    • Particle System
    • Sphere
    • Dynamic Grid
  • Clean default scene.
  • Pre-defined keyboard-mouse and camera controls
  • Pre-defined environment
  • Clock system for parallel tasks and time based operations
  • Simple collision detection
  • Extendable controllers
  • Pre-defined lighting with shadows.
  • Material support
  • Clickable objects and virtual planes
  • Shader support
  • Basic GUI Support
    • Window
    • Panel
    • Button
    • EditBox (Multi-line support)
  • 3D File formats:
    • Wavefront OBJ
    • Quake 2 MD2 with Animations
  • Mesh Generation Tools
    • Extrude Line in 3D
    • Rotate Line around an axis in 3D
    • Fill between lines
  • Mesh modifiers:
    • Merge Mesh
    • Subdivide Mesh
  • Extensive examples for every feature

Install

Requirements:

  • LibSDL2 sudo apt install libsdl2-dev for debian/ubuntu based linux distros. For other platforms, you can see your favourite package manager.
  • imagemagick sudo apt install imagemagick for debian/ubuntu based linux distros. For other platforms, you can see your favourite package manager.
  • Python 3.7+
  • A Graphics card that supports OpenGL 3.3+

Install using Pip:

From a bash terminal:

pip3 install payton

This should install all dependencies. If you get any permission errors, you are probably installing the library to system-global so missing some permissions. If you do not want to use pipenv or virtualenv, then you might want to run above command as sudo pip3 install payton

Upgrade to the latest version:

Payton is under active maintenance. This means I am spending some time to fix the bugs or make it better. So you might want to upgrade it occasionally.

pip3 install payton --upgrade

should do the trick!

Getting Started

Your first code

from payton.scene import Scene

scene = Scene()
scene.run()

This will create your first empty scene and show it inside an SDL window.

Controls

Key / Action Description
Mouse Wheel Zoom In - Zoom Out
Right Mouse Button Drag Rotate Scene
Middle Mouse Button Drag Pan Scene
Escape Quit Simulation
C Change Camera Mode (Perspective / Orthographic)
Space UnPause / Pause Scene Clocks
G Show / Hide Grid
W Change Display Mode (Solid / Wireframe / Points)
F2 Previous Observer
F3 Next Observer
H Open / Close Help Window

Examples

Personally, I don’t really read the long descriptive documentation unless necessary. I like things simple and self-explaining. Therefore, instead of writing long documentations, I write simple examples to use each feature of Payton without digging much into the internals.

Examples can be downloaded from Payton Github Page.

You can either download the whole repository as a zip file or you can just git clone it.

Tested in Windows 10 Paperspace, seems to be working as expected https://user-images.githubusercontent.com/1842484/84317888-38767780-ab76-11ea-8337-a102d7c59275.png

Example Index

Screenshots and Videos

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

Payton-0.0.10.tar.gz (88.1 kB view details)

Uploaded Source

Built Distributions

Payton-0.0.10-py3.8.egg (180.5 kB view details)

Uploaded Source

Payton-0.0.10-py3-none-any.whl (96.2 kB view details)

Uploaded Python 3

File details

Details for the file Payton-0.0.10.tar.gz.

File metadata

  • Download URL: Payton-0.0.10.tar.gz
  • Upload date:
  • Size: 88.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/44.0.0 requests-toolbelt/0.9.1 tqdm/4.41.1 CPython/3.8.0

File hashes

Hashes for Payton-0.0.10.tar.gz
Algorithm Hash digest
SHA256 5df712037ded7c0cd0f676383bfda5277954c602fd12cd6a3bf8105ea22c6b94
MD5 8b36c5ab699d820a6447b20a9b973216
BLAKE2b-256 f7cc684eff5f99b1bc86990474eb320e4742196340425ac4a8adc7a12b330dcd

See more details on using hashes here.

File details

Details for the file Payton-0.0.10-py3.8.egg.

File metadata

  • Download URL: Payton-0.0.10-py3.8.egg
  • Upload date:
  • Size: 180.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/44.0.0 requests-toolbelt/0.9.1 tqdm/4.41.1 CPython/3.8.0

File hashes

Hashes for Payton-0.0.10-py3.8.egg
Algorithm Hash digest
SHA256 f6fc21a59b258fe6df0099797bb5aaea4eb9ab7026081fe323d2c8e500aa2a75
MD5 720a4ca5f51bb200bbbed6e2b697f190
BLAKE2b-256 4620ca11dbb0012d755c36aaeed1e7b4f33d40ef219b57af6575c063b48143bd

See more details on using hashes here.

File details

Details for the file Payton-0.0.10-py3-none-any.whl.

File metadata

  • Download URL: Payton-0.0.10-py3-none-any.whl
  • Upload date:
  • Size: 96.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/44.0.0 requests-toolbelt/0.9.1 tqdm/4.41.1 CPython/3.8.0

File hashes

Hashes for Payton-0.0.10-py3-none-any.whl
Algorithm Hash digest
SHA256 0e00e8102988363bad02bf7e6d0a0d4f7fcc211a5c298260ecd50c0dcdf2ad5f
MD5 37e368f1c8ddec959e51d976ac063b6d
BLAKE2b-256 cf47f9bce2974f28ac78f8e0304ad29aef6c4fa2c87343d0f2f5b07db19c5dc2

See more details on using hashes here.

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