Skip to main content

veux

SEES Logo

Highly efficient and portable finite element visualization framework


DOI Latest PyPI version

veux is a finite element rendering library that leverages modern web technologies to produce sharable, efficient, and detailed renderings.



veux is a finite element rendering library that leverages modern web technologies to produce sharable, efficient, and detailed renderings. Unlike most tools that only provide temporary visualization, veux generates persistent 3D models that can be stored in files, shared with colleagues, and viewed with any standard 3D model viewer. This means anyone can interact with the renderings without needing to install specialized software or even Python. Simply open the 3D object with your computer’s 3D viewer (e.g., 3D Viewer on Windows) or load it into a free online viewer in like gltf-viewer.

Documentation is currently under development.

Features

  • Detailed Render frames with extruded cross sections
  • Persistence: Save your finite element visualizations as persistent 3D models that can be revisited and analyzed at any time.
  • Portability: Share your models effortlessly with colleagues, enabling seamless collaboration and review.
  • Accessibility: View and interact with the models using any standard 3D model viewer, eliminating the need for specialized software or Python installation.
  • Versatility: A wide selection of rendering backends and output file types, including optimized 3D web formats like .glb. Generated 3D models can be loaded directly into programs like PowerPoint and animated.
  • Correctly render models that treat both y or z as the vertical coordinate.

Gallery

Getting Started

To install veux run:

pip install veux

Python Interface

To render a model directly from Python, use the veux.render function:

artist = veux.render(model, canvas=canvas)
  • model: the model parameter can be of several types
    • str (string) variables are treated like file paths. Supported files are .json and .tcl
    • dict variables are treated
    • opensees.Model variables from the sees Python package can be passed directly
  • canvas: The canvas parameter is a string which indicates which "backend" technology to use. The options are:
    • "gltf" is the default canvas and produces the highest quality renderings. You can save renderings drawn by this backend to either .html or .glb files. .glb files are preferred as they are a natural format for 3D objects and can be viewed by standard 3D viewing applications.
    • "plotly"
    • "matplotlib": can be used to programatically create .png files.

Command Line Interface

To create a rendering, execute the following command from the anaconda prompt (after activating the appropriate environment):

python -m veux model.json -o model.html

where model.json is a JSON file generated from executing the following OpenSees command:

print -JSON model.json

If you omit the -o <file.html> portion, it will plot immediately in a new window. You can also use a .png extension to save a static image file, as opposed to the interactive html.

Note Printing depends on the JSON output of a model. Several materials and elements in the OpenSeesPy and upstream OpenSees implementations do not correctly print to JSON. For the most reliable results, use the opensees package.

By default, the rendering treats the $y$ coordinate as vertical. In order to manually control this behavior, pass the option --vert 3 to render model $z$ vertically, or --vert 2 to render model $y$ vertically.

If the opensees package is installed, you can directly render a Tcl script without first printing to JSON, by just passing a Tcl script instead of the JSON file:

python -m veux model.tcl -o model.html

To plot an elevation (elev) plan (plan) or section (sect) view, run:

python -m veux model.json --view elev

and add -o <file.extension> as appropriate.

To see the help page run

python -m veux --help

Related Links

See also

The veux packages was used to generate figures for the following publications:

Support

PEER Logo Caltrans Logo STAIRlab Logo

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

veux-0.0.3.tar.gz (81.1 kB view details)

Uploaded Source

Built Distribution

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

veux-0.0.3-py3-none-any.whl (86.6 kB view details)

Uploaded Python 3

File details

Details for the file veux-0.0.3.tar.gz.

File metadata

  • Download URL: veux-0.0.3.tar.gz
  • Upload date:
  • Size: 81.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.13.1

File hashes

Hashes for veux-0.0.3.tar.gz
Algorithm Hash digest
SHA256 74b108641fa40e7c8017b9251e2be0da57797817d68c21ccac7f2ddf583da02e
MD5 ccea20b9d3da7061f6621e3bc7108f7d
BLAKE2b-256 96b1f1c3a3ed4323de447cec8d387271cb5ae12a44788dc3afc3875cb5989ef0

See more details on using hashes here.

File details

Details for the file veux-0.0.3-py3-none-any.whl.

File metadata

  • Download URL: veux-0.0.3-py3-none-any.whl
  • Upload date:
  • Size: 86.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.13.1

File hashes

Hashes for veux-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 be319a6c520f255541b2fc326db3bda7a200fe5d8c4d1a7415b2b7b0cbe22418
MD5 29e1c5c4849f5f4ccf5f2c9d18ebc550
BLAKE2b-256 da2c1ad2c10e4b8948a0e8889558525a512898a1aac3cb4730752c5dd78aef04

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