trimesh.viewer package

Submodules

trimesh.viewer.notebook module

notebook.py

Render trimesh.Scene objects in HTML and jupyter notebooks using three.js

trimesh.viewer.notebook.in_notebook()

Check to see if we are in an IPython or Jypyter notebook.

Returns:
in_notebook : bool

Returns True if we are in a notebook

trimesh.viewer.notebook.scene_to_html(scene)

Return HTML that will render the scene using GLTF/GLB encoded to base64 loaded by three.js

Parameters:
scene : trimesh.Scene

Source geometry

Returns:
html : str

HTML containing embedded geometry

trimesh.viewer.notebook.scene_to_notebook(scene, height=500, **kwargs)

Convert a scene to HTML containing embedded geometry and a three.js viewer that will display nicely in an IPython/Jupyter notebook.

Parameters:
scene : trimesh.Scene

Source geometry

Returns:
html : IPython.display.HTML

Object containing rendered scene

trimesh.viewer.windowed module

windowed.py

Provides a pyglet- based windowed viewer to preview Trimesh, Scene, PointCloud, and Path objects.

Works on all major platforms: Windows, Linux, and OSX.

class trimesh.viewer.windowed.SceneViewer(scene, smooth=True, flags=None, visible=True, resolution=None, start_loop=True, callback=None, callback_period=None, caption=None, fixed=None, **kwargs)

Bases: pyglet.window.Window

Attributes:
CURSOR_DEFAULT
WINDOW_STYLE_DEFAULT
caption

The window caption (title).

config

A GL config describing the context of this window.

context

The OpenGL context attached to this window.

display

The display this window belongs to.

fullscreen

True if the window is currently fullscreen.

height

The height of the window, in pixels.

resizeable

True if the window is resizable.

screen

The screen this window is fullscreen in.

style

The window style; one of the WINDOW_STYLE_* constants.

visible

True if the window is currently visible.

vsync

True if buffer flips are synchronised to the screen’s vertical retrace.

width

The width of the window, in pixels.

Methods

activate() Attempt to restore keyboard focus to the window.
add_geometry(name, geometry, **kwargs) Add a geometry to the viewer.
clear() Clear the window.
close() Close the window.
dispatch_events() Poll the operating system event queue for new events and call attached event handlers.
draw_mouse_cursor() Draw the custom mouse cursor.
event(*args) Function decorator for an event handler.
flip() Swap the OpenGL front and back buffers.
get_location() Return the current position of the window.
get_size() Return the current size of the window.
get_system_mouse_cursor(name) Obtain a system mouse cursor.
get_viewport_size() Return the size in actual pixels of the viewport.
init_gl() Perform the magic incantations to create an OpenGL scene using pyglet.
maximize() Maximize the window.
minimize() Minimize the window.
on_activate() The window was activated.
on_close() The user attempted to close the window.
on_context_lost() The window’s GL context was lost.
on_context_state_lost() The state of the window’s GL context was lost.
on_deactivate() The window was deactivated.
on_draw() Run the actual draw calls.
on_expose() A portion of the window needs to be redrawn.
on_hide() The window was hidden.
on_key_press(symbol, modifiers) Call appropriate functions given key presses.
on_key_release(modifiers) A key on the keyboard was released.
on_mouse_drag(x, y, dx, dy, buttons, modifiers) Pan or rotate the view.
on_mouse_enter(y) The mouse was moved into the window.
on_mouse_leave(y) The mouse was moved outside of the window.
on_mouse_motion(y, dx, dy) The mouse was moved with no buttons held down.
on_mouse_press(x, y, buttons, modifiers) Set the start point of the drag.
on_mouse_release(y, button, modifiers) A mouse button was released.
on_mouse_scroll(x, y, dx, dy) Zoom the view.
on_move(y) The window was moved.
on_resize(width, height) Handle resized windows.
on_show() The window was shown.
on_text() The user input some text.
on_text_motion() The user moved the text input cursor.
on_text_motion_select() The user moved the text input cursor while extending the selection.
pop_handlers() Pop the top level of event handlers off the stack.
push_handlers(*args, **kwargs) Push a level onto the top of the handler stack, then attach zero or more event handlers.
register_event_type(name) Register an event type with the dispatcher.
remove_handler(name, handler) Remove a single event handler.
remove_handlers(*args, **kwargs) Remove event handlers from the event stack.
reset_view([flags]) Set view to the default view.
save_image(file_obj) Save the current color buffer to a file object in PNG format.
set_caption(caption) Set the window’s caption.
set_exclusive_keyboard([exclusive]) Prevent the user from switching away from this window using keyboard accelerators.
set_exclusive_mouse([exclusive]) Hide the mouse cursor and direct all mouse events to this window.
set_fullscreen([fullscreen, screen, mode, …]) Toggle to or from fullscreen.
set_handler(name, handler) Attach a single event handler.
set_handlers(*args, **kwargs) Attach one or more event handlers to the top level of the handler stack.
set_icon(*images) Set the window icon.
set_location(x, y) Set the position of the window.
set_maximum_size(width, height) Set the maximum size of the window.
set_minimum_size(width, height) Set the minimum size of the window.
set_mouse_cursor([cursor]) Change the appearance of the mouse cursor.
set_mouse_platform_visible([platform_visible]) Set the platform-drawn mouse cursor visibility.
set_mouse_visible([visible]) Show or hide the mouse cursor.
set_size(width, height) Resize the window.
set_visible([visible]) Show or hide the window.
set_vsync(vsync) Enable or disable vertical sync control.
switch_to() Make this window the current OpenGL rendering context.
toggle_axis() Toggle a rendered XYZ/RGB axis marker: off, world frame, every frame
toggle_culling() Toggle back face culling.
toggle_fullscreen() Toggle between fullscreen and windowed mode.
toggle_wireframe() Toggle wireframe mode
update_flags() Check the view flags, and call required GL functions.
update_lighting() Take the lights defined in scene.lights and apply them as openGL lights.
dispatch_event  
add_geometry(name, geometry, **kwargs)

