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

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

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

Uploaded CPython 3.10Windows x86-64

vpython-7.6.4rc4-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.4rc4-cp39-cp39-win_amd64.whl (3.6 MB view details)

Uploaded CPython 3.9Windows x86-64

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

Uploaded CPython 3.9macOS 10.15+ x86-64

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

Uploaded CPython 3.8Windows x86-64

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

Uploaded CPython 3.8macOS 10.15+ x86-64

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

Uploaded CPython 3.7mWindows x86-64

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

File metadata

  • Download URL: vpython-7.6.4rc4.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.4rc4.tar.gz
Algorithm Hash digest
SHA256 92c96a0a68e5e8d2a2293f44d6715c999ab6ccf5d8f310a1c575f072c7117493
MD5 41480e6259409a3e176ec2e44745a6a1
BLAKE2b-256 a1f510fe468d65da3a7c6da9fb0862f4329c156c6f8f3411e770d2dff818134d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: vpython-7.6.4rc4-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.4rc4-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 d74bc5065a3f36e83c8d05a874651eb6724a1c41779e1e57078e4c8f55654da3
MD5 8f4822191784add84d2bf9087a1e8631
BLAKE2b-256 2f14eec15a3bd219968155f5c1d0a66fa6cf8d1d9bac009d66fd85115bfc34bb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vpython-7.6.4rc4-cp310-cp310-macosx_10_15_universal2.whl
Algorithm Hash digest
SHA256 9ed0a423cf97594074c3b55a5c73668cbbf652766dfbfdec222dfc829c15d2f9
MD5 fcea0a9e7ce691ec6de54746417ca826
BLAKE2b-256 a8885bed5098188a36a4e7d1029a3f5bb40c763e755914caa863e964ee011fee

See more details on using hashes here.

File details

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

File metadata

  • Download URL: vpython-7.6.4rc4-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.4rc4-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 edc20364f09c5116786ab063b48a66e3fb9cc773e7832b72ec704857f5e388f7
MD5 c57b450a97bef627c1e12af9516273ce
BLAKE2b-256 7bd055f6f9b733464c6be6fa11a18cbe09305e87f06cdcd6f8d5568c943b3438

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vpython-7.6.4rc4-cp39-cp39-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 fc2808acc3d556a6df5e12667fbfe28d947370068098d5e09656cf04ac8444ce
MD5 6e951db041d120d4bdfe4f76a7880d2c
BLAKE2b-256 63dee19036ae2efcfbe460ea2053ce6267d9049110b3c457ec585d2af4ab8e24

See more details on using hashes here.

File details

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

File metadata

  • Download URL: vpython-7.6.4rc4-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.4rc4-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 3880c733dc13a53cea6ce814c0f3aedfa495ad60ff1a058ca5cf3f3d73f9b0b6
MD5 295bb1db768bb74664ce955adfdc430b
BLAKE2b-256 bb69564eb2e6a9605161e5d6de69c753137d545a8e263667261e953195915dab

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vpython-7.6.4rc4-cp38-cp38-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 3474f2b1492e63993ab22cc1ef3dc04d99653f88e6726503c24515ba452cf674
MD5 9bb1f89c601a70774e5db3dab0dc4a28
BLAKE2b-256 71a64fd71c74198958bcc1110c28ce1f5ad6513c1798da639629642a6584d822

See more details on using hashes here.

File details

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

File metadata

  • Download URL: vpython-7.6.4rc4-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.4rc4-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 03a379e3936f5c50751f31e4f70a4ca5f88cac759e72b39cb4d0fbca1a438d13
MD5 0ac9ef50ef9f37a1d9f4faa191c7e917
BLAKE2b-256 518476327f2a6a20dd1ad0c49a8b8f7d653859553486cba1a432c8c9738599e4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vpython-7.6.4rc4-cp37-cp37m-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 6446a349a2f1b6c60fc32607fa6d7ee9badc2273d01171f13cb104b50080af6f
MD5 babc4d9c0056cb4bf3e98070bced2bd6
BLAKE2b-256 ac50a1f8d187ad47127b6bc632dbbac5176e18b7383044d3beb977ff0993168c

See more details on using hashes here.

Supported by

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