********
Showcase 
********

This page shows some uses of Pymunk. If you also have done something using 
Pymunk please let me know and I can add it here!   

Games
=====

.. list-table:: 
    :widths: 40 60

    * - .. image:: _static/My_Sincerest_Apologies.png
      - `My Sincerest Apologies <https://pyweek.org/e/wasabi24/>`_
      
        :subscript:`made by The Larry and Dan show (mauve, larry). Retrieved 
        2018-10-25`

        **Winner of PyWeek 24** (Overall Team Entry)
        
        A game of fun, shooting, and "I'm sorry to put you through this".

        A fabricator robot on Mars was supposed to make a bunch of robots! 
        But it got lazy and made robots that could make other robots. And 
        it made them smarter than they should have been. Now they've all 
        gone off and hidden away behind various tanks and computers. 
        
        Happily, he knew how to construct *you*, a simple fighting robot. 
        It's your job to clean out each area!
        
        See Daniel Popes teardown `here <http://mauveweb.co.uk/posts/2018/03/my-sincerest-apologies-teardown.html>`_
        for additional details

    * - .. image:: _static/beneath-the-ice.png
      - `Beneath the Ice <https://pyweek.org/e/chimera22/>`_

        :subscript:`made by Team Chimera (mit-mit, Lucid Design Ar). Retrieved 
        2016-09-25`

        **Winner of PyWeek 22** (Overall Team Entry)

        Beneath the Ice is a submarine exploration game and puzzle solving 
        adventure! Uncover a mysterious pariah who can't let you discover his 
        secrets, who can't let you in! Team Chimera take 3!  

    * - .. image:: _static/invisipin.png
      - `Invisipin <https://pyweek.org/e/Tee-py20/>`_  
        
        :subscript:`made by Tee. Retrieved 2016-01-25`

        **Winner of PyWeek 20** (Overall Individual Entry)
        
        A pachinko-like puzzle game. Play some balls and watch their movement 
        carefully (i.e. collect data) to reconstruct the board!

    * - .. image:: _static/angry-birds-python.png
      - `Angry Birds in Python <https://github.com/estevaofon/angry-birds-python>`_

        :subscript:`made by Estevao Fonseca. Retrieved 2016-10-30`

        Angry Birds game written in python using pygame and pymunk 

    * - .. image:: _static/SubTerrex.png
      - `SubTerrex <http://www.pygame.org/project-SubTerrex-2389-.html>`_  
        
        :subscript:`made by Paul Paterson. Retrieved 2016-01-25`

        A cave exploration game where you explore caves by descending into them 
        on ropes.

Non-Games
=========

.. list-table::
    :widths: 40 60 

    * - .. image:: _static/virtuaplant.png
      - `VirtuaPlant <https://wroot.org/projects/virtuaplant/>`_

        :subscript:`made by Jan Seidl. Retrieved 2018-06-13`

        VirtuaPlant is a Industrial Control Systems simulator which adds a 
        "similar to real-world control logic" to the basic "read/write tags" 
        feature of most PLC simulators. Paired with a game library and 2d 
        physics engine, VirtuaPlant is able to present a GUI simulating the 
        "world view" behind the control system allowing the user to have a 
        vision of the would-be actions behind the control systems.

    * - .. image:: _static/arcade-library.png
      - `The Python Arcade Library <http://arcade.academy/examples/index.html>`_

        :subscript:`made by Paul. Retrieved 2018-03-05`

        Arcade is an easy-to-learn Python library for creating 2D video games. 
        It is not directly tied to Pymunk, but includes a number of examples 
        and helper classes to use Pymunk physics from a Arcade application.
        
    * - .. image:: _static/billiARds.png
      - `billiARds  A Game of Augmented Reality Pool 
        <https://youtu.be/5ft3SDvuhgw>`_

        :subscript:`made by Alex Baikovitz. Retrieved 2017-05-21`

        Alex built billiARds for his 15-112 (Fundamentals of Programming and 
        Computer Science) term project at Carnegie Mellon University.
        Made in Python3 using OpenCV, Pygame, and Pymunk. Users can simply use 
        a pool cue stick and run the program on any ordinary surface.

    * - .. image:: _static/pyphysicssandbox.png
      - `pyPhysicsSandbox <https://github.com/jshaffstall/PyPhysicsSandbox>`_

        :subscript:`made by Jay Shaffstall. Retrieved 2017-01-01`

        pyPhysicsSandbox is a simple wrapper around Pymunk that makes it easy 
        to write code to explore 2D physics simulations. It's intended for use 
        in introductory programming classrooms. 

    * - .. image:: _static/carrom-rl.png
      - `Carrom Simulation <https://github.com/samiranrl/Carrom_rl>`_ 
    
        :subscript:`made by Samiran Roy. Retrieved 2016-10-27`

        An open source Carrom Simulator interface for testing 
        intelligent/learning agents. It provides an interface that allows 
        you to design agents that that play carrom. It is built in python, 
        using pygame + pymunk. This is the course project for 
        CS 747 - Foundations of Intelligent and Learning Agents, taught by 
        Prof. Shivaram Kalyanakrishnan at IIT Bombay.

    * - .. image:: _static/reinforcement-learning-car.png
      - `Self Driving Car <https://github.com/harvitronix/reinforcement-learning-car>`_
        
        :subscript:`made by Matt Harvey. Retrieved 2016-08-07`
        
        A project that trains a virtual car to how to move an object around a 
        screen (drive itself) without running into obstacles using a type of 
        reinforcement learning called Q-Learning.         
    

