Skip to content

ashambalev/kivy-physics-sandbox

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

52 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

#Kivy Physics Sandbox

Kivy Physics Sandbox is educational application for visualizing different physics-based experiments.

The main feature of this application is interactivity and ability to quickly develop new experiments using application' provided classes.

Works on Windows, Ubuntu, OS X, Android tablet and Android phone (but difficult to use).

##Installation

Linux

git clone https://github.com/Gipzo/kivy-physics-sandbox.git
pip install -r requirements.txt

Run application by executing python main.py

Mac OS

Mac OS X Release

Windows

Win32 Release

Android

Android APK

##Screenshots

main_screen

screen_2

screen_2

Controls (with hotkeys)

screen_keys

##Experiments

Currently there are 4 experiments in 2 categories:

Kinetics
    Cannon
    Moon movement
    Speed relativity
Optics
    Refraction

Experiments are dynamically populated from experiments folder. Each experiment must have this folder structure:

experiments/
  __init__.py
  <category>/
    __init__.py
    category.json  # Category information: title and icon file
    <experiment_name>
      __init__.py
      experiment.json  # Experiment information: title, short description and icon file
      description.rst  # Description in RST format
      experiment.py    # Main experiment file

experiment.py file must have load_experiment function that returns class, that must be inherited from ExperimentWindow class.

Classes

ExperimentWindow - Main experiment class

Utility classes

PhysicsObject - Widget for drawing rotated images and vectors on it

TexturedWidget - Widget with tiled texture

LineWidget - Simple line drawing widget