Bifrost Forum
Welcome to the Bifrost Forum. This is the place for artists using Bifrost to ask and answer questions, browse popular topics, and share knowledge about creating effects procedurally using Bifrost. You can also visit the Bifrost Community on AREA to download an array of ready-to-use graphs, read Bifrost news and updates, and find the latest tutorials.
Showing results for 
Show  only  | Search instead for 
Did you mean: 

MJCG compounds

Message 1 of 62
12170 Views, 61 Replies

MJCG compounds

Hi Everyone,

Since Bifrost is about to release, I thought it would be a good idea to share all the compounds I've made during the beta. Most of them are utility compounds, or related to strands, procedural modeling, etc.

I added the list of all the compounds bellow.


















Although I've updated it with the last script provided, please note that I did not test them myself as I cannot currently use either Maya or Bifrost from where I am. Hopefully everything works fine !



Maxime Jeanmougin - Technical Artist

Join the Bifrost Addicts community on Discord:
Message 2 of 62
in reply to: mjcg91


Hi Maxime!


Glad to see you back and welcome to the official forum!!


And thanks so much for sharing - I'm sure the community will let you know if any of them need to be updated 🙂





Message 3 of 62
in reply to: mjcg91

Maxime thanks for all of the great feedback and work in the beta. Thanks for being part of the pioneers in the compound sharing community. 



Message 4 of 62

Thanks Maxime for all those Gems.

Message 5 of 62
in reply to: Christoph_Schaedl

As requested by Christoph in the other forum, I'll post more infos regarding the mjEyelid rigging solver that is included inside the pack, until we have the brand new Compound sharing hub:





• variable number of joints for each lid.
• easy to use, meant to automate human eyelid movements.
• fully guide, bone-based; reusable, as long as you follow the original logic.
• tweak closed eye's lid edge shape with an fCurve widget à la SI Face Robot.
• does not depends on any geometry for the initial setup.
• Parallel + GPU override friendly.


• elevation_inheritance: global elevation delta weight based on eyeball's local X rotation angle.
• azimuthal_inheritance: global azimuthal delta weight based on eyeball's local Y rotation angle.
• medial_elevation_weight: elevation delta weight of the medial side only.
• lateral_elevation_weight: elevation delta weight of the lateral side only.
• medial_azimuthal_weight: azimuthal delta weight of the medial side only.
• lateral_azimuthal_weight: azimuthal delta weight of the lateral side only.
• num_deformers: the numbers of output joints that you want.
• edge_deformation: the fCurve widget to tweak the closed eyelid's shape.
• use_fCurve: use the edge_deformation fCurve or not.
• is_low_side: toggle if it is the lower eyelid.
• is_right_side: toggle if the right side eyelid.
























Current limitations:

• you cannot connect the fCurve into the top level's inputs, nor control it from maya's Attribute Editor UI.
• closing lid controllers while having values near 1.0 on "inheritance" settings doesn't produce realistic results. While having eyes closed, disable or set low values like 0.1 on these.
• lack of DAG controllers for manual adjustments on medial / lateral ctls.



The demo scene will be provided later.


Maxime Jeanmougin - Technical Artist

Join the Bifrost Addicts community on Discord:
Message 6 of 62
in reply to: mjcg91

Many thanks Maxime. 

I have to dig into that solver again. So much to learn.

Message 7 of 62
in reply to: mjcg91

Thanks for these, they look great! However I can't seem to figure out how to actually use them? I've scanned through the docs, the Python/MEL commands and just about every menu in the Bifrost Graph window and all I've come across so far is how to publish compounds, but not how to import/load them.




What am I missing? 😮

Message 8 of 62
in reply to: negow

See the “How to install compounds” link on this page:

MacBook Pro 13,3 - 2.7GHz - 16GB - Radeon Pro 460 - macOS Catalina 10.15
Message 9 of 62
in reply to: joostkonemann

Yeah, it took me a while to figure too, even with that link, so I wrote this for another newsgroup.   Fab stuff Maxime, these are like gold. 🙂


