Xminmaxsteps
YminmaxstepsZminmaxsteps
E
B
Click and drag around the screen to change perspective
Scroll to zoom in and out
First, select the field parameters in cartesean coordinates, in which the the field will be calculated
You can set the limits and the resolution. A higher step count means a higher resolution but it will also take longer to compute.
Depending on your GPU, drawing more than 1.000.000 arrows will also cause a lot of lag.
Lastly, you can select the electric (E) or magnetic field (B). The chosen option will be highlighted in green.
Important: These grid options will stay in effect until the page gets refreshed, so multiple shapes can be superpositioned more easily.
In the top center you can manage your shapes. There are various shapes you can define such as a sphere with inner and outer radii and ranges for \(\theta\) and \(\varphi\) and if you chose the electric field you can either select a surface charge or volumetric charge, and for the magnetic field you can select a surface current or a volumetric current. Generally there are 3 types of shapes; Volumetric (3D) ones are highlighted in red, 2D shapes such as a surface have a green background and lines have a blue background. Clicking on each shape opens a menu with the options and with a button to add the shape. Doing so will calculate the field at each point of the grid previously defined. If you want to delete the shape again, you can do it in the first column.
While the website runs on Javascript with some libraries for rendering \(\LaTeX\) and running 3D graphics
using Three.js, the calculation of the field works by importing a compiler to convert a python script to
Webassembly via Pyodide. By clicking on the button Run Python you can write and run code as if you
were in the project. You need to open the browser console
via Ctrl+Shift+C or Ctrl+Shift+I or via right clicking on the website anywhere and selecting Inspect
element and navigating to the console to see the output of the code running. If you end your python
code with a singular expression
such as np.linspace(0,10,100) it will give the output of the command.