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

Installation for developers from package source

You should install Cython (conda install cython or pip install cython) so that the fast version of the vector class can be generated and compiled. You may also need to install a compiler (command line tools on Mac, community edition on Visual Studio on Windows).

If you don't have a compilier vpython should still work, but code that generates a lot of vectors may run a little slower.

To install vpython from source run this command from the source directory after you have downloaded it:

pip install -e .

The -e option installs the code with symbolic links so that change you make show up without needing to reinstall.

If you also need the JupyterLab extension, please see the instructions in the labextension folder.

vpython build status (for the vpython developers)

Testing workfloww

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.6.4rc3.tar.gz (3.6 MB view details)

Uploaded Source

Built Distributions

vpython-7.6.4rc3-cp310-cp310-win_amd64.whl (3.6 MB view details)

Uploaded CPython 3.10Windows x86-64

vpython-7.6.4rc3-cp310-cp310-macosx_10_15_universal2.whl (3.6 MB view details)

Uploaded CPython 3.10macOS 10.15+ universal2 (ARM64, x86-64)

vpython-7.6.4rc3-cp39-cp39-win_amd64.whl (3.6 MB view details)

Uploaded CPython 3.9Windows x86-64

vpython-7.6.4rc3-cp39-cp39-macosx_10_15_x86_64.whl (3.6 MB view details)

Uploaded CPython 3.9macOS 10.15+ x86-64

vpython-7.6.4rc3-cp38-cp38-win_amd64.whl (3.6 MB view details)

Uploaded CPython 3.8Windows x86-64

vpython-7.6.4rc3-cp38-cp38-macosx_10_15_x86_64.whl (3.6 MB view details)

Uploaded CPython 3.8macOS 10.15+ x86-64

vpython-7.6.4rc3-cp37-cp37m-win_amd64.whl (3.6 MB view details)

Uploaded CPython 3.7mWindows x86-64

vpython-7.6.4rc3-cp37-cp37m-macosx_10_15_x86_64.whl (3.6 MB view details)

Uploaded CPython 3.7mmacOS 10.15+ x86-64

File details

Details for the file vpython-7.6.4rc3.tar.gz.

File metadata

  • Download URL: vpython-7.6.4rc3.tar.gz
  • Upload date:
  • Size: 3.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.5

File hashes

Hashes for vpython-7.6.4rc3.tar.gz
Algorithm Hash digest
SHA256 f4c45eac067258aa1b5a61ba666c90942e45306a790aa62b2786f32565157cca
MD5 74d1370d56ea2fb0c42657ee86402ed4
BLAKE2b-256 28421b99644698dca16c6c1eeffee1cb1ab098df7973a84266c0e17a376ef974

See more details on using hashes here.

File details

Details for the file vpython-7.6.4rc3-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: vpython-7.6.4rc3-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 3.6 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.5

File hashes

Hashes for vpython-7.6.4rc3-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 d7dd7be0bf159530ea9f86e8b0005e6d20eea50f59aa2243b58d48ded31652ea
MD5 6fad98efc0277aa5177d71f456224eb2
BLAKE2b-256 b8760a8e01eb11144578c221a991e67078ea489a9fab91b4e210fac27631b841

See more details on using hashes here.

File details

Details for the file vpython-7.6.4rc3-cp310-cp310-macosx_10_15_universal2.whl.

File metadata

File hashes

Hashes for vpython-7.6.4rc3-cp310-cp310-macosx_10_15_universal2.whl
Algorithm Hash digest
SHA256 fbe882b9583dd3df1e2f3bff0a9a6b005bd4c85b62f82481a33dc11c23de94b6
MD5 e888da1fba2a4896953029e88ed58ee2
BLAKE2b-256 42f51db6c5a58d568e367a5417301117d5b09b5c56f2794a8f218c712607f4df

See more details on using hashes here.

File details

Details for the file vpython-7.6.4rc3-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: vpython-7.6.4rc3-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 3.6 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.13

File hashes

Hashes for vpython-7.6.4rc3-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 05bf39e486f008ca1c4ec4b1f0a8316767f74fb26a1e3eb870fc442f8021e08f
MD5 41141691c7573e17b86712c13fe18f06
BLAKE2b-256 36bbcc2441f1a3ad40182ef93336740d6c83359d67b26066fda79d65c1e417b8

See more details on using hashes here.

File details

Details for the file vpython-7.6.4rc3-cp39-cp39-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for vpython-7.6.4rc3-cp39-cp39-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 964e0e9ac1313cb92d8c0a3ed89f9eb738c1d697ddeb3ba71760722c9520b298
MD5 422f9e744838eb0576da360af9bdf405
BLAKE2b-256 36bdd4b28d7fefa0bcbe8ee5edb1e11eeceaf74e99b34a5f9b44790a4e29fb63

See more details on using hashes here.

File details

Details for the file vpython-7.6.4rc3-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: vpython-7.6.4rc3-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 3.6 MB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.8.10

File hashes

Hashes for vpython-7.6.4rc3-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 5c37ecbfb8c5cd71814abe91df3aad2126a56bcf63a96c639169fa7d2186260b
MD5 f54704326aec82b55e40653554036070
BLAKE2b-256 caa4270f7a2a32ceee329b545a870730fb8ad1226dc8b2ee45812760d73d0513

See more details on using hashes here.

File details

Details for the file vpython-7.6.4rc3-cp38-cp38-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for vpython-7.6.4rc3-cp38-cp38-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 1e1c48dadb5b1aa37bc96c4dae4d0c697063d526a18f92163b9baf77f7145cec
MD5 7389c8e332ed8c01b24eb5f032328f06
BLAKE2b-256 c8450b2ff4255c831e012c64e86feaf2aa4d3be25c5602da34a1b11083343409

See more details on using hashes here.

File details

Details for the file vpython-7.6.4rc3-cp37-cp37m-win_amd64.whl.

File metadata

  • Download URL: vpython-7.6.4rc3-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 3.6 MB
  • Tags: CPython 3.7m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.7.9

File hashes

Hashes for vpython-7.6.4rc3-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 7e7268ebfcf3f25c9baa10f1a0cfec399e0a90d5f79b59c56cf982b7212afdab
MD5 80dad088f172258afd0844b3695add9a
BLAKE2b-256 e8682413e7abc1504c20b1e1a951725880e9c6622f36206e27f3ba5772899e32

See more details on using hashes here.

File details

Details for the file vpython-7.6.4rc3-cp37-cp37m-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for vpython-7.6.4rc3-cp37-cp37m-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 b5c7ce1356c64355336636ea5678ad619b856bb06bc2d31ffaba72c9903f8c07
MD5 84cd829c360d4a7422f7e9b64ed56d2f
BLAKE2b-256 cdb9fac56e4104b3d50e217ea6ef20e414aa0cdbc8e703570702659876f278db

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