Isotropix Forums

[Released] Clarisse Survival Kit

Find useful scripts shared by the community here

[Released] Clarisse Survival Kit

Unread postby ayanik » Sat Nov 10, 2018 11:34 am

Last year I started working on a Megascans importer for Clarisse, because I hated importing and setting up the assets. It was really basic and the past few weeks I've picked up development again to add some handy features.

Please watch the video below to get a quick overview of the functions(this video is a bit old, things got changed a bit):

You can download the Clarisse Survival Kit from the following link:

Scripts in the kit:
Import Asset
Import a Megascans asset. Meshes will automatically have their materials assigned when imported as .obj. Alembic(.abc) files will be imported as references. 3D assets such as 3d models, plants & atlases will also have a shading rule created for them.
Import meshes(.abc/.obj/.lwo) and generic textures such as Substance. Meshes will automatically have their material assigned and shading rules are created. You can specify which textures should be interpreted in which color space if needed. Custom rules can be added/modified in the file. TX or UDIM files will be converted to Streamed Maps.

Megascans Bridge Communication
Launch the Bridge listener from the shelf and send assets directly to Clarisse. Make sure the Command Port is running. You can enable the Command Port from the preferences. Keep it at the default port number of 55000. When exporting assets from Bridge to Clarisse make sure to select Custom as your application and keep the port at the default of 24981.

Since the Bridge communication script is running outside of Clarisse and decoupled from CSK I didn't make these settings configurable. You can edit the python file if you need to customize the ports, but these settings will be overwritten once you install a new version.

Packing channels is not supported. Assets that are exported outside of the library will work fine.

Mix Multiple Surfaces
Creates a PhysicalBlend between one or more base surfaces and a cover surface(like dirt/snow). All selectors except displacement are instanced so you can manipulate multiple mixed surfaces at once. With this powerful script you can transform a whole scene into a snow covered one with ease.

Masking features:
  • Height blend: Mixes the materials based on Y elevation. Handy for shore lines.
  • Displacement blend: Checks which displacement map has higher elevation than the other. You can invert the selector or add both layers on top of each other.
  • Slope blend: Mixes two materials based on slope angle.
  • Triplanar blend: Uses triplanar mapping for the mask. By default the top facing(Y+) angle is masked.
  • Scope blend: A scope object is automatically created to quickly mask things out.
  • Occlusion blend: You can use Ambient Occlusion to blend the materials. Has a huge impact on performance when used with Displacement.
  • Fractal blend: If any other selectors are active the Fractal blend selector will be overlayed on top to break up the masking in the transition areas.


Add Surface(s) to Mix
Adds the selected surfaces to an existing mix.

Replace Surface
You can quickly replace the selected surface or change the mapping settings. If you're replacing a material that was used in a surface mix it will also update.

Toggle Surface Complexity
Swaps out the selected material temporarily with a simple PhysicalDiffuse material. When you rerun the command on the selected PhysicalStandard material or its parent context it converts it back to the original state.

Moisten Surface
Adds a wet layer on top of the selected material. Several masking options are available.

Tint Surface
Adds a blend texture which can be used to colorize the selected surface so it matches better with other surfaces.

Texture(s) to Triplanar
Converts the selected textures to triplanar.

Blur Selected Texture(s)
Blurs the selected texture with a custom radius.

Generate Decimated Pointcloud on Geometry
Generates a GeometryPointCloud or GeometryPointUvSampler on the selected object. Has several masking options for decimating the point cloud.

Check out the video on Vimeo:

Import Megascans Library
Import the whole library or specified categories. If you need individual assets use the Import Asset script. If you import 3D assets make sure you import them in a context that is currently not rendered inside your viewport. Otherwise it will try to render all objects.

Stream Toggle
Converts the selected Map Files to Streamed Map Files and vice versa. If the texture is single channel it will generate a reorder node for you. UDIM tokens are automatically added in the filename if they exist. Almost all settings are copied over.

Custom Settings & Logging
By default logging is disabled. If you get crashes you can enable logging in your user settings file and it will generate a log which will help me fix the bug if you send it to me. The log doesn't contain any information about your computer. It only logs which functions were called with which variables. To enable logging add the following lines to your file:

Code: Select all
import logging


You can locate the custom settings and log in the following locations:

On Windows you can find it here:


On Linux you can find it here:


On Mac you can find it here:


