Skip to main content

A Streamlit component to display 3D models in STL format

Project description

Streamlit STL Display Component

A Streamlit component to display STL files.

Installation

This component requires access to write files to the temporary directory.

pip install streamlit_stl

Example

Alt Text

Look at the example for a streamlit Web App:

Streamlit App

The original STL file is from Printables.

Usage

Display from file paths

import streamlit as st
from streamlit_stl import stl_from_file

success = stl_from_file(
    file_path=path_to_conf,          # Path to the STL file
    color='#FF9900',                 # Color of the STL file (hexadecimal value)
    material='material',             # Material of the STL file ('material', 'flat', or 'wireframe')
    auto_rotate=True,                # Enable auto-rotation of the STL model
    opacity=1,                       # Opacity of the STL model (0 to 1)
    shininess=100,                   # How shiny the specular highlight is, when using the 'material' style.
    cam_v_angle=60,                  # Vertical angle (in degrees) of the camera
    cam_h_angle=-90,                 # Horizontal angle (in degrees) of the camera
    cam_distance=None,               # Distance of the camera from the object (defaults to 3x bounding box size)
    height=500,                      # Height of the viewer frame
    max_view_distance=1000,          # Maximum viewing distance for the camera
    key=None                         # Streamlit component key
)

Display from file text

import streamlit as st
from streamlit_stl import stl_from_text

file_input = st.file_uploader("Or upload an STL file", type=["stl"])

if file_input is not None:
    success = stl_from_text(
        text=file_input.getvalue(),  # Content of the STL file as text
        color='#FF9900',             # Color of the STL file (hexadecimal value)
        material='material',         # Material of the STL file ('material', 'flat', or 'wireframe')
        auto_rotate=True,            # Enable auto-rotation of the STL model
        opacity=1,                   # Opacity of the STL model (0 to 1)
        shininess=100,               # How shiny the specular highlight is, when using the 'material' style.
        cam_v_angle=60,              # Vertical angle (in degrees) of the camera
        cam_h_angle=-90,             # Horizontal angle (in degrees) of the camera
        cam_distance=None,           # Distance of the camera from the object (defaults to 3x bounding box size)
        height=500,                  # Height of the viewer frame
        max_view_distance=1000,      # Maximum viewing distance for the camera
        key=None                     # Streamlit component key
    )

The functions return a boolean value indicating if the program was able to write and read the files.

The 'material' style is the default style, it uses the Phong shading model from Three.js.

License

Code is licensed under the GNU General Public License v3.0 (GPL-3.0)

License: GPL-3.0

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

streamlit_stl-0.0.6.tar.gz (182.5 kB view details)

Uploaded Source

Built Distribution

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

streamlit_stl-0.0.6-py3-none-any.whl (184.0 kB view details)

Uploaded Python 3

File details

Details for the file streamlit_stl-0.0.6.tar.gz.

File metadata

  • Download URL: streamlit_stl-0.0.6.tar.gz
  • Upload date:
  • Size: 182.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.4

File hashes

Hashes for streamlit_stl-0.0.6.tar.gz
Algorithm Hash digest
SHA256 3d98fe0f2b92d24b3ee69ddd548fc71f6c2c9175f8bca8a1b78eed3230f67357
MD5 8dacdb254ffd2db8fc7e976280a7fdcb
BLAKE2b-256 3ddd4abcd57203bb8dd4c5d7bb11dab8168e7e1a1f809085a9b9bb9dc630aa6d

See more details on using hashes here.

File details

Details for the file streamlit_stl-0.0.6-py3-none-any.whl.

File metadata

  • Download URL: streamlit_stl-0.0.6-py3-none-any.whl
  • Upload date:
  • Size: 184.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.4

File hashes

Hashes for streamlit_stl-0.0.6-py3-none-any.whl
Algorithm Hash digest
SHA256 a7c2bdff758d72aaa3a478f84544fc0e3670e5c2c5afec2139c6c28f548494f1
MD5 b28430c33a8319852bb25c3ce0ca7b8d
BLAKE2b-256 5acf73df3dc3b2d2cc02cf59892667dc4c68d1d169a6d15bdac6c9b1d4f64638

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