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

Uploaded Source

Built Distributions

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

Uploaded CPython 3.10Windows x86-64

vpython-7.6.4rc1-cp310-cp310-macosx_10_15_x86_64.whl (3.6 MB view details)

Uploaded CPython 3.10macOS 10.15+ x86-64

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

Uploaded CPython 3.9Windows x86-64

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

Uploaded CPython 3.9macOS 10.15+ x86-64

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

Uploaded CPython 3.8Windows x86-64

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

Uploaded CPython 3.8macOS 10.15+ x86-64

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

Uploaded CPython 3.7mWindows x86-64

vpython-7.6.4rc1-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.4rc1.tar.gz.

File metadata

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

File hashes

Hashes for vpython-7.6.4rc1.tar.gz
Algorithm Hash digest
SHA256 f2490fb59ac48286850d65c8e9e28aa1f3eb65ad640a50b4936db619f51ba294
MD5 9a3b17683b7be4102fe77bd1aabf6633
BLAKE2b-256 63142ee3f4875d51819bef1e624bd8869fe4edfdb03a99acb0510ed0796a49d9

See more details on using hashes here.

File details

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

File metadata

  • Download URL: vpython-7.6.4rc1-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.0 CPython/3.10.4

File hashes

Hashes for vpython-7.6.4rc1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 35a3b90945090479f994daeab88d9ccb37bdc148c575ca070946da99d00a8999
MD5 bb0ddad644549c2be001a6a01f22987c
BLAKE2b-256 78bd11339ad1f6256079c1d10fe41f32248b1408ae4e5f0c8651f5a57fc6dbd5

See more details on using hashes here.

File details

Details for the file vpython-7.6.4rc1-cp310-cp310-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for vpython-7.6.4rc1-cp310-cp310-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 290a239c6ec89adb82953ec9dbccbf2618258e97367a3a6b3a383eb2f4b4ba7b
MD5 6bc6c994eb9e14d214be15fb3d8e5cbb
BLAKE2b-256 3df44b882bcf49953b9ae56dfc14ff1582ce4a7c6e9c9c62eb527e5b6d0ab2a5

See more details on using hashes here.

File details

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

File metadata

  • Download URL: vpython-7.6.4rc1-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.0 CPython/3.9.13

File hashes

Hashes for vpython-7.6.4rc1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 a5fbcb1e8bc4193a843ce871bbcee57a6fafd354821a0cacf11eb9ef209ee751
MD5 f0949cfa4bec4dfa369a44cc0c44d9d2
BLAKE2b-256 2dc47f0e2b760399baf355123ed86ab7a07e671110c779f2c913f1cafb09af2a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vpython-7.6.4rc1-cp39-cp39-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 fc36eae2c29adcb3a91c7e884929ecfc8e2d726a8f7da34a562f5aa95d939e61
MD5 7befd105464ac35398d9f06dd67f63df
BLAKE2b-256 05de1bfe27166be750b517ed8089594d8464dd8b612b34015021adfca6286077

See more details on using hashes here.

File details

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

File metadata

  • Download URL: vpython-7.6.4rc1-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.0 CPython/3.8.10

File hashes

Hashes for vpython-7.6.4rc1-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 2f0cf4f957049981f304a9527d08ab77ecaa7c502b9e41bb05a6cf579a1deacb
MD5 13e0c20155f072d41c9710b2e77403d8
BLAKE2b-256 78f44050a89435ce92aa6a587114dfc9c643ac32a7216afd8fd9b9f46cb6edcf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vpython-7.6.4rc1-cp38-cp38-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 7db091a06e4162d1779133214c437eda47b54ed60cf5db0972d2cae2233a49f7
MD5 a629ab2ac6a0699aca6c586106c63dd0
BLAKE2b-256 7127a7120c181354e43648aa7edbc121d183f64b84247f7a6a64b2800a73c572

See more details on using hashes here.

File details

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

File metadata

  • Download URL: vpython-7.6.4rc1-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.0 CPython/3.7.9

File hashes

Hashes for vpython-7.6.4rc1-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 81b984d7801aeb435fcace2eeb5ffdc3be30e803ad8636cdfff1f1040f25f9b6
MD5 1ae956162f3040b6afd6dda14605059e
BLAKE2b-256 2f22a2a2f6581cf424bedc53aea1cebb344b17f5196cbc14a23a99e8d4d5a669

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vpython-7.6.4rc1-cp37-cp37m-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 bc7ee6d6258b7b038c0f56c684f4542ee1a78134d352042de9da55d1d2aaf07b
MD5 053efc9c1cf7107d44a4aa06238828ee
BLAKE2b-256 061594fc8db2a96278d0b75f5e80ec3f5aec90c3f8aff403887a5b48aff1837d

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