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

Uploaded Source

Built Distributions

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

Uploaded CPython 3.8Windows x86-64

vpython-7.6.2rc12-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (3.8 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.12+ x86-64manylinux: glibc 2.5+ x86-64

vpython-7.6.2rc12-cp38-cp38-macosx_10_14_x86_64.whl (3.6 MB view details)

Uploaded CPython 3.8macOS 10.14+ x86-64

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

Uploaded CPython 3.7mWindows x86-64

vpython-7.6.2rc12-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (3.7 MB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.12+ x86-64manylinux: glibc 2.5+ x86-64

vpython-7.6.2rc12-cp37-cp37m-macosx_10_14_x86_64.whl (3.6 MB view details)

Uploaded CPython 3.7mmacOS 10.14+ x86-64

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

Uploaded CPython 3.6mWindows x86-64

vpython-7.6.2rc12-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (3.7 MB view details)

Uploaded CPython 3.6mmanylinux: glibc 2.12+ x86-64manylinux: glibc 2.5+ x86-64

vpython-7.6.2rc12-cp36-cp36m-macosx_10_14_x86_64.whl (3.6 MB view details)

Uploaded CPython 3.6mmacOS 10.14+ x86-64

File details

Details for the file vpython-7.6.2rc12.tar.gz.

File metadata

  • Download URL: vpython-7.6.2rc12.tar.gz
  • Upload date:
  • Size: 3.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.8.11

File hashes

Hashes for vpython-7.6.2rc12.tar.gz
Algorithm Hash digest
SHA256 2b85a67071c69cccb25b8aaeddff63790878745117932bfb22f36b0b19abc885
MD5 0f582a04985603b04dd8eb67f18493a9
BLAKE2b-256 feae398fa00eec7dc384c2ecd4aa1ee304c1b246f2dc5b7d6826228b9df07b7c

See more details on using hashes here.

File details

Details for the file vpython-7.6.2rc12-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: vpython-7.6.2rc12-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.4.2 importlib_metadata/4.6.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.8.10

File hashes

Hashes for vpython-7.6.2rc12-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 f0e1f610816f887e0f0c8f5a26f4984789f155319baa5382af36c475823880d8
MD5 5858efaa9268eccb75df94f2a3bea95e
BLAKE2b-256 db3ccde716314d4fa59c37c09472045547e2b265480b472a8df391263e2e66b8

See more details on using hashes here.

File details

Details for the file vpython-7.6.2rc12-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for vpython-7.6.2rc12-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 954fa0e175eff24ed473998c3c70a0397ed04e2547a0fb661f3e7fee3c8baf9e
MD5 ce4f3ee43bb7f8aa273582eb54660cb4
BLAKE2b-256 89c24e17b90b7ff7693e5479d72be0f6a39ef9ab8adfcb06cd1ae80f42ae2657

See more details on using hashes here.

File details

Details for the file vpython-7.6.2rc12-cp38-cp38-macosx_10_14_x86_64.whl.

File metadata

  • Download URL: vpython-7.6.2rc12-cp38-cp38-macosx_10_14_x86_64.whl
  • Upload date:
  • Size: 3.6 MB
  • Tags: CPython 3.8, macOS 10.14+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.8.11

File hashes

Hashes for vpython-7.6.2rc12-cp38-cp38-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 02501feeb94a57922168f7a6b0ae4151570b8de56e3bac27e4f3da9b1d30e606
MD5 cf6657edf6777ebe852bb1c830babc5a
BLAKE2b-256 ac02a6baf89cbff9ba8bc81e33e092716d1eb1dfb15abd7b58007f49e301455a

See more details on using hashes here.

File details

Details for the file vpython-7.6.2rc12-cp37-cp37m-win_amd64.whl.

File metadata

  • Download URL: vpython-7.6.2rc12-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.4.2 importlib_metadata/4.6.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.7.9

File hashes

Hashes for vpython-7.6.2rc12-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 b6b0b70d9920232586ad3ecb319b0ce164930b02fa1f17156eabcadbb7140164
MD5 8a6cba51e41f50110c10b3d0ac621521
BLAKE2b-256 6d7b8fe0ad970245d2587308d5a9c8c1473a9216bafc01382bacca6ff5520405

See more details on using hashes here.

File details

Details for the file vpython-7.6.2rc12-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for vpython-7.6.2rc12-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 e65025ecd447fb0cadf33a6eac449d08ea9306617125a083167eacf717484ddc
MD5 054deddc9ec84b39c36d0a80f3db95f9
BLAKE2b-256 9a7c2bb037bbd81b8844d0e167e51f84b987d1d18bfc04ec032e612749c785ce

See more details on using hashes here.

File details

Details for the file vpython-7.6.2rc12-cp37-cp37m-macosx_10_14_x86_64.whl.

File metadata

  • Download URL: vpython-7.6.2rc12-cp37-cp37m-macosx_10_14_x86_64.whl
  • Upload date:
  • Size: 3.6 MB
  • Tags: CPython 3.7m, macOS 10.14+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.7.11

File hashes

Hashes for vpython-7.6.2rc12-cp37-cp37m-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 499963b31b4081c4d58b4399e1e9a4742123ca8a723f4f831dd38d28655e675f
MD5 bad9cf9a09cc1197fd4dd565f5974972
BLAKE2b-256 446c4b53c60c2abe4527eede64d7fd3ee1f58272915e6a906cc5c18cfa5660f8

See more details on using hashes here.

File details

Details for the file vpython-7.6.2rc12-cp36-cp36m-win_amd64.whl.

File metadata

  • Download URL: vpython-7.6.2rc12-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.4.2 importlib_metadata/4.6.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.6.8

File hashes

Hashes for vpython-7.6.2rc12-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 bd1994196acc6022abfb1fd46f38e411e1a2fef6af484c64cf40af2fe5bbcffa
MD5 01002e31e14987ea7575f199d54c027b
BLAKE2b-256 29d3199189eb4e4bad8d0ce683670d631284d6ff935e82fbbe73877a13465401

See more details on using hashes here.

File details

Details for the file vpython-7.6.2rc12-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for vpython-7.6.2rc12-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 3503a5914d89953c4ca9034b6bb3c20b952fc401274c9130ac7df961040421e7
MD5 e2ef09c45a744f96a714986a13b7adbb
BLAKE2b-256 76424e4eb40eb6a333b591c342f004b8594c912fe24238cdf0f675d014f2a295

See more details on using hashes here.

File details

Details for the file vpython-7.6.2rc12-cp36-cp36m-macosx_10_14_x86_64.whl.

File metadata

  • Download URL: vpython-7.6.2rc12-cp36-cp36m-macosx_10_14_x86_64.whl
  • Upload date:
  • Size: 3.6 MB
  • Tags: CPython 3.6m, macOS 10.14+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.6.14

File hashes

Hashes for vpython-7.6.2rc12-cp36-cp36m-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 293b2f2ea0521052aaf620d390a58c80a79919ab3d3a1e65e2758f54ec712338
MD5 74ee4c3d26c7dea1c8dd3919b96e8d7d
BLAKE2b-256 4861b5782751456722713efe2f89d0bdf2112c51217f1854c42aab5d534de65f

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