Feather Tools

As an intern at SideFX I created a series of tools for doing feather FX, the toolset includes a feather generator, a feather groom tool and wing tool.
I'll continue to update this project as I continue to develop it. 

Tool Design Challenge

Feathers are a unique fx challenge in that they call for large datasets to be manipulated at speeds that provide fast feedback for artist, rendering and animation control input.

Pipeline Consideration

The approach generates feathers first, derives accurate low res representations for animation, grooming and lookdev and at render time replaces the low res with the hi res feathers saved to disk. This pipeline is meant to optimize rendering and lookdev, as feathers no longer have to be generated at render time, they only have to be deformed.


Feather Generator allows you to create unique feather structures and shading, by allowing the artist to have a high degree of control (independent controls per side of feather for assymetry, ruffling, tip shape, etc.)


Here, I created a wing that was rigged to open and close, and had a variety of feather shapes and pattern.

When creating feathers with the Feather Generator, I would advise to first set the stem parameters. After that the length of the barbs, the bending, the clumping, the noise, the secondaries if needed, the shader. The geometry is packed by default so make sure to change Declare Materials parameter in the Rendering->Render tab of the mantra node to Save All Materials.


Please feel free to comment here or contact me at trzankofx@gmail.com to report bugs or request enhancements.
And special thanks to Paul Hollingworth, for letting me use his photographs for reference!

CREATED BY

TIGHE RZANKOWSKI

7+ year Houdini experienced FX TD currently working in the Synthetic Data industry. Formerly an intern at SideFX and an FX TD at The Mill NYC, RISE Berlin and ILP Stockholm. Working remotely from Berlin, Germany. Dual Citizen and able to work in the USA and EU.

More from Tighe Rzankowski

