The pyShiva project is an experiment in bringing lightning fast high quality 2d graphics to python via the
It aims to provide a simple vector-based API on top of the OpenGL-powered ShivaVG library.
This is how easy it is to write a complete pyShiva program!
# # Rose Curves Demo # # Import the python module import pyshiva as ps import math, random # Create a window with the title "Rose Curves" w = ps.Window(title = "Rose Curves") all_rects = list() # Create 1000 squares with different colors for i in range(1000): r = random.random() a = abs(math.cos(i))*0.5 side_length = abs(math.sin(i))*50 r = ps.Rect(0,0,side_length,side_length,(r,math.sin(i),math.cos(i),a)) w.add(r) # Add the rectangles to the window... all_rects.append(r) # and keep track of them with a list k = 0.25 while w.is_open(): t = w.s_since_open()*2 # Use a scaled time since program start as the parametric time value radius = abs(math.sin(w.s_since_open())) if radius < 0.01: # Every time the curve collapses... k = random.random() # Randomize the k value to change the type of the curve # Place every rectangle along a rose curve, offset by its index for (i,r) in enumerate(all_rects): r.x = radius*math.cos(k*(t+i))*math.sin(t+i)*w.width/2+w.width/2 r.y = radius*math.sin(k*(t+i))*math.sin(t+i)*w.height/2+w.height/2 # Update the screen w.refresh()
Currently under heavy development.
##Full Documentation and Implementation Spec
Read it here. You can edit if if you are a collaborator.
##Compiling ShivaVG and GLFW on Ubuntu
sudo apt-get install libx11-dev sudo apt-get install mesa-common-dev sudo apt-get install libglu1-mesa-dev cd glfw-2.7.7 make x11 sudo apt-get install cmake sudo apt-get install freeglut3-dev # Required for the examples in ShivaVG sudo apt-get install libjpeg-dev # Required for the examples in ShivaVG sudo apt-get install libxmu-dev libxi-dev sudo apt-get install g++ # Currently required until the CMake system is improved cd .. cd ShivaVG cmake . make
##Building the python wrapper on Ubuntu
Without this, you won't be able to run the python demos, make your own projects, or contribute to pyShiva's development.
sudo apt-get install python-dev sudo apt-get install cython cd wrapper python setup.py install
##Testing the python wrapper
This demo creates animated circles in a flower-like arrangement.
cd wrapper python rose_curves2.py
##License: GNU Lesser General Public License
Copyright (C) 2012 Julian Ceipek, Berit Johnson, Diana Vermilya, Charles Gwennap
This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with this library in the file COPYING; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
pyShiva depends on and is distributed alongside several 3rd party libraries that are distributed with compatible licenses.