It took me a little while how to figure the installation of the .json compounds,  but eventually, I found this thread which explains

And this is worth a read

And then the install instructions found here ( made more sense.  There is a cloth solver example you can download there too. 
How to Install Compounds and Graphs
Download the .json file for the compound, or the folder corresponding to the graph
Copy the .json file or the folder to the following path:
On Windows: C:\Users\\Autodesk\Bifrost\Compounds
On Mac OSX: /Users//Autodesk/Bifrost/Compounds
On Linux: $HOME/Autodesk/Bifrost/Compounds
Restart Maya
The new compound(s) should show up in the TAB-create menu, and any new graphs will show up in the Bifrost Browser
For example, if your username on your computer is marcusn, and you are using Windows, your destination folder will be: C:\Users\marcusn\Autodesk\Bifrost\Compounds
So, in short, the Compounds and Graphs are just node networks, only the "Graph" is the whole and the compounds are the nested sub-networks. IMO Graph is a bad word, but no matter. 

So when you install the jsons, **Graphs** are **Folders** that contain a JSON and MD (documentation) a thumbnail PNG and optional Maya scene MA, they will appear in the Bifrost browser when you restart Maya, after you place the folder in the C:\Users\userName\Autodesk\Bifrost\Compounds directory, and you have to create it manually. I'd also like that directory to be created automatically when Bifrost loads, even if it's empty.
And then the installation of **Compounds** is different, they don't have thumbnails and after the restart they Bifrost graph, not in the Bifrost browser!  So user-installed Compounds are found with... Bifrost Node Editor > Create New Graph > Tab (hotkey) > User > (user compounds go here).  
We really need a refresh-compound button so we don't have to restart Maya to install compounds/graphs.  I was also looking for an "import/install/open compound button", that would be intuitive too. Trawling the forum threads was annoying figuring this out.

Looks like you can also have a JSON config file as well, they work like Maya MODs.  Maxime's zip has a config JSON that can point to the folder where you can put his compounds. Just open the mjcg_config.json in his zip and modify the path. 
Message 10 of 62
in reply to: andrewsilke

Andrew, Thank you. Glad you like it.


About loading the compounds, the simplest method is to put them in the standard folder, as explained in Joost's link above.

What I do here is actually modify the bifrost.mod file:


C:\Program Files\Common Files\Autodesk Shared\Modules\Maya\2019\bifrost.mod


Then, I add a line to point to each libraries:


+ PLATFORM:win64 LOCALE:en_US Bifrost C:\Program Files\Autodesk\Bifrost\Maya2019\\bifrost
[r] scripts: scripts


FYI, I'm going to post an updated version of these in a a few days, with clean compounds, documentation, and possibly some demo graph / scenes. That said, the compatibility will break as some compound's signatures as been changed.

For these of you how already uses some of these compounds in their scenes / custom compounds, I do have a modified update script, but since this is property of Autodesk, I do not think I'll be able to share it. I'd be happy if someone from Autodesk could comment about this script. Since we do not have any mechanism to automatically update compound yet (publicly), it'd be quite useful if we could just use it until we have a better compound update mechanism.



Maxime Jeanmougin - Technical Artist

Join the Bifrost Addicts community on Discord:
Message 11 of 62
in reply to: mjcg91

Yeah great, fab to know about the bifrost.mod.

Yes the big trick for me was figuring that they won't appear in the browser as per the cloth demo.   I also placed them in the folder as you suggest. I was just restarting and restarting, then finally found that user Compounds are different from the Graphs with the thumbnails. 

Any sort of demo on these files, talking through the setups would be really rad!! 😄

Message 12 of 62
in reply to: mjcg91

Just a note - I've contacted Maxime offline and once he's ready with his update script, I'll post it for him in this thread circumventing any licensing questions. We're looking at how to do this better for the future. 


I also want to say, it's great to see you maintaining a pack of such useful (and inventive!) compounds from the beta to now. It's exactly what we hope to see happen with Bifrost. I'm also happy you're getting some use out of the update script - though in the future we'd like to make it unnecessary by adding a a backward-compatibility mechanism that will allow both us and other compound authors to rename compounds and ports without breaking users' graphs. 

Jonah Friedman
Bifrost Product Manager
Message 13 of 62
in reply to: jonah.friedman

MJCG_compounds 1.1.0


After a lot of cleaning, the update is here. Sorry about the delay. There isn't a lot of new stuff, and there are still some issues and limitations I need to get rid off, but you now have a cleaner library, with documentation and Maya sample scenes.


Update highlights:

• Added samples scenes, including mjEyelid rig, procedural braid, MPM fiber, verlet strands simulation, deformer examples...
• In-compound documentation for almost all compounds.
• Added "wrap_deformer" compound.
• "deform_by_uv" can now take an array of objects as input.
• "deform_by_uv" can now work regardless of the uv_mesh's orientation.
• Mass cleaning: ports / compounds renaming - ports organization.
• Fixed various bugs and optimized some compounds.
• Removed "rescale" compound, now replaced by the built-in "change_range".


Known limitations:

• "create_tubes_from_strands" and "extrude_strands" currently requires each sub-strands to have the same point count.
• "create_braid_from_strands" currently works with a single strand strands object.
• "update_strands_orientation" returns wrong orientations on the first and last points if the strands object has more than a single strand.
• "update_strands_orientation" can still produces orientation flipping depending of the shape of your strands. Need to find a better method to avoid this.
• "eyelid_solver" azimuthal parameters doesn't produce realistic results.


There is a compatibility break because of the mass renaming, sorry about that. If you have custom compounds using some of the older MJCG compounds, please use the update script. I'll send it to Jonah Friedman right now, he will post it bellow whenever he is able to. You should just drag & drop your .json files on the script and it will update your compounds. In some cases, it is possible that some port connections have to be manually plugged again. Also, please be careful with the script. It worked quite well for my .json files, but I had a lot of trouble using it to restore some of my Maya scene files. You should always do a backup of your files first as this is not un-doable.

Please let me know if you find any issues using the compounds.



Maxime Jeanmougin - Technical Artist

Join the Bifrost Addicts community on Discord:
Message 14 of 62
in reply to: mjcg91

And here's the update script! I'm posting this instead of Maxime only because there are no licensing issues that way. 


For background, during the Beta we did not have any backward compatibility rules and would rename ports and nodes, breaking graphs. To deal with that internally, we made this update script that can apply these renamings to .json files and .ma files and inside of Maya sessions by sourcing the script, updating them to use newer naming. We also distributed it to the beta users with no guarantees of any sort and some stringent warnings, like the following, which go double now. 


This script changes files on disk. It is unsupported and there is no warranty of any kind. Use at your own risk.


To use: On Windows this script can be used with drag-and-drop – simply drag and drop .json files, Maya ascii files (.ma), or whole directories containing such and it’ll update them. It can also be used from the command line:


python path/to/files/or/folders/ 
Jonah Friedman
Bifrost Product Manager
Message 15 of 62
in reply to: jonah.friedman

Thanks a lot, Jonah !

Maxime Jeanmougin - Technical Artist

Join the Bifrost Addicts community on Discord:
Message 16 of 62
in reply to: mjcg91

Rock on, thanks so much Maxime and Jonah!!

Message 17 of 62

Thanks thats great!

Message 18 of 62

@mjcg91 These are some great examples! Thanks much for sharing your compounds and example files.




Message 19 of 62

Hi MJ is this the latest and greatest version.?

Running with Bifrost

Message 20 of 62
in reply to: Christoph_Schaedl

Hi Chris,


The latest one is this thread (1.1.0), works fine with Bifrost I'll upload a new version (1.2.0), today or tomorrow on the compound hub. Stay tuned.

Maxime Jeanmougin - Technical Artist

Join the Bifrost Addicts community on Discord:

Can't find what you're looking for? Ask the community or share your knowledge.

Post to forums