You can manually make that folder if it doesn't exist and create a file and inside the .csk.


If you don't want to do that run the script once by clicking any of the buttons in the shelf and this folder and files are automatically generated for you.

All variables from the file can be copied over to and customized within the file inside your user folder. Don't overwrite the file. This file will be overwritten once you reinstall or upgrade.
Last edited by ayanik on Tue Jan 29, 2019 5:52 pm, edited 4 times in total.
Posts: 41
Joined: Wed Nov 26, 2014 9:10 pm

Re: Megascans Survival Kit

Unread postby jandersunstar » Sat Nov 10, 2018 4:49 pm

Really nice!
User avatar
Posts: 271
Joined: Fri Jun 06, 2014 8:21 pm
Location: Mexico City

Re: Megascans Survival Kit

Unread postby jarrys » Sat Nov 10, 2018 6:17 pm

:o This would be really great!!
Posts: 3
Joined: Thu Apr 13, 2017 8:49 pm

Re: Megascans Survival Kit

Unread postby dboude » Mon Nov 12, 2018 9:28 am

Great work ! Thanks for sharing ;)
Technical Artist - Clarisse Specialist
User avatar
Posts: 699
Joined: Mon Jul 03, 2017 10:51 am

Re: Megascans Survival Kit

Unread postby jeff_bartzis » Thu Nov 15, 2018 3:37 am

Wow, Nice!
Will be eagerly waiting to try this out!
Posts: 22
Joined: Fri May 12, 2017 6:41 pm
Location: Vancouver

Re: Megascans Survival Kit

Unread postby ayanik » Tue Jan 01, 2019 9:56 pm

I rearchitectured the importer after I noticed the 3dplant assets have a totally different folder structure and I don't like copy pasting blocks of code. I'm happy I did, because I also made the system much more flexible.

There is a file which has filematching regex templates to search for textures from Megascans, Substance and generic filenames and users have the possibility to define which map is sRGB and which is not. All suffixes and default values can be changed in the settings file.

I also ran into issues where commands were issued asynchronously. Initially all textures were instanced from one file, but because of async issues I had to drop this and I didn't want to restrict users on which maps should be required and which not.

For Substance textures you can import an IOR map which gets divided so it maps properly. Unfortunately Substance Player doesn't export this map. I would have loved to see a way to use metalness in the PhysicalStandardMaterial. My maintenance expired half a year ago so I can't test 3.6 SP7 and for material mixing you need a PhysicalStandardMaterial.

-I have one annoying crash I can reproduce and hoped maybe someone more experienced such as a Clarisse dev could help me with to squash it.
-The Megascans bridge python script they provided doesn't seem to work/listen. I called the file from the file and tried debugging each function, but it doesn't seem to listen at all.
Posts: 41
Joined: Wed Nov 26, 2014 9:10 pm

Re: Megascans Survival Kit

Unread postby desmond » Wed Jan 02, 2019 8:15 am

great work! :) ETA on sharing this?
User avatar
Posts: 41
Joined: Mon Feb 05, 2018 8:46 am

Re: Megascans Survival Kit

Unread postby ayanik » Wed Jan 02, 2019 8:53 am

Once I have dealt with the 2 ToDo items. I was hoping someone could take a look at the Megascans Bridge python script they provided and see why it's not receiving any data.
Posts: 41
Joined: Wed Nov 26, 2014 9:10 pm

Re: Megascans Survival Kit

Unread postby desmond » Wed Jan 02, 2019 9:00 am

if you share me some code what you want to test i can look at it and verify. we should move to some PM or so, not to spam this topic. or add me on github as colab to your private repo, user ddesmond and we can take it from there.
User avatar
Posts: 41
Joined: Mon Feb 05, 2018 8:46 am

Re: Megascans Survival Kit

Unread postby ayanik » Wed Jan 02, 2019 9:15 am

The code for the bridge communication you can download from the github link I posted above.
- Run the Python file from clarisse.
- In the Megascans Bridge application click on the export button and set it to custom.
- You'll see no data comes in. Even though the server starts. If you remove the time.sleep(0.1) function it gets a bit further.

I will setup a github account when I get back from work so you can test the toolkit out. Send me a message to aydinyanik[at_symbol]
Posts: 41
Joined: Wed Nov 26, 2014 9:10 pm


Return to Useful Community Scripts