Instamat2Remix Plugin

Hi everyone,

I’m currently porting my Substance2Remix plugin to InstaMAT (InstaMAT2Remix). The goal is to allow a seamless “Pull” from NVIDIA’s RTX Remix directly into InstaMAT for texturing.

The Problem

In my current build, I can successfully trigger the “New Project” dialog via the action system, but I’m having trouble getting the plugin to “take over” from there. The wizard opens, but it stops without filling in the mesh path or clicking “Create”.

Current Approach & Roadblock

Because the New Project UI is QML-based, I’ve been trying to use QAccessible to find the fields and QTimer::singleShot to fire the automation. However, I’ve learned that the dialog is launched via QDialog::exec(), which is a blocking call. This means my automation logic only runs after the dialog is closed.

I plan to refactor this using QMetaObject::invokeMethod with a Qt::QueuedConnection to ensure the logic executes from within the dialog’s event loop.

The “Zero-Click” Goal

My ultimate goal for InstaMAT2Remix is a seamless workflow: the user clicks “Pull” in Remix, and the plugin handles the heavy lifting—initializing the project and loading the mesh—so the user lands directly in the active texturing workspace.

I have two questions for the community and dev team:

  1. Stable Identifiers: To make the UI automation robust, does anyone have the specific class names or object names for the project-creation dialog elements?
  2. Native API Initialization: Instead of driving the UI via automation, is there a way in the C++ API (e.g., via IInstaMATPackage or a project factory) to initialize an Asset Texturing project directly with a mesh path and settings?

I’ve made two videos demonstrating where the plugin is currently getting stuck:

If anyone has experience with programmatically creating projects or a better way to handle the QML wizard from a C++ plugin, I’d love to hear your thoughts!

Thanks,
skurtyyskirts

Here’s the repositories if anyone would like a look :slight_smile:

Hello @skurtyyskirts and welcome to our community!

Our team has responded to your email regarding your questions. If you have any further questions, feel free to reach out.

Thanks!