Skip to main content

A viewer for 3D meshes and constructive solid geometry (CSG) models.

Project description

SCADview

An application to view 3D meshes created from Python.

Python versions supported

SCADview supports Python versions 3.11 - 3.13, since some packages it depends on do not supply wheels for versions > 3.13. Attempting to install in 3.14 or higher may result in an error.

How it works

SCADview enables a iterative work flow to build Trimesh objects.

  1. Create a new python file, and
  2. Write a create_mesh function code to build a Trimesh object.
  3. Run SCADview on the command line via: scadview
  4. Load the Python file into SCADview.
  5. SCADview shows you the mesh. You can move the camera around to inspect your mesh.
  6. Edit your Python file to modify your mesh.
  7. Reload and view the modified mesh.
  8. Repeat the edits and reloads.

Optional geometry can also be exposed as UI-togglable features by decorating mesh-returning functions or methods with scadview.feature(...).

Getting Started

Installation

Open your terminal application for example cmd in Windows or Terminal.app under Applications > Utilties > Terminal.app in macOS.

In the terminal, check that you have Python 3.11 through 3.13 or greater via

python --version

or, if the python command cannot be found:

python3 --version

If Python 3.11 through 3.13 is installed on your system, you can install SCADview directly into your system.

Virtual venv option

As is always a good practice, set up a Python virtual environment and activate it:

Install Trimesh

First install Trimesh so you can script your 3d models (if using a virtual environment, activate it first):

pip install trimesh

Trimesh has optional modules you can add.
Read its docs to determine which ones will help you most.

Install SCADview

To install, SCADview run

pip install scadview

If you already have a project using Trimesh set up, install scadview into that project instead and install there.

Running

To run: scadview

The first time you run, it can take some time to set up the user interface, and so it may take longer than when you run it in future runs.

A splash screen may show on startup.
If it is not available, you will see a message in the terminal output:

WARNING scadview.ui.splash_window: The splash screen is not available so it will not be shown.

Otherwise, you will see:

Splash{ .md-image width=400 }

Once it has initialized, you should see the main user interface: Startup Window{ .md-image width=700 }

Notice that your terminal shows output from the scadview module.

Loading in your model

Using a code editor, create a file with the following python code:

from trimesh.creation import icosphere


def create_mesh():
    return icosphere(radius=40, subdivisions=3)

Notice that you don't need to import the scadview package.

If you want to expose optional parts of your model in the UI, you can define features like this:

from trimesh.creation import box
from scadview import feature, feature_default


feature_default("guide", enabled=False)


@feature
def guide():
    return box([20, 10, 8])

Features are enabled by default. feature_default(...) sets the initial state for a feature name when no UI override exists.

Save the file:

  • If you did not create a virtual environment, you can save it anywhere on your system.
  • If you installed in a virtual environment, save your file in that folder.

Use the Load button on the SCADview UI to load the file.

You should see a sphere! sphere

Modify and reload

Now change the subdivisions parameter in your code to 2:

from trimesh.creation import icosphere


def create_mesh():
    return icosphere(radius=40, subdivisions=2)

Click Reload. You should see an updated sphere with fewer triangles. sphere_2

Export

Once you are happy with your mesh, you can export it for 3d printing or for loading other 3d software.

  1. Click the Export button.
  2. Choose a format.
  3. Click Save.

The Export dialog may look different on your computer. export

Versioning

SCADview follows Semantic Versioning 2.0.0.
In short: MAJOR versions for incompatible API changes, MINOR for backward-compatible features, and PATCH for backward-compatible bug fixes. While the major version is 0, we may introduce breaking changes in minor releases.


📜 License

SCADview is open-source software licensed under the Apache License, Version 2.0.

You are free to use, modify, and redistribute this software — including in commercial applications — provided you include the license text above and retain copyright notices.


⚠️ Disclaimer

SCADview is provided “as is”, without warranty of any kind. It is intended for visualization, analysis, and experimentation purposes. It is not designed for safety-critical, medical, or certified manufacturing applications. Use at your own discretion.


🏷️ Name and Branding

The name SCADview and its associated logo are trademarks of Neil Lamoureux.
While you are free to fork and modify the code under the Apache License,
you may not use the name SCADview to promote or distribute modified versions
without prior written permission.
Please choose a distinct name for derivative works (e.g. “YourTool, based on SCADview).

Project details


Download files

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

Source Distribution

scadview-0.2.8.tar.gz (10.6 MB view details)

Uploaded Source

Built Distribution

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

scadview-0.2.8-py3-none-any.whl (713.3 kB view details)

Uploaded Python 3

File details

Details for the file scadview-0.2.8.tar.gz.

File metadata

  • Download URL: scadview-0.2.8.tar.gz
  • Upload date:
  • Size: 10.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.17 {"installer":{"name":"uv","version":"0.11.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for scadview-0.2.8.tar.gz
Algorithm Hash digest
SHA256 c8b1d3c433e506f78dd42748ec4fc29aa75af799c03e64c78546ec8c611b7e28
MD5 3dbcf1b61e9144dee14b82b44741abda
BLAKE2b-256 070a5c32aaebb4de57ac71c52d6065e0df609b6ea9e15f1e39d8562102025156

See more details on using hashes here.

File details

Details for the file scadview-0.2.8-py3-none-any.whl.

File metadata

  • Download URL: scadview-0.2.8-py3-none-any.whl
  • Upload date:
  • Size: 713.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.17 {"installer":{"name":"uv","version":"0.11.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for scadview-0.2.8-py3-none-any.whl
Algorithm Hash digest
SHA256 dd941a0e9b0c5b05becb9d6554e924033c51ddb8a8bb5b8d330a15c566895a53
MD5 57ce626f8ce9443527436fb8ea03ebb6
BLAKE2b-256 b891c4b106419ca8bae2d31a9c8bf6f562d9d396c9e16fb1bf9ac31ed2df05d9

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