Add a geometry to the viewer.

Parameters:
name : hashable

Name that references geometry

geometry : Trimesh, Path2D, Path3D, PointCloud

Geometry to display in the viewer window

kwargs **

Passed to rendering.convert_to_vertexlist

init_gl()

Perform the magic incantations to create an OpenGL scene using pyglet.

on_draw()

Run the actual draw calls.

on_key_press(symbol, modifiers)

Call appropriate functions given key presses.

on_mouse_drag(x, y, dx, dy, buttons, modifiers)

Pan or rotate the view.

on_mouse_press(x, y, buttons, modifiers)

Set the start point of the drag.

on_mouse_scroll(x, y, dx, dy)

Zoom the view.

on_resize(width, height)

Handle resized windows.

reset_view(flags=None)

Set view to the default view.

Parameters:
flags : None or dict

If any view key passed override the default e.g. {‘cull’: False}

save_image(file_obj)

Save the current color buffer to a file object in PNG format.

Parameters:
file_obj: file name, or file- like object
toggle_axis()

Toggle a rendered XYZ/RGB axis marker: off, world frame, every frame

toggle_culling()

Toggle back face culling.

It is on by default but if you are dealing with non- watertight meshes you probably want to be able to see the back sides.

toggle_fullscreen()

Toggle between fullscreen and windowed mode.

toggle_wireframe()

Toggle wireframe mode

Good for looking inside meshes, off by default.

update_flags()

Check the view flags, and call required GL functions.

update_lighting()

Take the lights defined in scene.lights and apply them as openGL lights.

trimesh.viewer.windowed.geometry_hash(geometry)

Get an MD5 for a geometry object

Parameters:
geometry : object
Returns:
MD5 : str
trimesh.viewer.windowed.render_scene(scene, resolution=(1080, 1080), visible=True, **kwargs)

Render a preview of a scene to a PNG.

Parameters:
scene : trimesh.Scene

Geometry to be rendered

resolution : (2,) int

Resolution in pixels

kwargs : **

Passed to SceneViewer

Returns:
render : bytes

Image in PNG format

trimesh.viewer.windowed.view_to_transform(view)

Given a dictionary containing view parameters, calculate a transformation matrix.

Module contents

viewer

View meshes and scenes via pyglet or inline HTML.