Skip to main content

Import a Wavefront OBJ file into a plot.ly Dash 3dMesh graph:

pip install git+https://github.com/aegis1980/dash-obj-in-3dmesh.git

Some notes:

File locations

Put your wavefront obj & mtl file in 'data/obj' directory (this is the default). Alternatively pass a path to:

import_geometry(obj_names : List[str], path = _config.GEOMETRY_DIR)

Geometry

  • Only triangulated meshes supported (i.e 3 vertices per face). Sort this out in your modelling software (e.g. Rhino)
  • Textures, normals, groups are all ignored - only vertices, faces, materials and object names are parsed and passed to Dash graph as mesh data.

Materials

Only basic materials supported in mtl file: e.g:

newmtl diffuse_Green
Ka 0.0000 0.0000 0.0000
Kd 0.0000 1.0000 0.0000
Ks 1.0000 1.0000 1.0000
Tf 0.0000 0.0000 0.0000
d 1.0000
Ns 0.0000

Only the value for Kd is used - so set this as your colour (in modelling software)

Code example

import dash
from dash_obj_in_3dmesh import geometry_tools, wav_obj


model_name = "test" #.obj & .mtl files in data/obj


axis_template = {
    "showbackground": False,
    "visible" : False
}

plot_layout = {
    "title": "",
    "margin": {"t": 0, "b": 0, "l": 0, "r": 0},
    "font": {"size": 12, "color": "white"},
    "showlegend": False,
    'uirevision':'same_all_the_time', #this keeps camera position etc the same when data changes.
    "scene": {
        "xaxis": axis_template,
        "yaxis": axis_template,
        "zaxis": axis_template,
        "aspectmode" : "data",
        "camera": {"eye": {"x": 1.25, "y": 1.25, "z": 1.25}},
        "annotations": [],
    },
}

layout = return html.Div([dcc.Graph(
                        id="graph",
                        figure={
                            "data": geometry_tools.import_geometry([model_name]),
                            "layout": plot_layout,
                        },
                        config={"scrollZoom": True}, # activates wheel thingy on mouse to zoom and wotnot
                    )])

Metadata

Release files for dash-obj-in-3dmesh 0.3.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for dash-obj-in-3dmesh 0.3.1
File Size Uploaded
dash-obj-in-3dmesh-0.3.1.tar.gz 13.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for dash-obj-in-3dmesh 0.3.1
File Interpreter ABI Platform
dash_obj_in_3dmesh-0.3.1-py3-none-any.whl Python 3 none any Details

Total release size: 27.8 kB

Release files / dash-obj-in-3dmesh-0.3.1.tar.gz

Download URL dash-obj-in-3dmesh-0.3.1.tar.gz
Size 13.4 kB
Tags Source
SHA-256 checksum
How to use checksums
647005b5b62cfec780a1966cbc2a4e507577b6d5ad73d6590a672600c1126cd8
BLAKE2b-256 checksum
How to use checksums
a8414bf97113192c62f85ebfb6cda4057424a4fc29896bc5f18a4be87b7a6370
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.39.0 CPython/3.8.0

Release files / dash_obj_in_3dmesh-0.3.1-py3-none-any.whl

Download URL dash_obj_in_3dmesh-0.3.1-py3-none-any.whl
Size 14.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
457d93724c4d973a98339fc6e494ab50b9eeeafd96c480560ba87f6a818c66a4
BLAKE2b-256 checksum
How to use checksums
9a2d27a7e7e2127a3d981edcf422573fe0813f3d24bffecf8ce940ca4daafc65
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.39.0 CPython/3.8.0

Release history Release notifications | RSS feed

0.4.0

2 release files

This release

0.3.1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page