Metadata-Version: 2.0
Name: demosys-py
Version: 0.3.6
Summary: Modern OpenGL 4.1+ Prototype Framework inspired by Django
Home-page: https://github.com/Contraz/demosys-py
Author: Einar Forselv
Author-email: eforselv@gmail.com
License: UNKNOWN
Keywords: opengl,framework,demoscene
Platform: UNKNOWN
Classifier: Programming Language :: Python
Classifier: Environment :: MacOS X
Classifier: Environment :: X11 Applications
Classifier: Intended Audience :: Developers
Classifier: Topic :: Multimedia :: Graphics
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
Requires-Dist: Pillow (==4.0.0)
Requires-Dist: PyOpenGL (==3.1.0)
Requires-Dist: glfw (==1.4.0)
Requires-Dist: pyrocket (==0.2.5)
Requires-Dist: pyrr (==0.8.2)

|pypi| |travis| |rtd|

demosys-py
==========

A python 3 implementation of a C++ project used to create and
prototype demos (see
`demoscene <https://en.wikipedia.org/wiki/Demoscene>`__) in OpenGL. The
design of this version is heavily inspired by the
`Django <https://www.djangoproject.com/>`__ project.

+-----------------+-----------------+
| |screenshot1|   | |screenshot2|   |
+-----------------+-----------------+

We only support OpenGL 3.3+ forward compatible core profiles (no backwards compatibility).

This was originally made for for non-interactive real time graphics
combined with music ("real time music videos"). It's made for people who
enjoy playing around with modern OpenGL without having to spend lots of
time creating all the tooling to get things up and running.

If you are not a fan of using a framework, you can create your own context
and just use the classes in ``demosys.opengl``. These will give you fairly
straight forward ways to use VAOs, Shaders, Textures and FBOs.

Documentation
-------------

Project documentation can be found at readthedocs_. Optionally you can
build your own docs from the ``docs`` directory.

Contributing
------------

Any contribution to the project is welcome. Never hesitate to ask
questions or submit pull requests (completed or work in progress). The
worst thing that can happen is that we or you might learn something.
This is supposed to be a fun project.

Also check out the `TODO list <TODO.md>`__. Take a stab on what of the
features or documentation or suggest new entries.

Known Issues
------------

The sound player an be a bit wonky at times on startup refusing to play
on some platforms. We have tried a few libraries and ended up using
pygame's mixer module.

Audio Requirements: - As the current position in the music is what all
draw timers are connected to, we need a library that can deliver this. -
Efficient and accurate seeking + pause support - Some way to extract
simple data from the music for visualisation

Libraries
---------

GLFW binaries must also be installed. Get from your favourite location.
Use version 3.2.1 or later.

-  `http://pyopengl.sourceforge.net <http://pyopengl.sourceforge.net/>`__
-  `pyGLFW <https://github.com/FlorianRhiem/pyGLFW>`__ for window and
   context creation + input
-  `PIL/Pillow <https://github.com/python-pillow/Pillow>`__ for texture
   loading
-  https://github.com/adamlwgriffiths/Pyrr for math (uses numpy)

Optional for audio:
-  https://www.pygame.org using the mixer module for music

What inspired us to make this project?
--------------------------------------

- We are old farts from the demoscene
- We love Python
- We were wondering what would be done with OpenGL in Python
- We work a lot with Django and love it

Why not combine ideas from our own demosys written in C++ and Django
making a Python 3 version?

Credits
-------

-  Also thanks to `Attila
   Toth <https://www.youtube.com/channel/UC4L3JyeL7TXQM1f3yD6iVQQ>`__
   for an excellent tutorial on OpenGL in Python.


.. _testdemo: https://github.com/Contraz/demosys-py-test
.. |pypi| image:: https://img.shields.io/pypi/v/demosys-py.svg
   :target: https://pypi.python.org/pypi/demosys-py
.. |travis| image:: https://travis-ci.org/Contraz/demosys-py.svg?branch=master
   :target: https://travis-ci.org/Contraz/demosys-py
.. |rtd| image:: https://readthedocs.org/projects/demosys-py/badge/?version=latest
   :target: http://demosys-py.readthedocs.io/en/latest/?badge=latest
.. |screenshot1| image:: https://objects.zetta.io:8443/v1/AUTH_06e2dbea5e824620b20b470197323277/contraz.no-static/gfx/productions/SimLife3.png
.. |screenshot2| image:: https://objects.zetta.io:8443/v1/AUTH_06e2dbea5e824620b20b470197323277/contraz.no-static/gfx/productions/SimLife2.png
.. _readthedocs: http://demosys-py.readthedocs.io/


