Community
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.
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

MJCG compounds

61 REPLIES 61
Reply
Message 1 of 62
mjcg91
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.

 

User::MJCG::Array
2D_to_1D_array
fill_interpolated
get_near_current_index
interpolate_on_array
pop
transpose_2D_array

 

User::MJCG::Display
draw_point_axis

 

User::MJCG::Geometry::Deformation
deform_by_uv

 

User::MJCG::Geometry::Mesh
create_mesh_from_uv
get_mesh_structure

 

User::MJCG::Geometry::points
create_3D_grid
create_mandelbrot
create_mandelbulb

 

User::MJCG::Geometry::strands
catmull_rom_strand
create_braid_along_strand
create_cardioid
create_circle
create_tube_along_strands
curl_strands
extrude_strands
update_strand_length
update_strand_orientation

 

User::MJCG::Math
angle_between
arc_length
average
distance_to
matrix_lerp
multiply_vector_by_matrix
multiply_vector_by_quaternion
normalize_quaternion
oscillator
quaternion_from_direction_and_upVector
quaternion_from_two_unit_vectors
rescale
resize_vector

 

User::MJCG::Rigging
mjBlendSpace_solver
mjEyelid_solver
mjLookAt_solver

 

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 !

 

Cheers,
Maxime

Maxime Jeanmougin - Technical Artist
https://maximejeanmougin.com

Join the Bifrost Addicts community on Discord:
https://discord.gg/bifrost-addicts
61 REPLIES 61
Message 2 of 62
marcus.nordenstam
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 🙂

 

cheers

Marcus

 

Message 3 of 62
chris.vienneau
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. 

 

cv/

Message 4 of 62

Thanks Maxime for all those Gems.

----------------------------------------------------------------
https://linktr.ee/cg_oglu
Message 5 of 62
mjcg91
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:

----------------

 

 

 

rig_setup.pngFeatures:
• 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.

 

Settings:
• 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.

 

solver.png

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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
https://maximejeanmougin.com

Join the Bifrost Addicts community on Discord:
https://discord.gg/bifrost-addicts
Message 6 of 62
Christoph_Schaedl
in reply to: mjcg91

Many thanks Maxime. 

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

----------------------------------------------------------------
https://linktr.ee/cg_oglu
Message 7 of 62
negow
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.

 

- http://help.autodesk.com/view/BIFROST/ENU/?guid=Bifrost_MayaPlugin_bifrost_for_maya_html

 

What am I missing? 😮

Message 8 of 62
joostkonemann
in reply to: negow

See the “How to install compounds” link on this page: https://area.autodesk.com/bifrost/

--
MacBook Pro 13,3 - 2.7GHz - 16GB - Radeon Pro 460 - macOS Catalina 10.15
Message 9 of 62
andrewsilke
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
https://forums.autodesk.com/t5/bifrost-forum/how-do-i-install-pre-built-compounds-and-graphs/td-p/89...

And this is worth a read

And then the install instructions found here (https://area.autodesk.com/bifrost/#) 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
mjcg91
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 2.0.1.0 C:\Program Files\Autodesk\Bifrost\Maya2019\2.0.1.0\bifrost
BIFROST_LOCATION:=
PATH+:=bin
[r] scripts: scripts
MAYA_CONTENT_PATH+:=examples/Bifrost_Fluids
MAYA_MODULE_UI_WORKSPACE_PATH+:=resources/workspaces
MAYA_TOOLCLIPS_PATH+:=resources/toolclips
BIFROST_LIB_CONFIG_FILES+:=resources/plugin_config.json
BIFROST_LIB_CONFIG_FILES+=D:\bifrost_libs\rebel-pack-2.0.1.0\bifrost_lib_config.json
BIFROST_LIB_CONFIG_FILES+=D:\dev\bifrost\bifrost_lib_config.json
...

 

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.

Max.

 

Maxime Jeanmougin - Technical Artist
https://maximejeanmougin.com

Join the Bifrost Addicts community on Discord:
https://discord.gg/bifrost-addicts
Message 11 of 62
andrewsilke
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
jonah.friedman
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
mjcg91
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.

 

Cheers,
Maxime

Maxime Jeanmougin - Technical Artist
https://maximejeanmougin.com

Join the Bifrost Addicts community on Discord:
https://discord.gg/bifrost-addicts
Message 14 of 62
jonah.friedman
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 bifrost_update_script_2_0_1_0_MJCG_clean.py path/to/files/or/folders/ 
Jonah Friedman
Bifrost Product Manager
Message 15 of 62
mjcg91
in reply to: jonah.friedman

Thanks a lot, Jonah !

Maxime Jeanmougin - Technical Artist
https://maximejeanmougin.com

Join the Bifrost Addicts community on Discord:
https://discord.gg/bifrost-addicts
Message 16 of 62
andrewsilke
in reply to: mjcg91

Rock on, thanks so much Maxime and Jonah!!

Message 17 of 62

Thanks thats great!

----------------------------------------------------------------
https://linktr.ee/cg_oglu
Message 18 of 62

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

 

Cheers,

Sachin

LinkedIn: https://www.linkedin.com/in/sachinshrestha/
Twitter: https://twitter.com/_sachinshrestha
Instagram: https://www.instagram.com/noizfactory/
SoundCloud: https://soundcloud.com/noizfactory
Message 19 of 62

Hi MJ is this the latest and greatest version.?

Running with Bifrost 2.0.4.0?

----------------------------------------------------------------
https://linktr.ee/cg_oglu
Message 20 of 62
mjcg91
in reply to: Christoph_Schaedl

Hi Chris,

 

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

Maxime Jeanmougin - Technical Artist
https://maximejeanmougin.com

Join the Bifrost Addicts community on Discord:
https://discord.gg/bifrost-addicts

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

Post to forums