Skip to main content

VPython for Jupyter Notebook

Project description

VPython

This package enables one to run VPython in a browser, using the GlowScript VPython API, documented in the Help at https://www.glowscript.org. If the code is in a cell in a Jupyter notebook, the 3D scene appears in the Jupyter notebook. If the code is launched outside a notebook (e.g. from the command line), a browser window will open displaying the scene.

VPython makes it unusually easy to create navigable real-time 3D animations. The one-line program "sphere()" produces a 3D sphere with appropriate lighting and with the camera positioned so that the scene fills the view. It also activates mouse interactions to zoom and rotate the camera view. This implementation of VPython was begun by John Coady in May 2014. Ruth Chabay, Matt Craig, and Bruce Sherwood are assisting in its further development.

Installation

For more detailed instructions on how to install vpython, see https://vpython.org, where you will also find a link to the VPython forum, which is a good place to report issues and to request assistance.

Briefly:

  • If you use the anaconda python distribution, install like this: conda install -c vpython vpython
  • If you use any other python distribution, install this way: pip install vpython

Sample program

Here is a simple example:

from vpython import *
sphere()

This will create a canvas containing a 3D sphere, with mouse and touch controls available to zoom and rotate the camera:

Right button drag or Ctrl-drag to rotate "camera" to view scene.
To zoom, drag with middle button or Alt/Option depressed, or use scroll wheel.
     On a two-button mouse, middle is left + right.
Shift-drag to pan left/right and up/down.
Touch screen: pinch/extend to zoom, swipe or two-finger rotate.

Currently, to re-run a VPython program in a Jupyter notebook you need to click the circular arrow icon to "restart the kernel" and then click the red-highlighted button, then click in the first cell, then click the run icon. Alternatively, if you insert "scene = canvas()" at the start of your program, you can rerun the program without restarting the kernel.

Run example VPython programs: Binder

vpython build status (for the vpython developers)

Build Status Build status

Working with the source code

Here is an overview of the software architecture:

https://vpython.org/contents/VPythonArchitecture.pdf

The vpython module uses the GlowScript library (vpython/vpython_libraries/glow.min.js). The GlowScript repository is here:

https://github.com/vpython/glowscript

In the GlowScript repository's docs folder, GlowScriptOverview.txt provides more details on the GlowScript architecture.

Here is information on how to run GlowScript VPython locally, which makes possible testing changes to the GlowScript library:

https://www.glowscript.org/docs/GlowScriptDocs/local.html

If you execute build_original_no_overload.py, and change the statement "if True:" to "if False", you will generate into the ForInstalledPython folder an un-minified glow.min.js which can be copied to site-packages/vpython/vpython_libraries and tested by running your test in (say) idle or spyder. (Running in Jupyter notebook or Jupyterlab requires additional fiddling.)

Note that in site-packages/vpython/vpython_libraries it is glowcomm.html that is used by launchers such as idle or spyder; glowcomm.js is used with Jupyter notebook (and a modified version is used in Jupyterlab).

Placing console.log(....) statements in the GlowScript code or in the JavaScript section of glowcomm.html can be useful in debugging. You may also need to put debugging statements into site-packages/vpython/vpython.py.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

vpython-7.5.2b3.tar.gz (3.6 MB view details)

Uploaded Source

Built Distributions

vpython-7.5.2b3-py3.7.egg (3.6 MB view details)

Uploaded Egg

vpython-7.5.2b3-py3.7-linux-x86_64.egg (3.8 MB view details)

Uploaded Egg

vpython-7.5.2b3-cp37-cp37m-macosx_10_9_x86_64.whl (3.6 MB view details)

Uploaded CPython 3.7mmacOS 10.9+ x86-64

vpython-7.5.2b3-cp36-cp36m-macosx_10_7_x86_64.whl (3.6 MB view details)

Uploaded CPython 3.6mmacOS 10.7+ x86-64

File details

Details for the file vpython-7.5.2b3.tar.gz.

File metadata

  • Download URL: vpython-7.5.2b3.tar.gz
  • Upload date:
  • Size: 3.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.4.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.7.3

File hashes

Hashes for vpython-7.5.2b3.tar.gz
Algorithm Hash digest
SHA256 96aa56a0994b717b6d73b49ee4d93a6a7c8d80a03096d8ddb72995dccf2c5f5e
MD5 386d10ee4d1d3ebd37f165546fa866d6
BLAKE2b-256 4bcdd0a237c493688dd62c191577855e9534d00a95785399353bd22c16635bc7

See more details on using hashes here.

File details

Details for the file vpython-7.5.2b3-py3.7.egg.

File metadata

  • Download URL: vpython-7.5.2b3-py3.7.egg
  • Upload date:
  • Size: 3.6 MB
  • Tags: Egg
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.4.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.7.3

File hashes

Hashes for vpython-7.5.2b3-py3.7.egg
Algorithm Hash digest
SHA256 57803a188cb93037f62bce0d181b372ced136e24f9bda46fef67909472f95a5f
MD5 99a588f47944b6921bf7e0ef6b47fc29
BLAKE2b-256 84a1c342587f0acce6275f7f4310bf703f81cb395edad7393f30c850185311bd

See more details on using hashes here.

File details

Details for the file vpython-7.5.2b3-py3.7-linux-x86_64.egg.

File metadata

  • Download URL: vpython-7.5.2b3-py3.7-linux-x86_64.egg
  • Upload date:
  • Size: 3.8 MB
  • Tags: Egg
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.4.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.7.3

File hashes

Hashes for vpython-7.5.2b3-py3.7-linux-x86_64.egg
Algorithm Hash digest
SHA256 73e490ab1e3f89bdfc721315d97ba27ef7701cbbbb0afb84d190b0eb85632a87
MD5 09f279062c9519c6a3ade4445f1c4f8e
BLAKE2b-256 b185b220d3c93a7685bf8670ed811690354e8f3cea58a16896b83cc127232d56

See more details on using hashes here.

File details

Details for the file vpython-7.5.2b3-cp37-cp37m-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: vpython-7.5.2b3-cp37-cp37m-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 3.6 MB
  • Tags: CPython 3.7m, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.4.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.7.3

File hashes

Hashes for vpython-7.5.2b3-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 9917801094630c69a4472f9424b2cb7201dac98124938f97545bbd76cb8530fe
MD5 4ec502d74f4b0ec8a9dffecf44e24702
BLAKE2b-256 e949baa6a1a44533dd2f1c5b30e99e8ba5f7c1d13359f6f64b81a63b275ed99f

See more details on using hashes here.

File details

Details for the file vpython-7.5.2b3-cp36-cp36m-macosx_10_7_x86_64.whl.

File metadata

  • Download URL: vpython-7.5.2b3-cp36-cp36m-macosx_10_7_x86_64.whl
  • Upload date:
  • Size: 3.6 MB
  • Tags: CPython 3.6m, macOS 10.7+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.4.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.7.3

File hashes

Hashes for vpython-7.5.2b3-cp36-cp36m-macosx_10_7_x86_64.whl
Algorithm Hash digest
SHA256 c68a1ecf90b0aa0458fc3633cd67cf469fbf06c4b8610005db45f2f12ba13afb
MD5 f96e477ea9c7059258954693b89b3d69
BLAKE2b-256 a94bc5685ab4b9e4c86dea838ff908920810de8f9cd2e262d49e56a9704bb61c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page