COMMENTS

  • MealeaYing 6 years, 7 months ago  | 

    This looks amazing and is the sort of thing that is precisely why I'm starting to learn Houdini.
    Thank you very much!

    Cheers,
    Mealea Ying

  • craigs 6 years, 7 months ago  | 

    link to feather hda generator doesnt seem to be working

  • Tesla_s_fan 6 years, 7 months ago  | 

    it seems unable to download the HDA

  • AlchemistRS 6 years, 7 months ago  | 

    Thanks,
    FYI the download link is doubled just delete the url starting from # back.

    • xmaniac3d 4 years, 5 months ago  | 

      hi AlchemistRS i wonder if you still have the feather asset, it seem the asset is not available and i wonder if you can share with me. if so i really appreciate . my mail is avt5000@hotmail.com

  • trzanko 6 years, 7 months ago  | 

    The link is fixed! Sorry about that :D

  • annoy4nce 6 years, 7 months ago  | 

    Great work, thank you very much!

    • trzanko 6 years, 7 months ago  | 

      Thanks! np

  • Aizatulin 6 years, 7 months ago  | 

    awesome work and very impressive, now I can create parakeet feathers ;), thank you for this great tool!

    • trzanko 6 years, 7 months ago  | 

      Thanks so much! Nice! Please share when they're done!

  • Eagle66 6 years, 7 months ago  | 

    Thanks, very cool.... It needs a noise or turbulence for structure parameter and a dirt map for shading - it's to clean as you look at your reference image.

    • trzanko 6 years, 7 months ago  | 

      Thanks! It does have a noise feature built in though, admittedly I didn't push the ruffed up textured look very hard in the renders.

  • anon_user_89151269 6 years, 7 months ago  | 

    Didn't test this yet, but it looks pretty good!

    • trzanko 6 years, 7 months ago  | 

      Thank you McNistor!

  • iahmedabdelnaby 6 years, 7 months ago  | 

    Very impressive, Thank you.

  • carstenk 6 years, 6 months ago  | 

    Neat! A few ideas:
    It would be cool if it could spit out mesh geo that is suitable/well formed for simulation (cloth etc. - (maybe even with procedural material property assignments like stiffness etc).
    Could also be handy if one could define feather shape directly via a simple cage geometry, rather than indirectly by adjusting all the shape influencing parameters.

    Again, nice work!

    • trzanko 6 years, 6 months ago  | 

      Thanks carstenk.

      Multiple levels of resolution is already implemented in version 2. There's render quality, preview quality and proxies for simulation. The proxy resolution has built in u attributes for stiffness variations. It'll be out soon I promise!

      That's been mentioned a few times to provide a interface for drawing the feather shapes rather than adjusting all the shape parameters. While it'd be nice, there'd have to be some serious analysis going on to set all the other parameters given an image. Initial length could more easily be done this way but setting two ramps isn't that bad imo.

      Thanks a lot and keep a look out for version 2 which will have the resolution levels and the grooming tools!

    • trzanko 6 years, 6 months ago  | 

      On second though you could very easily set the shape with a drawn curve, booleaning out the points not contained within the shape. I'll work that into the version2 to accept a curve into the asset for that type of workflow.

  • kinglaw 6 years, 6 months ago  | 

    I'm new to Houdini bear with but when I import the tool into my scene nothing is happening there's nothing in the viewport or the node editor window how can I use this? help please

  • kevinsavuwa 6 years, 6 months ago  | 

    awesome stuff

    • trzanko 6 years, 6 months ago  | 

      Thanks so much!

  • MikeStewart 6 years, 4 months ago  | 

    Great work!
    Please, how can I colour the feather! I tried to play with the shader tab but nothing has changed...
    Can we use an external image as a shader! if yes, how...

    Thanks a lot,

  • anon_user_03349703 5 years, 11 months ago  | 

    Awesome work! I love it!!

    Thanks for share!

  • thexon 5 years, 10 months ago  | 

    thanks for sharing

  • thexon 5 years, 10 months ago  | 

    Thanks

  • DASD 5 years, 9 months ago  | 

    Very nice work. Thank you for sharing!
    1. Is you Path Attrib Tool available somewhere?
    2. You can optimize your Vex code by using @numpt instead of npoints(0). ;D
    3. Do you have plans for publishing version 2 (or whatever version you are at now)?

  • trzanko 5 years, 9 months ago  | 

    Thank you! There will be a version 2 released soon that includes a grooming workflow.

    • DASD 5 years, 9 months ago  | 

      Is the Path Attrib Tool part of that? As I see it, it would be a useful standalone tool.

    • DASD 5 years, 9 months ago  | 

      Also, Inspired by your work, I looked at a real feather that I found today. I was surprised to find out two things:
      1. The main barbs all had secondary barbs. Neighboring main barbs were interconnected tightly (almost like Velcro) and so the they formed a kind of sheet. This sheet had no holes, it might be a bit translucent, but for the most part it could be described with a fully opaque double-sided shader on a plane.
      Meaning a great abstraction would be to make planes between the main barbs and have a procedural shader on there showing a sheet of interconnected secondary barbs. Clustering between barbs is very subtle and holes in the Velcro-like sheet are very rare. I suspect in nature birds probably try to groom away such holes on flight feathers.
      For most levels of detail (unless its a macro view), the main barbs should probably really just be polygon sheets.
      2. The main stem, had a concave ridge on one side.

      On another note, have you compared the performance of the findattribute method to compiled foreach loops?

  • crissy 5 years, 7 months ago  | 

    Thank you for that great tool.

    One question, i try to bake (createMesh)
    and get the following Error.
    Have someone an idea?

    Error: (/obj/geo1/featherGenerator1) Node failed to cook

    Error
    Permission denied: Channel /obj/geo1/featherGenerator1/T_initialize/xOrd.
    Error
    Permission denied: Channel /obj/geo1/featherGenerator1/T_initialize/px.
    Error
    Permission denied: Channel /obj/geo1/featherGenerator1/T_initialize/py.
    Error
    Permission denied: Channel /obj/geo1/featherGenerator1/T_initialize/pz.
    Error
    Permission denied: Channel /obj/geo1/featherGenerator1/T_initialize/tx.
    Error
    Permission denied: Channel /obj/geo1/featherGenerator1/T_initialize/ty.
    Error
    Permission denied: Channel /obj/geo1/featherGenerator1/T_initialize/tz.
    Error
    Permission denied: Channel /obj/geo1/featherGenerator1/T_initialize/rx.
    Error
    Permission denied: Channel /obj/geo1/featherGenerator1/T_initialize/ry.
    Error
    Permission denied: Channel /obj/geo1/featherGenerator1/T_initialize/rz.
    Error
    Permission denied: Channel /obj/geo1/featherGenerator1/T_initialize/sx.
    Error
    Permission denied: Channel /obj/geo1/featherGenerator1/T_initialize/sy.
    Error
    Permission denied: Channel /obj/geo1/featherGenerator1/T_initialize/sz.
    Error
    Permission denied: Channel /obj/geo1/featherGenerator1/T_initialize/xOrd.
    Error
    Permission denied: Channel /obj/geo1/featherGenerator1/T_initialize/px.
    Error
    Permission denied: Channel /obj/geo1/featherGenerator1/T_initialize/py.
    Error
    Permission denied: Channel /obj/geo1/featherGenerator1/T_initialize/pz.
    Error
    Permission denied: Channel /obj/geo1/featherGenerator1/T_initialize/tx.
    Error
    Permission denied: Channel /obj/geo1/featherGenerator1/T_initialize/ty.
    Error
    Permission denied: Channel /obj/geo1/featherGenerator1/T_initialize/tz.
    Error
    Permission denied: Channel /obj/geo1/featherGenerator1/T_initialize/rx.
    Error
    Permission denied: Channel /obj/geo1/featherGenerator1/T_initialize/ry.
    Error
    Permission denied: Channel /obj/geo1/featherGenerator1/T_initialize/rz.
    Error
    Permission denied: Channel /obj/geo1/featherGenerator1/T_initialize/sx.
    Error
    Permission denied: Channel /obj/geo1/featherGenerator1/T_initialize/sy.
    Error
    Permission denied: Channel /obj/geo1/featherGenerator1/T_initialize/sz.
    Error
    Permission denied: Channel /obj/geo1/featherGenerator1/T_initialize/xOrd.
    Error
    Permission denied: Channel /obj/geo1/featherGenerator1/T_initialize/px.
    Error
    Permission denied: Channel /obj/geo1/featherGenerator1/T_initialize/py.
    Error
    Permission denied: Channel /obj/geo1/featherGenerator1/T_initialize/pz.
    Error
    Permission denied: Channel /obj/geo1/featherGenerator1/T_initialize/tx.
    Error
    Permission denied: Channel /obj/geo1/featherGenerator1/T_initialize/ty.
    ...

  • JacobFX 5 years, 7 months ago  | 

    awesome

  • jakehamill 5 years, 2 months ago  | 

    Hello! I'm fairly new to Houdini and am wondering how I can attach an image to the shader and apply to the geometry. I tried adding an image texture to a principled shader and attaching to the geo node but it didn't work. I'm not sure where I would point the geometry to a texture map in the render parameters of the feather tool. Any help is greatly appreciated.

  • nichimen-75 5 years, 1 month ago  | 

    Hi,
    does it work in Houdini 17? :-)

    • trzanko 5 years, 1 month ago  | 

      Yes it certainly should

  • sudip_vfx 4 years, 7 months ago  | 

    I am unable to download. Where is the link?

  • anodin 4 years, 2 months ago  | 

    So Cool setup ! But i can't find the link too.
    Is it integrate inside Houdini ?

  • Fidel_is 3 years, 11 months ago  | 

    https://sites.google.com/view/fidfxtd/digital-assets
    created a basic feather implementation too. download it using the link above.

    • lavrenovlad 1 year, 9 months ago  | 

      Ty mate!

  • jeff-backbone 3 years, 7 months ago  | 

    There is no link. This post is clickbait.

  • mannyw 2 years, 5 months ago  | 

    Hey were can we buy this?

  • hadgraphics 2 years ago  | 

    HI, how i can fix feathers directions with guides grooms ???

  • SANTHOSHKRITNA 1 year, 8 months ago  | 

    Hi... how can i apply texture to the feather, and turn off the shader ? can you help me with this

Please log in to leave a comment.