Git Product home page Git Product logo

model_exploder's Introduction

Model Exploder Tool

Separating a building

Model Exploder separates a 3D model into its component parts for a better view of their relationship and how they fit together.

Model separation happens as if by a small controlled explosion, emanating from its center. This is often known as an exploded-view of the model.

Exploded-views can be used to understand a model from its components and can also be used to create drawings for parts catalogs or assembly/maintenance/instruction information. Or in general, just to blow-up a 3D model.

Quick Links

Features

  • Easy to use: select a model, click the Use button and move the Distance slider.
  • Includes several ways to explode the model around a central point, axis or plane.
  • Interactive editing of the explosion center: just drag the "Center" manipulator in the viewport.
  • Works with meshes, USD Shapes, references/payloads. Point instances and skeletons are moved as a whole.
  • Adds Undo-Redo state when applying changes.
  • Works with NVIDIA's Omniverse Create, Code 2022+ or any other Kit-based apps. Compatible with multiple viewports and with the legacy viewport of older Omniverse versions.

Installation

This tool is a plain Omniverse extension that can be installed like any other.

  1. Download the latest release or clone the repository into your computer.
  2. In the Omniverse App (Create, Code, etc.), open the Extensions window from: Window menu > Extensions.
  3. In the Extensions window, open the Settings page, by clicking the small gear button at the top of the left bar.
  4. In the Settings page that appears at the right, you'll see a list of Extension Search Paths. Add the path location of the exts/ subfolder. This subfolder is inside the location to where you installed in step 1.
  5. In the search field at the top left bar, next to the gear button, type model exploder - the tool should appear listed - click it.
  6. Information about the Model Exploder tool will appear at the right side: check the Enabled and the Autoload checkboxes. The tool is now installed in your Omniverse app.

How to Use

Select Model Exploder from the Window menu - the Model Exploder tool window appears:

Model Exploder window

Select models to explode: at least two parts must be selected (meshes, USD Shapes, etc). The top button changes to "Click to use...". Click it to explode the selected parts.

Click to use

Move the Distance slider and the parts are exploded from their shared center:

Distance slider

The Center combo box chooses the type of explosion movement: from a central point, around an axis or expanding from a plane.

Center

Move the center point/axis/plane by dragging the Center manipulator in the viewport. Click the Recenter button to bring it back to the default middle position:

Center

The Options section allows customization of the tool's behavior:

Options

The available options are:

  • Acceleration from Center: exploded parts accelerate based on their initial distance from Center. This setting controls how farthest parts accelerate more than nearest ones.
  • Distance Multiplier: multiply the explosion distance selected in the above slider. For smaller or larger explosion scales.
  • Initial Bounds Visibility: the visibility of the initial bounding box for the used shapes, from transparent to fully visible.
  • Unselect Parts on Use: when starting to use a group of selected parts, should they be unselected for simpler visuals?

Finally, click the Apply button to add an Undo-Redo state. Or Cancel to return to the initial parts positions.

Tips

  • Click the ( i ) button for help and more information (opens this page).
  • On complex models, the first interaction with the Distance slider might take a few seconds - next ones are much faster.
  • If model parts do not separate and remain joined to each other:
    • Make sure model is divided in parts (meshes, USD shapes, etc), as this tools works by moving those parts.
    • With the Distance slider away from its leftmost position, move the Center manipulator in the viewport into the middle of the parts group.
    • Separate the group of "stuck" parts before separating the rest of the model.
  • The initial bounds preview and center manipulator work in the active (last used) viewport. To change viewports, close the Model Exploder window and open again after using the new viewport.

Credits

This tool is developed by Syntway, the VR/Metaverse tools division of FaronStudio.

The tool uses SVG icons from SVG Repo. 3D models used in examples are from: Bastien Genbrugge, mdesigns100, dap, KatSy and Pixar's Kitchen Set.

Examples

Separating a house

Separating a sphere bot

Separating a building

Separating a kitchen

model_exploder's People

Contributors

jndiogo avatar syntway avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

model_exploder's Issues

Exploder doesn't explode on USD Composer

Dear Syntway developers, thank you for this extension. It exactly what I was looking for although... it does not seem to work on USD Composer 2023.2.1. As you can see from the screenshot below, to replicate the error you can import a simple NVIDIA-provided asset from the catalogue. After selecting all the parts of the object and activating the exploded view, nothing moves, not even after moving the center or changing the settings.

Omniverse model exploder 1

From the console I can see this error repeating multiple times while moving the center of the explosion, which most likely is also the root cause of the problem:

2024-03-14 16:25:45 [801,840ms] [Error] [asyncio] Task exception was never retrieved
future: <Task finished name='Task-1781' coro=<Engine._async_apply() done, defined at /home/jdoe2/Omniverse_extensions/model_exploder/exts/syntway.model_exploder/syntway/model_exploder/engine.py:358> exception=AttributeError("module 'pxr.Sdf' has no attribute 'BeginChangeBlock'")>
Traceback (most recent call last):
  File "/home/jdoe2/Omniverse_extensions/model_exploder/exts/syntway.model_exploder/syntway/model_exploder/engine.py", line 359, in _async_apply
    self._apply(dist_value, explo_center, meshes)
  File "/home/jdoe2/Omniverse_extensions/model_exploder/exts/syntway.model_exploder/syntway/model_exploder/engine.py", line 380, in _apply
    Engine.apply_state(state, self.usd.stage, self)
  File "/home/jdoe2/Omniverse_extensions/model_exploder/exts/syntway.model_exploder/syntway/model_exploder/engine.py", line 485, in apply_state
    Sdf.BeginChangeBlock()
AttributeError: module 'pxr.Sdf' has no attribute 'BeginChangeBlock'

May I kindly ask you some help with this, please? It is a pity that this extension is not working anymore!

Many thanks.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.