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.3.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.3-py3-none-any.whl (701.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: scadview-0.2.3.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.3.tar.gz
Algorithm Hash digest
SHA256 b8bc6d8cb417e7cfcaa9440439c7c9fde8d5dc19c550d421bab7ec0794e964e3
MD5 73d9cc9e90f4e0edc56463aa9f206853
BLAKE2b-256 c0e527c4cb582dc27eefdc1daad77f8838bb5591bb89e1e587db75e2ed82d119

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for scadview-0.2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 5be4ad57eba9be6e49b3eb23a90f5c97b04dc6472144d1df279a622cc324f8f2
MD5 5e28d755503a4b3ad9a8c6a9f382265b
BLAKE2b-256 a4285a4b93c98cb2411779229ac5d5c8b0a81e6ad2782f5e1313e06b18b08b91

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