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)

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

Uploaded Source

Built Distributions

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

Uploaded CPython 3.8Windows x86-64

vpython-7.6.1-cp38-cp38-manylinux1_x86_64.whl (3.7 MB view details)

Uploaded CPython 3.8

vpython-7.6.1-cp38-cp38-macosx_10_13_x86_64.whl (3.6 MB view details)

Uploaded CPython 3.8macOS 10.13+ x86-64

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

Uploaded CPython 3.7mWindows x86-64

vpython-7.6.1-cp37-cp37m-manylinux1_x86_64.whl (3.7 MB view details)

Uploaded CPython 3.7m

vpython-7.6.1-cp37-cp37m-macosx_10_13_x86_64.whl (3.6 MB view details)

Uploaded CPython 3.7mmacOS 10.13+ x86-64

vpython-7.6.1-cp36-cp36m-win_amd64.whl (3.6 MB view details)

Uploaded CPython 3.6mWindows x86-64

vpython-7.6.1-cp36-cp36m-manylinux1_x86_64.whl (3.7 MB view details)

Uploaded CPython 3.6m

vpython-7.6.1-cp36-cp36m-macosx_10_13_x86_64.whl (3.6 MB view details)

Uploaded CPython 3.6mmacOS 10.13+ x86-64

File details

Details for the file vpython-7.6.1.tar.gz.

File metadata

  • Download URL: vpython-7.6.1.tar.gz
  • Upload date:
  • Size: 3.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.8.1

File hashes

Hashes for vpython-7.6.1.tar.gz
Algorithm Hash digest
SHA256 46fd11affc1b996554d7c6d0567fbd845ee5ead559ab9fd4db963eabe6b3da3e
MD5 67450a1b9789682514bbdff6921d45ba
BLAKE2b-256 1405f2722794541b8511906424a7fafed94f918cc0581887883d41cbe39f752e

See more details on using hashes here.

File details

Details for the file vpython-7.6.1-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: vpython-7.6.1-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/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.8.1

File hashes

Hashes for vpython-7.6.1-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 278a2ae057fe9c2955bab4b460964691b8bebae8f50aee02f52b355cef1b0195
MD5 b1a58311412e41237b5a9147cc6466cd
BLAKE2b-256 5554dd9206c6d2ce23e86ca09823c69651a4d81c746a1da8ddd7159a21670caf

See more details on using hashes here.

File details

Details for the file vpython-7.6.1-cp38-cp38-manylinux1_x86_64.whl.

File metadata

  • Download URL: vpython-7.6.1-cp38-cp38-manylinux1_x86_64.whl
  • Upload date:
  • Size: 3.7 MB
  • Tags: CPython 3.8
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.8.1

File hashes

Hashes for vpython-7.6.1-cp38-cp38-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 7422d881ecd788cbaeb2d6c873a6640d283ce89596ea2ed70b6bbf52d1d0f9c2
MD5 a6d3fd4b4f0b6da55eed7d43b7f61e2b
BLAKE2b-256 9161ca696540fce9388ca9e42c30ffd2a20907df55bc988742fb740ce58c71e4

See more details on using hashes here.

File details

Details for the file vpython-7.6.1-cp38-cp38-macosx_10_13_x86_64.whl.

File metadata

  • Download URL: vpython-7.6.1-cp38-cp38-macosx_10_13_x86_64.whl
  • Upload date:
  • Size: 3.6 MB
  • Tags: CPython 3.8, macOS 10.13+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.8.1

File hashes

Hashes for vpython-7.6.1-cp38-cp38-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 3c2a9ae2d40ba38fb788d228a18e4c4dc4103ef4205eade55ebcbbbfdb894c76
MD5 ef44c019c390fc16b0ef21fd1ca4bf1e
BLAKE2b-256 bad7b980c94069d7f3881cc2249bf555241d7b508ad8c75e0977fb80dc765203

See more details on using hashes here.

File details

Details for the file vpython-7.6.1-cp37-cp37m-win_amd64.whl.

File metadata

  • Download URL: vpython-7.6.1-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/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.7.6

File hashes

