Skip to main content

PolyPlay - 1.4.0

A physics playground, somewhat like sodaplay. Drag around structures of masses and springs, make landscapes of lines, or goof around with the "character".

Francesco Mastellone
Polyplay(I really am looking for a better name) is a physics playground based heavily on soft bodies. Drag around structures of masses and springs, make landscapes of lines, make walking structures, flood the screen with fluid, or just goof around with the character.


Warning - this is a very stripped down and early release of what will become PolyPlay 2. If you want something actually nice to play with, go for the 1.3.0 version.

You thought I was done with PolyPlay? Well you were wrong =p

I discovered the beauty of Cairo, a vectorial graphics library with Python bindings, and thought that it's what I wanted for PolyPlay. I plan to make PolyPlay use exclusively that and Clutter(another spiffy library) somewhere later, but in the meanwhile I'm going to improve PolyPlay as a Pygame application.

I've learned much since I last coded it, and I now realize that I've got much cleaning up to do, and I definitely wanna try out some new things. At the time I didn't know of ConfConfig, pickle, and other nifty stuff.

This new release of PolyPlay is very stripped down, as I worked much on improving the interface and temporarily removed access to some functions. Some stuff that's avaible and improved or new altogether:
-The select function has been merged with the move function. You can now select groups of masses and move them in two clicks
-The structure making system is no longer based on the separate mass & constraint making functions, but a merge of the two. There's also move visual information about what your next click will create.
-Actuator Groups: if you want a line to grow and shrink periodically, you can now add it to an actuator group and modify the group's settings instead of those of all the group's lines.
-The 'context' system: tabs and other widgets appear as you need them, based on what tool you're using. The context bar contains the following contexts: edit settings - select/move - make structures - edit actuator groups

Temporarily removed features:
-Saving and Loading. Those will be implemented with Pickle. Or YAML. Or XML.
-Collisions. They need reworking. I will try implementing the collision of masses against curves, and that'll be ten different degrees of cool. However, slow. I might rewrite the physics engine in C++. Might, because I haven't the slightest clue about interfacing C++ and Python. I can and could write it right now but would not be able to use it.
-Fluids. They were too slow anyway. Dunno if they'll be back.

Planned features:
-Cairo/Clutter interface
-An interactive tutorial! The game is almost incomprehensible at this stage of development, a tutorial would help loads.


Home Page


PolyPlay 1.2.1 — 17 Mar, 2008

PolyPlay 1.0.1 — 5 Feb, 2008

PolyPlay 1.2.0 — 16 Mar, 2008

PolyPlay 1.2.2 — 21 Mar, 2008

PolyPlay 1 — 2 Feb, 2008

PolyPlay 1.0.3 — 9 Mar, 2008

PolyPlay 1.0.2 — 7 Mar, 2008

PolyPlay 1.3.0 — 3 Apr, 2008

PolyPlay 1.0.4 — 9 Mar, 2008

PolyPlay 1.1.0 — 13 Mar, 2008

PolyPlay 1.4.0 — 25 Aug, 2008 account Comments

  • Yakov Reznikov 2016-05-22 03:12:29

    when i try to use it it says this

    Traceback (most recent call last):

    File "C:\Users\Yakking\Desktop\PolyPlay\", line 180, in <module>

    main = Main()

    File "lib\", line 44, in __init__

    self.init() #Start the personalized init

    File "C:\Users\Yakking\Desktop\PolyPlay\", line 26, in init


    File "C:\Users\Yakking\Desktop\PolyPlay\", line 78, in splashScreen

    pos =[0].x,[0].y

    IndexError: list index out of range