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.

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.

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 or greater via

python --version

or, if the python command cannot be found:

python3 --version

If Python 3.11 or greater 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.

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.2.tar.gz (24.3 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.2-py3-none-any.whl (701.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: scadview-0.2.2.tar.gz
  • Upload date:
  • Size: 24.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.7.18

File hashes

Hashes for scadview-0.2.2.tar.gz
Algorithm Hash digest
SHA256 8bb60428982b3c1125292911bfc5d2222c80214e148d3a83a026a439351a29b2
MD5 fa9cff2bcd89af64fa94fc29c531f412
BLAKE2b-256 d56f02d260c335315b1317a403caaa963a57fd4c80820ebdb7c5130823596f89

See more details on using hashes here.

File details

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

File metadata

  • Download URL: scadview-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 701.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.7.18

File hashes

Hashes for scadview-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 92266a8a76d0f4c6cba74a6831fb27be4fac7d71d21af37d8277818d13e4e677
MD5 3d89fd131cb3e164d8addcb843300622
BLAKE2b-256 2dbaaa6f664962c59b42ececfed07106c7719ec11cbfd984e9935d89e551e121

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