Papers / Science
================

Pymunk has been used or referenced in a number of scientific papers 

* Caselles-Dupré, Hugo, Louis Annabi, Oksana Hagen, Michael Garcia-Ortiz, and David Filliat. 
  "Flatland: a Lightweight First-Person 2-D Environment for Reinforcement Learning." 
  arXiv preprint arXiv:1809.00510 (2018).

* Yingzhen, Li, and Stephan Mandt. 
  "Disentangled Sequential Autoencoder." 
  In International Conference on Machine Learning, pp. 5656-5665. 2018.

* Melnik, Andrew. 
  "Sensorimotor Processing in the Human Brain and in Cognitive Architectures." 
  (2018).

* Li, Yingzhen, and Stephan Mandt. 
  "A Deep Generative Model for Disentangled Representations of Sequential Data." 
  arXiv preprint arXiv:1803.02991 (2018).

* Hongsuk Yi, Eunsoo Park and Seungil Kim (이홍석, 박은수, and 김승일.)
  "Deep Reinforcement Learning for Autonomous Vehicle Driving" 
  ("자율주행자동차 주행을 위한 심화강화학습.")
  2017 Korea Software Engineering Conference 
  (한국정보과학회 학술발표논문집 (2017): 784-786.)

* Fraccaro, Marco, Simon Kamronn, Ulrich Paquet, and Ole Winther. 
  "A Disentangled Recognition and Nonlinear Dynamics Model for Unsupervised Learning." 
  arXiv preprint arXiv:1710.05741 (2017).

* Kister, Ulrike, Konstantin Klamka, Christian Tominski, and Raimund Dachselt. 
  "GraSp: Combining Spatially‐aware Mobile Devices and a Display Wall for Graph Visualization and Interaction." 
  In Computer Graphics Forum, vol. 36, no. 3, pp. 503-514. 2017.

* Kim, Neil H., Gloria Lee, Nicholas A. Sherer, K. Michael Martini, Nigel Goldenfeld, and Thomas E. Kuhlman. 
  "Real-time transposable element activity in individual live cells." 
  Proceedings of the National Academy of Sciences 113, no. 26 (2016): 7278-7283.

* Baheti, Ashutosh, and Arobinda Gupta. 
  "Non-linear barrier coverage using mobile wireless sensors." 
  In Computers and Communications (ISCC), 2017 IEEE Symposium on, pp. 804-809. IEEE, 2017.

* Espeso, David R., Esteban Martínez-García, Victor De Lorenzo, and Ángel Goñi-Moreno. 
  "Physical forces shape group identity of swimming Pseudomonas putida cells." 
  Frontiers in Microbiology 7 (2016).

* Goni-Moreno, Angel, and Martyn Amos. 
  "DiSCUS: A Simulation Platform for Conjugation Computing." 
  In International Conference on Unconventional Computation and Natural Computation, pp. 181-191. Springer International Publishing, 2015.

* Amos, Martyn, et al. 
  "Bacterial computing with engineered populations." 
  *Phil. Trans. R. Soc. A* 373.2046 (2015): 20140218.

* Crane, Beth, and Stephen Sherratt. 
  "rUNSWift 2D Simulator; Behavioural Simulation Integrated with the rUNSWift Architecture." 
  *UNSW School of Computer Science and Engineering* (2013).

* Miller, Chreston Allen. 
  "Structural model discovery in temporal event data streams."
  Diss. Virginia Polytechnic Institute and State University, 2013.

* Pumar García, César. 
  "Simulación de evolución dirigida de bacteriófagos en poblaciones de bacterias en 2D." 
  (2013).

* Simoes, Manuel, and Caroline GL Cao. 
  "Leonardo: a first step towards an interactive decision aid for port-placement in robotic surgery." 
  *Systems, Man, and Cybernetics (SMC), 2013 IEEE International Conference on.* IEEE, 2013.

* Goni-Moreno, Angel, and Martyn Amos. 
  "Discrete modelling of bacterial conjugation dynamics." *arXiv preprint arXiv:1211.1146* (2012).

* Matthews, Elizabeth A. 
  "ATLAS CHRONICLE: A STORY-DRIVEN SYSTEM TO CREATE STORY-DRIVEN MAPS."
  Diss. Clemson University, 2012.

* Matthews, Elizabeth, and Brian Malloy. 
  "Procedural generation of story-driven maps." 
  *Computer Games (CGAMES), 2011 16th International Conference on.* IEEE, 2011.

* Miller, Chreston, and Francis Quek. 
  "Toward multimodal situated analysis." 
  *Proceedings of the 13th international conference on multimodal interfaces.* ACM, 2011.

* Verdie, Yannick. 
  "Surface gesture & object tracking on tabletop devices."
  Diss. Virginia Polytechnic Institute and State University, 2010.

* Agrawal, Vivek, and Ryan Kerwin. 
  "Dynamic Robot Path Planning Among Crowds in Emergency Situations."

  
List last updated 2018-09-09. If something is missing or wrong, please contact 
me!

.. (list made using "Chicago" style citation)