Hashes for vpython-7.6.1-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 5ba263aaf265df158fb9337d62fea4db161fe50c58d725b08d464eaf081824b9
MD5 cc7695c3c74dc79dd535705f3ea22ba9
BLAKE2b-256 237ae955a0154b51e822edab9c6fdc675c43b989a4eed4174ce8fba6ecbc8b30

See more details on using hashes here.

File details

Details for the file vpython-7.6.1-cp37-cp37m-manylinux1_x86_64.whl.

File metadata

  • Download URL: vpython-7.6.1-cp37-cp37m-manylinux1_x86_64.whl
  • Upload date:
  • Size: 3.7 MB
  • Tags: CPython 3.7m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.8.1

File hashes

Hashes for vpython-7.6.1-cp37-cp37m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 01ff582f813fa6648cae361fb65d901d5d6d7555a961b3552859ea0f810a0806
MD5 6b8b0036984b47e6a26207c4f7a8fb56
BLAKE2b-256 4812f5dc7711642693d8cef919c1ab1f85dc3aa15b53d63588d8635adefdb752

See more details on using hashes here.

File details

Details for the file vpython-7.6.1-cp37-cp37m-macosx_10_13_x86_64.whl.

File metadata

  • Download URL: vpython-7.6.1-cp37-cp37m-macosx_10_13_x86_64.whl
  • Upload date:
  • Size: 3.6 MB
  • Tags: CPython 3.7m, macOS 10.13+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.7.6

File hashes

Hashes for vpython-7.6.1-cp37-cp37m-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 db8ec40da373f465e527b91ecc26265f3b7d8ce57e6034e6d0853d3af7069cd3
MD5 c604d3ba9aff5f08ecfaae77a8ff13ef
BLAKE2b-256 81ed8e14650786dfa1d63b7a7b154b6469a22c992d4a7dd6acf60b624e8e6ba4

See more details on using hashes here.

File details

Details for the file vpython-7.6.1-cp36-cp36m-win_amd64.whl.

File metadata

  • Download URL: vpython-7.6.1-cp36-cp36m-win_amd64.whl
  • Upload date:
  • Size: 3.6 MB
  • Tags: CPython 3.6m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.6.2 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.6.8

File hashes

Hashes for vpython-7.6.1-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 d41a1cf18f6c2247cbb2cb8be245406734ba5ba3bbfcf830019e1d02bae66df1
MD5 5e9adc1314469e63d897d225846bdfb6
BLAKE2b-256 a868a0ff9cca43178a8b21cdadd8f5e5db2060d886718e067c93ed27a18bf6d8

See more details on using hashes here.

File details

Details for the file vpython-7.6.1-cp36-cp36m-manylinux1_x86_64.whl.

File metadata

  • Download URL: vpython-7.6.1-cp36-cp36m-manylinux1_x86_64.whl
  • Upload date:
  • Size: 3.7 MB
  • Tags: CPython 3.6m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.8.1

File hashes

Hashes for vpython-7.6.1-cp36-cp36m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 02dbbcab1e392bd2c12ab8d5156f7f1821e1e4be6e831fda25720d1f74894252
MD5 1a0ca3e5bb970b57bfd9f2dbff2fc7fe
BLAKE2b-256 5a96238de1405074652594fa6a01dec9f172d0df936a286ac17c5213e70d8480

See more details on using hashes here.

File details

Details for the file vpython-7.6.1-cp36-cp36m-macosx_10_13_x86_64.whl.

File metadata

  • Download URL: vpython-7.6.1-cp36-cp36m-macosx_10_13_x86_64.whl
  • Upload date:
  • Size: 3.6 MB
  • Tags: CPython 3.6m, macOS 10.13+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.6.2 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.6.10

File hashes

Hashes for vpython-7.6.1-cp36-cp36m-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 ada507d31a6eace5e1527f1a7e6060bdebb05d2504a4b5131243724700aa3024
MD5 213e99b0c6c6af74449cd79d1cfd8088
BLAKE2b-256 c6a87578c52bc8b34df191fc181e3daed8f9446ae65060facc268496b5366c0e

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