<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type="text/xsl" href="https://digitalproduction.com/wp-content/plugins/xslt/public/template.xsl"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:rssFeedStyles="http://www.wordpress.org/ns/xslt#"
>

<channel>
	<title>Olaf Finkbeiner - DIGITAL PRODUCTION</title>
	<atom:link href="https://digitalproduction.com/author/olaffinkbeiner/feed/" rel="self" type="application/rss+xml" />
	<link>https://digitalproduction.com</link>
	<description>Magazine for Digital Media Production</description>
	<lastBuildDate>Fri, 31 Oct 2025 08:21:16 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	
<site xmlns="com-wordpress:feed-additions:1">236729828</site>	<item>
		<title>USD, Solaris and Karma in Houdini 20 (and elsewhere&#8230;)</title>
		<link>https://digitalproduction.com/2024/05/15/usd-solaris-and-karma-in-houdini-20-and-elsewhere/</link>
		
		<dc:creator><![CDATA[Olaf Finkbeiner]]></dc:creator>
		<pubDate>Wed, 15 May 2024 21:32:00 +0000</pubDate>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[DP2403]]></category>
		<category><![CDATA[Houdini]]></category>
		<category><![CDATA[karma]]></category>
		<category><![CDATA[Rendering]]></category>
		<category><![CDATA[SideFX]]></category>
		<category><![CDATA[solaris]]></category>
		<category><![CDATA[subscribers]]></category>
		<category><![CDATA[XPU]]></category>
		<guid isPermaLink="false">https://digitalproduction.com/?p=144481</guid>

					<description><![CDATA[<div style="margin: 5px 5% 10px 5%;"><img src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2024/09/image-32.webp?fit=651%2C488&quality=72&ssl=1" width="651" height="488" title="" alt="" /></div><div><p>Solaris saw the light of day 4 years ago in Houdini 18. When I tried it out for the first time back then, it was still very bumpy and initially put me off. One crash followed another. If that happens today, then it's probably due to the graphics card driver, which is supposed to be up to date.</p>
<p>The post <a href="https://digitalproduction.com/2024/05/15/usd-solaris-and-karma-in-houdini-20-and-elsewhere/">USD, Solaris and Karma in Houdini 20 (and elsewhere…)</a> first appeared on <a href="https://digitalproduction.com">DIGITAL PRODUCTION</a> and was written by <a href="https://digitalproduction.com/author/olaffinkbeiner/">Olaf Finkbeiner</a>. </p></div>]]></description>
										<content:encoded><![CDATA[<div style="margin: 5px 5% 10px 5%;"><img src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2024/09/image-32.webp?fit=651%2C488&quality=72&ssl=1" width="651" height="488" title="" alt="" /></div><div><p class="wp-block-paragraph">So that’s over and Solaris has grown up together with Karma XPU, the new hybrid renderer. Time to take a look at it!</p>



<p class="wp-block-paragraph">Although I had experimented with Karma and Solaris (LOPS) time and again, I didn’t want to make the switch until it had fewer teething problems. That was the case with Houdini 20. I also wanted to build up my scenes in Houdini now and then open them up in Omniverse and Marmoset and see if that works. But more on that later…</p>



<h5 id="karma" class="wp-block-heading">Karma</h5>



<p class="wp-block-paragraph">There are a few new features in the Karma renderer. The most important one is that the XPU of the graphics card renderer is now out of beta. Many other things – for example dispersion, absorption, nested transparent materials (dielectrics), material blending, geometry lights (not for volumes), rounded corners, hextiling etc. etc. don’t really need to be explained in detail as they are not really innovative – but they are also very useful and complete Karma. An important function in Karma CPU is to be able to set the samples per geo and thus shorten the render times easily and sometimes massively. Unfortunately, it is not yet available in XPU and you have to make do “old skool style” with compositing and tricks.</p>



<figure class="wp-block-image"><img  decoding="async"  src="https://images.creativebase.com/_next/image?url=https://s3.eu-central-1.amazonaws.com/zone.busch.store.image/4f327fca-3a99-4522-97df-f8bfbcf57d53.png&w=3840&q=100"  alt="AOV also „Arbitrary Object Variables“ (auch gerne Renderpasses genannt) brauchen jetzt keine „Accessory“ Nodes mehr ... " ><figcaption class="wp-element-caption">AOV, i.e. “Arbitrary Object Variables” (also often called render passes) no longer need “Accessory” nodes …</figcaption></figure>



<figure class="wp-block-image"><img  decoding="async"  src="https://images.creativebase.com/_next/image?url=https://s3.eu-central-1.amazonaws.com/zone.busch.store.image/299cbfba-2ce4-4987-b58e-a3c140e56772.png&w=3840&q=100"  alt="...und können extra einfach erstellt werden. Sie werden dann auch gleich in Mplay angezeigt." ><figcaption class="wp-element-caption">…and can be created very easily. They are then also displayed immediately in Mplay.</figcaption></figure>



<h5 id="solaris-lops" class="wp-block-heading">Solaris (LOPs)</h5>



<p class="wp-block-paragraph">Anyone who has ever worked with a client/art director or director on the lighting of a scene knows what this means for the 3D artist – stress and a lot of organisation. The respective change requests have to be documented somehow, e.g. with screenshots of the parameters or with saved scenes or with copies of lights or their positions. A great deal of discipline is required to ensure that the overview is not lost. But there is now a remedy for this in Solaris. The significantly improved Render Gallery in Solaris is worth its weight in gold, because the status of the scene, e.g. the settings in the LightMixer, is saved with every snapshot and the images in the gallery are saved together with the Houdini scene. They can of course be named and tagged (keywords) and then filtered according to the tags. If a photo agency or the customer works with image numbers, these can be assigned to the snapshots as names and/or tags. A dream come true. This is a real workflow enhancement and normally only part of a pipeline in a larger studio.</p>



<h5 id="solaris-ui" class="wp-block-heading">Solaris – UI</h5>



<p class="wp-block-paragraph">Solaris is there to provide all the functionalities that are needed when a scene is assembled from geometry, materials, lighting and this should be separated from the geometry creation. It is therefore primarily about a user interface to USD. It is therefore only logical that a lot of improvements have been made to the user interface and a special Solaris LookDev desktop has been added. This then displays the Render Gallery, for example.</p>



<p class="wp-block-paragraph"></p>



<figure class="wp-block-image"><img  decoding="async"  src="https://images.creativebase.com/_next/image?url=https://s3.eu-central-1.amazonaws.com/zone.busch.store.image/0ad153ca-dea4-4954-aa20-35991d15fc8c.png&w=3840&q=100"  alt="" ></figure>



<h5 id="viewport" class="wp-block-heading">Viewport</h5>



<p class="wp-block-paragraph">In addition to the viewport, there are new lighting functions: “Disable Lighting” – switches off the light, e.g. to inspect self-luminous materials. “Headlight Only” – switches off all lights and only displays a direct light. “Dome Light Only” – switches off all lights except for the dome light in the viewport. “Normal Lighting” – displays the current lighting situation The interaction with the light mixer and the very convenient options for positioning lights makes illuminating the scene with Solaris very comfortable.</p>



<h5 id="render-statistics" class="wp-block-heading">Render statistics</h5>



<p class="wp-block-paragraph">If you want to render, you want to know why it takes so long or where there is potential for optimisation. The RenderStats, which provide information on memory consumption, render time and much more, help with this. Pretty cool! But unfortunately, some of the information can only be viewed with an HTML viewer, which is cumbersome and annoying. There is also a heat map that shows where a lot of rendering time was used in the image. The metadata is saved in the EXR as JSON and can therefore also be used elsewhere. The UI is still in need of improvement with regard to RenderStats, but as this is the first incarnation of Render Stats, this can be forgiven and we look forward to the next versions.</p>



<figure class="wp-block-image"><img decoding="async" src="https://images.creativebase.com/_next/image?url=https://s3.eu-central-1.amazonaws.com/zone.busch.store.image/01e56f15-4961-437f-800d-b3c16cd0f9ce.jpg&w=3840&q=100" alt="Ich habe noch eine Palme und eine Aloe – Pflanze dazu
gestellt in Omnisphere. Irgendwas war ja da, dass jetzt jeder mehrere Pflanzen haben kann. "/><figcaption class="wp-element-caption">I have also added a palm tree and an aloe plant to Omnisphere. There was something about the fact that everyone can now have several plants.</figcaption></figure>



<figure class="wp-block-image"><img  decoding="async"  src="https://images.creativebase.com/_next/image?url=https://s3.eu-central-1.amazonaws.com/zone.busch.store.image/67d87c38-854f-4aca-a237-cc800da2f3ac.png&w=3840&q=100"  alt="" ></figure>



<figure class="wp-block-image"><img  decoding="async"  src="https://images.creativebase.com/_next/image?url=https://s3.eu-central-1.amazonaws.com/zone.busch.store.image/c3ac3381-fdcf-460a-9acd-2016f2de26e6.png&w=3840&q=100"  alt="" ></figure>



<h6 id="from-sops-to-lops" class="wp-block-heading">From SOPS to LOPs</h6>



<p class="wp-block-paragraph">Working in Solaris has generally become much easier and more accessible for freelancers over the years. However, there are also areas where a lot of new things need to be learnt in order to create typical Houdini scenes with many objects or many instances in Solaris. There are two new nodes in H20: The New Merge Point Instancer LOP. In a point instancer prim, each point in a geometry is replaced at view or render time by an instance of the geometry of one of the prims with a “prototype” relationship to the instancer. This LOP allows you to efficiently merge multiple point instances. In this way, only the rest positions of the mesh and the points representing the animated transformations of the parts need to be saved. This means that less space is required on the hard disc. A new geometry clip sequence simplifies and speeds up the saving of valuable clips. With Value Clips, you can split large amounts of data across multiple files. This node should be your first choice when working with value clips.</p>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph"></p>



<figure class="wp-block-image"><img  decoding="async"  src="https://images.creativebase.com/_next/image?url=https://s3.eu-central-1.amazonaws.com/zone.busch.store.image/9d9baa58-7f17-4df9-a6e2-c4b0a1c81d2c.png&w=3840&q=100"  alt="" ></figure>



<h5 id="the-usd-scene-graph-and-component-builder" class="wp-block-heading">The USD Scene Graph and Component Builder</h5>



<p class="wp-block-paragraph">For the scene graph to look so nice, the geometry must have attributes that are then used to sort the geo in the graph. The “@Name” attribute is the basic version and the minimum, so to speak. It is better to work with “@path” attributes which, if available, also overwrite “@Name”. So not like in other 3D programmes with drag and drop or something like that. However, it is even better and recommended to use the new “component builder” which takes care of all USD attributes and also the linking with materials. If you do this properly for all assets, you can export the scene as a USD scene and open it in Nvidia Omnisphere, for example.</p>



<h5 id="rendering" class="wp-block-heading">Rendering</h5>



<p class="wp-block-paragraph">The Clone Control Panel looks almost like the Render Gallery described above. However, it is “only” the first step towards a “Multi-Shot and Multi-Asset Management System”. Nevertheless, it is already impressive and shows where the journey will take us. Anyone who has ever had to create a lighting set-up that looks good from several camera positions at the same time or during a tracking shot will really appreciate this feature, as it allows several render jobs to be running at the same time. The number of cores to be used in each case must be specified beforehand. The network and XPU – i.e. the graphics card – can also be selected. However, this is not limited to different cameras or frame numbers. Different render settings, visibility of objects, lights or whatever else is required can be compared and assessed interactively. This is still a little cumbersome, as the LOPs network has to be built accordingly. BUT so cool and really innovative.</p>



<h3 id="talking-with-sidefx" class="wp-block-heading">Talking with SideFX</h3>



<p class="wp-block-paragraph">Besides playing with the new tools, DP hopped on a video call with the Karma (and Mantra) developers at SideFX, to get an idea where it is going…</p>


<div class="wp-block-image">
<figure class="alignleft"><img  decoding="async"  src="https://images.creativebase.com/_next/image?url=https://s3.eu-central-1.amazonaws.com/zone.busch.store.image/0694ab4e-16fb-4c1c-8db4-5b0d64dc3bad.jpg&w=3840&q=100"  alt="" ></figure>
</div>


<p class="wp-block-paragraph">Mark Elendt is a senior mathematician at SideFX. Mark has been with SideFX for over 32 years and worked on a lot of different parts of Houdini. He actually started working on Prisms, which was the product before Houdini. Marks passion is rendering – he wrote the Mantra render engine for prisms and rewrote Mantra for Houdini. And now he is working on Karma, the new flagship renderer from SideFX.</p>



<p class="wp-block-paragraph"></p>


<div class="wp-block-image">
<figure class="alignright"><img  decoding="async"  src="https://images.creativebase.com/_next/image?url=https://s3.eu-central-1.amazonaws.com/zone.busch.store.image/6f2a162b-2b6a-4863-b9a4-a37e3fdf5a43.jpg&w=3840&q=100"  alt="" ></figure>
</div>


<p class="wp-block-paragraph">Brian Sharpe is a senior rendering deve­loper at SideFX. He has been in the graphics industry for 25 years, and spent a long time in computer games. He is at SideFX now for six years and working on the Karma XPU renderer.</p>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph"><strong>DP: Karma XPU is marketed as a hybrid renderer. What does that actually mean? What is hybrid about Karma?</strong></p>



<p class="wp-block-paragraph"><strong>Mark Elendt:</strong> There are a lot of different purposes for rendering. You‘ve got the film production which has to deal with hundreds of millions of polygons and very complicated shading networks. But you have to provide all the way down to motion graphics, which need a really, really fast turnaround on renderings, or you‘ve got the various different things interior design, architectural design, even scientific visualization. Every renderer has to deal with different types of scenes. We came from Mantra, which was a real workhorse of a renderer – not really fast, but it was very flexible. So we have worked on a new renderer called Karma. Karma actually has two different engines in it. A CPU engine, which deals with very large scenes, but it also has the XPU engine, which can also deal with large scenes and it is geared for faster turnaround and more flexible use of hardware. The more you want to harness the GPU for speed and power, the more restrictive your renderer has to become. Mantra was very flexible. People could write shaders that could reach over to other pieces of geometry and do heaps of wacky stuff. Reach all the nooks and crannies of Houdini and do really powerful stuff.</p>



<p class="wp-block-paragraph"><strong>Brian Sharpe:</strong> But then, as you start moving to a more efficient renderer, such as Karma CPU and then Karma XPU which harnesses the GPU so much more, the rendering architecture becomes a lot more rigid and people find they don‘t have so much flexibi­lity, but yet so much more speed. There‘s a trade-off. But we knew we needed to harness the GPU cores and get this really fast performance from them. Karma XPU can harness that, but it‘s a little bit more rigid and a little bit less flexible. But then we have Karma CPU which can still reach into all the nooks and crannies of Houdini to do powerful stuff and access the VEX language, but it‘s CPU only. XPU is a hybrid renderer that just views any sort of CPU or hardware on the machine as potentially executable, So it looks at any kind of GPU and says right, I can use that for rendering. And it also looks at the CPU says right, can I use that for rendering as well. And then it uses both, all the power on the machine to do rendering. It means that you‘re really maximizing performance, but it comes with a lot of benefits as well. For example, if you‘re saying it‘s too big to fit on the GPU memory that you can still keep rendering using only your CPU. So that‘s a very powerful thing.</p>



<p class="wp-block-paragraph"><strong>DP: For me a hybrid renderer would be renderer that is using GPU and CPU at the same time and not using the CPU as a fallback? Maybe sharing the RAM or sharing the memory and doing some clever stuff there – and it would not create different results, even if the GPU is running out of VRAM Is this the case with Karma?</strong></p>



<p class="wp-block-paragraph"><strong>Mark Elendt:</strong> Karma’s code is written for the CPU and for the GPU. We find that when you work collaboratively, when you‘ve got both devices working on the same image, the CPU may only do 20 percent of the work, the GPU does 80 percent of the work. In some cases, the CPU only does 10 percent of the work while the GPU does 90percent, but in some cases the CPU does more. Right? It‘s a balance.</p>



<p class="wp-block-paragraph"><strong>DP: And it balances itself and it takes care of that?</strong></p>



<p class="wp-block-paragraph"><strong>Mark Elendt:</strong> Yeah. You know, one device will do more work than the other.</p>



<p class="wp-block-paragraph"><strong>DP: Depending on the shaders and what it does?</strong></p>



<p class="wp-block-paragraph"><strong>Brian Sharpe:</strong> Certain features like subsurface scattering doesn‘t run as efficiently on the GPUs…</p>



<p class="wp-block-paragraph"><strong>Mark Elendt:</strong> If the CPU is only doing 20 percent of the image. And your image takes a minute to render and all of a sudden the GPU can‘t work anymore. Mm hmm. Well, the CPU seems really slow because the GPU was doing 80 percent of the work, so now it‘s only doing 20 percent of the work. The render is going to take five times as long. But we don‘t actually decide what‘s better. We just make every device work at full speed. Both devices can do subsurface scattering. But the GPU is not as efficient during subsurface rendering, so the CPU will take up more of the rendering time. It‘ll contribute maybe 30 or 40 percent of the render instead of only 20 percent. So both devices are working full out to generate the image. But some devices are better at some things.</p>



<p class="wp-block-paragraph"><strong>DP: What about distributed rendering, as in many machines working on one image. Is that something that Karma CPU and XPU can do?</strong></p>



<p class="wp-block-paragraph"><strong>Mark Elendt:</strong> XPU is built to have multiple devices. If you‘ve got three GPUs, three graphics cards or four graphics cards in your box and one CPU, you can actually have five XPU devices working collaboratively on the image. It‘s not just one GPU and the CPU, it‘s as many GPUs as you have and CPU, but we can extend that in the future. We can then have other devices that are not necessarily just GPU or CPU devices. Currently it‘s not able to do distributed rendering, but the engine is prepared for it. XPU works by using USD underneath for the scene description. So XPU will take the USD buffers and send the required data to the device. So, if you‘ve got a teapot geometry, it will send that geometry to the GPU and to the CPU device. It might send it over the network to the device and then all the devices have the copies of the data and work together collaboratively to build the final image.</p>



<p class="wp-block-paragraph"><strong>DP: Currently it is a Cuda implemen­tation?</strong></p>



<p class="wp-block-paragraph"><strong>Mark Elendt:</strong> Cuda has a lot of the production features that we‘re looking for. High quality programmable shading with C   shaders. They‘ve got a very good development toolkit, but that doesn‘t hinder us from developing other devices. Whether we develop a Vulkan device or a metal device, we have the architecture that we can build these new devices using different technologies, and it will all work together on different platforms.</p>



<p class="wp-block-paragraph"><strong>DP: But still also currently not executed?</strong></p>



<p class="wp-block-paragraph"><strong>Brian Sharpe:</strong> Currently its CUDA and Optix, whereby Optix is the library toolkit and CUDA is the language you want to plug into.</p>



<p class="wp-block-paragraph"><strong>DP: Why not OpenCL?</strong></p>



<p class="wp-block-paragraph"><strong>Mark Elendt:</strong> We‘re leveraging a lot of the technology that comes with Optix and the Nvidida drivers. So it makes it a lot easier for us to have some stepping stones, which make it easier for us to implement.</p>



<p class="wp-block-paragraph"><strong>Brian Sharpe:</strong> We can gain access to the RTX hardware. So that‘s the ray tracing hardware on Nvidia GPUs via Cuda OptiX. But they haven‘t exposed that to open CL yet. So if we wrote an openCL device, all the ray tracing would be in software, so it wouldn‘t be as performant. For now on video cards, it looks like we‘ll be sticking with Optix Cuda, but for other GPUs we will see.</p>



<p class="wp-block-paragraph"><strong>Mark Elendt:</strong> We are trying to get to the stage where people are already using Karma XPU for production, but we‘d like to get to the stage where everyone feels comfortable and safe using Karma XPU for real production. Once we get there, then we can start expanding into other devices, whether it‘s distributed rendering or Metal or Vulkan or Opencl. So a lot of ways we can go in the future.</p>



<p class="wp-block-paragraph"><strong>DP: What about USD?</strong></p>



<p class="wp-block-paragraph"><strong>Mark Elendt:</strong> There is a lot going on in USD development. At SideFX, we started on a look dev project called Solaris. When we started to work on Solaris, we evaluated the possibility of having Mantra ported to import USD and we realized that Mantra was getting a little bit long in the tooth. The architecture was not as flexible as we wanted. At that point we decided it was time for a new renderer and lets call it Karma. That will work straight natively with USD. Karma has got a lot of the rendering heri­tage that mantra has, but it‘s also streamlined and architected for more modern technologies.</p>



<p class="wp-block-paragraph"><strong>Brian Sharpe:</strong> The architecture of XPU lives and with the same design principles as Karma CPU, it just chooses to execute the stuff on GPU. But there are things that KARMA XPU can‘t do, such as running things like VEX, so I decided just to leave it on the shelf for now and just concentrate on getting the MaterialX version going.</p>



<p class="wp-block-paragraph"><strong>Mark Elendt:</strong> A lot of the technologies that KARMA is building on are open source and part of the Academy Software Foundation, the ACLU group. USD is not part of ASF yet, though they do have a working group. But again, it‘s a relatively new project. It‘s been used in ILM for four years and getting larger exposure recently. Autodesk is doing a lot of work on MaterialX, AMD has a big MaterialX gallery that you can download directly in Houdini20 and USD has a built in MaterialX support. So all of these software libraries work well together. Leveraging that means that users will be more familiar with the concepts. Well, what we‘re finding is MaterialX has a lot of the features that we need and is very general and flexible, but there are certain things that it doesn‘t have support for yet. We‘re working with the MaterialX team, we‘re pushing nodes up to them and working with them on building and extending and making MaterialX more flexible and more accessible to everybody.</p>



<p class="wp-block-paragraph"><strong>Brian Sharpe:</strong> It‘s I‘ll add one thing to that, what we‘re finding and one really good reason and one really good benefit that we‘ve got Karma XPU. And also our CPU engine under the one umbrella, which is Karma is if someone‘s working within KARMA XPU and they‘re doing all their work and their are using MaterialX, they really do find this a certain feature that they just cannot exist, such as casting an arbitrary ray from a shader or something there is always a fallback to our Karma CPU render and do all that stuff in VEX that we really have to do. So that could be in the middle of production and they‘re not going to at that moment look out for another renderer. They keep going because there‘s a big safety net in Karma CPU.</p>



<p class="wp-block-paragraph"><strong>Mark Elendt:</strong> And that‘s always been a philosophy of SideFX. Which is not to make users hit any brick walls. You want to be flexible enough that you can do anything, with Karma. We‘ve sort of pulled the reins in a bit, but we still have those back doors that if you are really savvy where you really are stuck, you can get out of the problem and solve your solution.</p>



<p class="wp-block-paragraph"><strong>DP: Any plans for a sort of real time incarnation of Karma?</strong></p>



<p class="wp-block-paragraph"><strong>Mark Elendt:</strong> No. Karma is always going to be a path tracing renderer. There are path tracers out there that are real time, but they are specifically written for real time. So, they will send very few rays and rely on denoise. Karma is really intended to be a more general-purpose offline renderer. You get really fast feedback and sometimes images can take just seconds to render, but that‘s not real time. It‘s interactive.I think you might be able to look for something coming in the Houdini viewport that the real time rendering in the viewport using OpenGL or Vulkan the Raytracing support. The two types of rendering are getting closer together. We might end up with raytraced reflections in the viewport or some raytraced, soft shadows or something like that. But you may not get the subsurface scattering and the high-fidelity kind of lighting that you would get with Karma.</p>



<p class="wp-block-paragraph"><strong>DP: What about denoising?</strong></p>



<p class="wp-block-paragraph"><strong>Mark Elendt:</strong> I don‘t think that we‘re going to spend a lot of research time on denoise theories at SideFX, but there are a lot of public denoisers and even proprietary denoisers which we can leverage inside of the architecture. We have integrated the OptiX denoiser and as well as the Intel Open Denoiser into Karma and we are also working with Nvidia. We feed back data to them and discuss denoising issues, but we let them do the lion‘s share of the heavy lifting.</p>



<p class="wp-block-paragraph"><strong>Brian Sharpe:</strong> What we have in Karma CPU already is the automatic convergence mode, where Karma is smart about where it sends the rays. Where an area of noise is Karma hammers it with more samples.</p>



<p class="wp-block-paragraph"><strong>DP: Is there anything that you think you want to tell the readers about the future of XPU?</strong></p>



<p class="wp-block-paragraph"><strong>Brian Sharpe:</strong> One thing needs a bit more explanation, the CPU running out of m­emory. And in extreme cases it can. But we‘re currently working on out-of-core rendering for you, so it doesn’t mean it‘s going to magically work on a one gigabyte scene or something, but it‘s going to get a lot better with memory going forward!</p><p>The post <a href="https://digitalproduction.com/2024/05/15/usd-solaris-and-karma-in-houdini-20-and-elsewhere/">USD, Solaris and Karma in Houdini 20 (and elsewhere…)</a> first appeared on <a href="https://digitalproduction.com">DIGITAL PRODUCTION</a> and was written by <a href="https://digitalproduction.com/author/olaffinkbeiner/">Olaf Finkbeiner</a>. </p></div>]]></content:encoded>
					
		
		
		<enclosure url="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2024/09/image-32.webp?fit=651%2C488&#038;quality=72&#038;ssl=1" length="18286" type="image/jpg" />
<media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2024/09/image-32.webp?fit=651%2C488&#038;quality=72&#038;ssl=1" width="651" height="488" medium="image" type="image/jpeg">
	<media:copyright>DIGITAL PRODUCTION</media:copyright>
	<media:title></media:title>
	<media:description type="html"><![CDATA[]]></media:description>
</media:content>
<media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2024/09/image-32.webp?fit=651%2C488&#038;quality=72&#038;ssl=1" width="651" height="488" />
<post-id xmlns="com-wordpress:feed-additions:1">144481</post-id>	</item>
		<item>
		<title>Houdini 19.5: I/O &#8211; UI &#8211; RBD -FLIP &#8211; PYRO &#8211; UX ..</title>
		<link>https://digitalproduction.com/2022/07/13/houdini-19-5-i-o-ui-rbd-flip-pyro-ux/</link>
		
		<dc:creator><![CDATA[Olaf Finkbeiner]]></dc:creator>
		<pubDate>Wed, 13 Jul 2022 07:38:00 +0000</pubDate>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Animation]]></category>
		<category><![CDATA[dp2205]]></category>
		<category><![CDATA[FLIP fluids SOP]]></category>
		<category><![CDATA[Houdini]]></category>
		<category><![CDATA[Houdini animation]]></category>
		<category><![CDATA[Houdini I/O pipeline]]></category>
		<category><![CDATA[karma]]></category>
		<category><![CDATA[Karma renderer Houdini]]></category>
		<category><![CDATA[kineFX]]></category>
		<category><![CDATA[KineFX rigging Houdini]]></category>
		<category><![CDATA[procedural rigging Houdini]]></category>
		<category><![CDATA[Pyro FX]]></category>
		<category><![CDATA[Pyro simulation Houdini]]></category>
		<category><![CDATA[RBD simulation Houdini]]></category>
		<category><![CDATA[Rendering]]></category>
		<category><![CDATA[rigging]]></category>
		<category><![CDATA[SideFX]]></category>
		<category><![CDATA[Simulation]]></category>
		<category><![CDATA[solaris]]></category>
		<category><![CDATA[Solaris USD Houdini]]></category>
		<category><![CDATA[subscribers]]></category>
		<guid isPermaLink="false">https://digitalproduction.com/?p=167783</guid>

					<description><![CDATA[<div style="margin: 5px 5% 10px 5%;"><img src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/fluid_1.jpg?fit=1121%2C1080&quality=80&ssl=1" width="1121" height="1080" title="" alt="Cracked stone letters 'DP' breaking through grass" /></div><div><p>There are no completely new features in the Houdini 19.5 update this time. Rather, there are fundamental revisions to the most important functionalities of Houdini: RBD Rigid Body Dynamics and Fluids Simulations. I/O, i.e. input &#38; output, is another topic that extends across all tools. And as expected, there are some user interface standardisations and improvements - especially in the interactive tools. Let's dive right in!</p>
<p>The post <a href="https://digitalproduction.com/2022/07/13/houdini-19-5-i-o-ui-rbd-flip-pyro-ux/">Houdini 19.5: I/O – UI – RBD -FLIP – PYRO – UX ..</a> first appeared on <a href="https://digitalproduction.com">DIGITAL PRODUCTION</a> and was written by <a href="https://digitalproduction.com/author/olaffinkbeiner/">Olaf Finkbeiner</a>. </p></div>]]></description>
										<content:encoded><![CDATA[<div style="margin: 5px 5% 10px 5%;"><img src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/fluid_1.jpg?fit=1121%2C1080&quality=80&ssl=1" width="1121" height="1080" title="" alt="Cracked stone letters 'DP' breaking through grass" /></div><div><p class="wp-block-paragraph">And here’s the beta disclaimer: This article was written before the release of H19.5, so something may have changed..</p>



<h2 class="wp-block-heading" id="h-rigid-body-dynamics-rbd"><span id="rigid-body-dynamics-rbd">Rigid Body Dynamics – RBD</span></h2>



<p class="wp-block-paragraph">It’s getting down to the nitty gritty! RBD is what Houdini is best known for – rigid body simulations. Usually, but not always, to break something. Many of the RBD nodes have been given a tidy new user interface. The parameters are now organised in logical tabs and panels. Rarely used parameters have been “hidden” so that they are not in the way and distracting.</p>



<p class="wp-block-paragraph">Even more important, however, is the new workflow. Parameters should no longer be set in the solver but in separate “Configure” nodes (e.g. “RBD Configure”). Import and export nodes have been have been adapted to each other and are structured in the same way as the I/O nodes of other solvers, for example the Pyrosolver. The other I/O improvements are not so obvious, as they are more about speed improvements under the bonnet and better handling of inputs and outputs.</p>



<figure class="wp-block-gallery has-nested-images columns-2 is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><a href="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/Pyro_Solver.jpg?quality=80&ssl=1"><img data-recalc-dims="1"  fetchpriority="high"  decoding="async"  width="945"  height="912"  data-id="167794"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/Pyro_Solver.jpg?resize=945%2C912&quality=80&ssl=1"  alt=""  class="wp-image-167794" ></a></figure>



<figure class="wp-block-image size-large"><a href="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/RBD_BulletSolver.jpg?quality=80&ssl=1"><img data-recalc-dims="1"  decoding="async"  width="945"  height="836"  data-id="167791"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/RBD_BulletSolver.jpg?resize=945%2C836&quality=80&ssl=1"  alt=""  class="wp-image-167791" ></a></figure>



<figure class="wp-block-image size-large"><a href="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/RBD_IO_1.jpg?quality=80&ssl=1"><img data-recalc-dims="1"  decoding="async"  width="1063"  height="1040"  data-id="167793"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/RBD_IO_1.jpg?resize=1063%2C1040&quality=80&ssl=1"  alt=""  class="wp-image-167793" ></a></figure>



<figure class="wp-block-image size-large"><a href="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/RBD_Simulation_Points_QUICKSETUP.jpg?quality=80&ssl=1"><img data-recalc-dims="1"  decoding="async"  width="1063"  height="860"  data-id="167792"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/RBD_Simulation_Points_QUICKSETUP.jpg?resize=1063%2C860&quality=80&ssl=1"  alt=""  class="wp-image-167792" ></a></figure>
<figcaption class="blocks-gallery-caption wp-element-caption">Node network for cache simulation created by dropdown menu in RBD I/O.</figcaption></figure>



<h2 class="wp-block-heading" id="h-rbd-i-o-2-0"><span id="rbd-i-o-2-0">RBD I/O 2.0</span></h2>



<p class="wp-block-paragraph">In Houdini, data, be it geometry or animation, is always outsourced wherever possible. Of course, this also applies to simulation data, proxies and constraints. Geo, proxy geo and constraints can now also be written together in a single file. “RBD I/O” makes it easier to name this data, select the path and folder and create version numbers. In the past, Houdini users had to build this functionality themselves or the Studio pipeline developed tools for it. The file name and path are therefore made up of parts and these can also be variables. In Houdini, $HIP is the path where the Houdini Scene *.hip is saved. All this already exists here and there outside of RBD in Houdini, now this naming workflow is also implemented for RBD. Furthermore, the fourth input of the node is now exclusively for Simulation Points (instead of Geometry and Points in previous versions).</p>



<h2 class="wp-block-heading" id="h-dop-i-o-dop-import-2-0"><span id="dop-i-o-dop-import-2-0">DOP I/O – DOP Import 2.0</span></h2>



<p class="wp-block-paragraph">The new 2.0 version is of course faster and has a tidier UI. The improvement in speed is particularly noticeable in large scenes, such as crowd animations. And here, too, there is now the Quick Setup drop-down menu in the UI with 2 selection options: “Transform High-Res Geometry” and “Cache Simulation”.</p>



<p class="wp-block-paragraph">RBD Material Fracture: Performance and memory improvements here too. If, for example, two pieces of wood that are in a group (selection), but also 100 units that are far apart, were to be transformed into wood splinters, this took ages. Now such a scenario is much quicker.</p>



<p class="wp-block-paragraph">RBD Transform: “RBD Transform” was added in response to numerous user requests and makes it easier to place RBDs. It is similar to the normal Transform Node, but has the three inputs and outputs required for RBD (High-Res Geometry, Constraints, and Proxy Geometry). RBD Match Transforms: With RBD Match Transforms, manual adjustments to individual fragments of an RBD simulation can be included in the stream again. UX improvements: RBD Constraints from Curves and RBD Constraints from Lines<br />now have a nice HUD.</p>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" height="1080" width="1083"  decoding="async"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/RBD_nodes_added_by_Simulation_Points_QUICKSETUP.jpg?resize=1083%2C1080&quality=80&ssl=1"  alt=""  class="wp-image-167795" ><figcaption class="wp-element-caption">RBD Match Transforms: With RBD Match Transforms, manual adjustments of individual fragments of an RBD simulation can be included in the stream again.</figcaption></figure>



<h2 class="wp-block-heading" id="h-pyro-amp-flip-fluids"><span id="pyro-flip-fluids">Pyro & FLIP Fluids</span></h2>



<p class="wp-block-paragraph">FLIP solvers are hybrid solvers that use both particles and volumes for simulation. These FLIP fluids are not new per se – but they are now also available in the SOP context. That’s awesome!<br />SOP-based FLIP fluids enable fast, simple setups that no longer require sending back and forth between SOP and DOP. In the past, this has made many things technically difficult to understand and cumbersome. This is now a thing of the past and – I repeat – very cool!<br />In addition, new methods have been introduced that simplify the addition and removal (source/sink) of particles. The simulation container, i.e. the area in which the simulation is to take place, can not only be a box, but also a cylinder or a sphere. Even deforming animated shapes are possible. There are also presets for temperature, viscosity, beach waves, oceans and melting rubber animals.</p>



<figure class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-2 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><a href="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/FLIP-Collide.jpg?quality=80&ssl=1"><img data-recalc-dims="1"  decoding="async"  width="265"  height="233"  data-id="167797"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/FLIP-Collide.jpg?resize=265%2C233&quality=80&ssl=1"  alt=""  class="wp-image-167797" ></a><figcaption class="wp-element-caption">The new “FLIP Collide” node is for object interactions and collisions. Of course, the whole thing works with static, animated, deforming objects and volumes.</figcaption></figure>



<figure class="wp-block-image size-large"><a href="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/FLIP-Solver-i.jpg?quality=80&ssl=1"><img data-recalc-dims="1"  decoding="async"  width="354"  height="302"  data-id="167798"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/FLIP-Solver-i.jpg?resize=354%2C302&quality=80&ssl=1"  alt=""  class="wp-image-167798" ></a><figcaption class="wp-element-caption">The new “Flip Solver” is the centrepiece, where the specifications are set: substeps, boundary behaviour. There is also a fourth input for external pressure and acceleration sources, such as Ocean Spectra or even other SOP FLIP fluid simulations.</figcaption></figure>



<figure class="wp-block-image size-large"><a href="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/FLIP-Source.jpg?quality=80&ssl=1"><img data-recalc-dims="1"  decoding="async"  width="328"  height="246"  data-id="167799"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/FLIP-Source.jpg?resize=328%2C246&quality=80&ssl=1"  alt=""  class="wp-image-167799" ></a><figcaption class="wp-element-caption">There are 3 modes for “FLIP Source”. “None”: Stops when the FLIP Fluid water level touches the source. “Velocity”: the glass overflows. “Pressure”: when a preset pressure is reached.</figcaption></figure>
</figure>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" height="1080" width="1149"  decoding="async"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/FLIP-SOP-network_schmelzende-Gummi-Tiere.jpg?resize=1149%2C1080&quality=80&ssl=1"  alt=""  class="wp-image-167801" ><figcaption class="wp-element-caption">The node network of the melting rubber animal preset.</figcaption></figure>



<h2 class="wp-block-heading" id="h-pyro"><span id="pyro">Pyro</span></h2>



<p class="wp-block-paragraph">The “Pyro Sources SOP” can generate pyro instances which are distributed to scattered points – for example for very large explosions, dusty storms or forest fires. Compared to before, these can now be different sources at the same time. The timing of the ignition and the transformation can be adjusted. The whole thing can also be realised with a special packed workflow, the Pyro Source Pack. Pyro Spawn Sources and Pyro Source Instance Operators enable an even more flexible workflow. The new Pyro Spawn Sources and The Pyro Source Instance SOPs create and instantiate spawn points. And Houdini Pyro Simulations have GPU-accelerated noise.<br />KineFX and Channels (CHOPs)</p>



<p class="wp-block-paragraph">KineFX, the rigging and animation framework and toolset freshly introduced in Houdini 19, mainly gets many detail improvements. But also new functions in the area of UI and user-friendliness. I/O is also a big topic here again.</p>



<figure class="wp-block-image size-large is-resized"><img data-recalc-dims="1"  decoding="async"  width="709"  height="1018"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/global-animation-options.jpg?resize=709%2C1018&quality=80&ssl=1"  alt=""  class="wp-image-167807"  style="width:260px;height:auto" ></figure>



<h2 class="wp-block-heading" id="h-animation"><span id="animation">Animation</span></h2>



<p class="wp-block-paragraph">In the area of character animation and rigged animation with skeletons, H19.5 contains a huge number of detailed improvements to the MotionClip SOP, the MotionClip Extract SOP, the MotionClip Pose Delete SOP, the Rig Pose SOP, Rig Match Pose SOP, etc. Some of the improvements here with a little more detail.</p>



<figure class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-3 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><a href="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/MotionClip-SOP_viewport_state_1.jpg?quality=80&ssl=1"><img data-recalc-dims="1" height="837" width="1200"  decoding="async"  data-id="167804"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/MotionClip-SOP_viewport_state_1.jpg?resize=1200%2C837&quality=80&ssl=1"  alt=""  class="wp-image-167804" ></a><figcaption class="wp-element-caption">The viewport state of the “MotionClip SOP” can display the entire motion, i.e. the MotionClip. A bit like ghosting in 2D animated film software.</figcaption></figure>
</figure>



<h2 class="wp-block-heading" id="h-motionclip-sop-viewport-state"><span id="motionclip-sop-viewport-state">MotionClip SOP Viewport State</span></h2>



<p class="wp-block-paragraph">SOP nodes that output motion clips can now visualise these clips to display movements or poses. A freely selectable colour gradient can be chosen to represent time. The current frame is also highlighted (or “highlighted”? What a word!). This makes it easier to edit rigged animations, be it motion capture data or animations created elsewhere. The whole thing is a so-called ViewPortState, which shows the direction in which Houdini is heading in terms of UI and viewport. It is becoming more and more user-friendly and the basis for this is the development of viewport states.</p>



<h2 class="wp-block-heading" id="h-frame-rate-change-and-key-position-handling"><span id="frame-rate-change-and-key-position-handling">Frame rate change and key position handling</span></h2>



<p class="wp-block-paragraph">Frame rates and animation keyframes are closely related. It is annoying if the frame rate has to be changed later for whatever reason. Should the existing keyframes remain at the keyframe number or at the same time? And what happens if there is no frame at all? Should it then be snapped to the next one or should the keyframe be on a subframe? All of this is now easier to set. Any changes to the timings must now be confirmed explicitly and are not carried out automatically as before.</p>



<figure class="wp-block-image size-full"><img data-recalc-dims="1"  decoding="async"  width="653"  height="236"  sizes="(max-width: 1200px) 100vw, 1200px"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/houdini_2022-07-08_21-51-41.jpg?resize=653%2C236&quality=80&ssl=1"  alt=""  class="wp-image-167806" ><figcaption class="wp-element-caption">The timeline can now be switched to subframes. This was already possible before, but was well hidden. Now there is a button for this.</figcaption></figure>



<h2 class="wp-block-heading" id="h-animation-channels-chop"><span id="animation-channels-chop">Animation Channels – CHOP</span></h2>



<p class="wp-block-paragraph">The good old CHOPs also get something new: The Pass Filter CHOP, which filters audio as a control signal for animations, now also gets a Butterworth filter, which is particularly steep and thus enables a more precise frequency separation.</p>



<h2 class="wp-block-heading" id="h-procedural-rigging"><span id="procedural-rigging">Procedural Rigging</span></h2>



<p class="wp-block-paragraph">The new Joint Capture Paint SOP replaces the old Capture Layer Paint SOP in the KineFX Capture workflow. There is a Rig Tree in the UI, and some new viewport states. A new Point Capture SOP, Character Blend Shape Channels SOP. Since it would go beyond the scope of this article, here is a list of the Procedural Rigging SOPS that have been improved: Attach Joint Geo SOP, Joint Capture Biharmonic SOP, Character Blend Shapes Add SOP, Character Blend Shapes Extract SOP, MotionClip SOP, MotionClip Extract SOP, MotionClip Pose Delete SOP, Rig Pose SOP, Rig Match Pose SOP, Blend Shapes SOP, Rig Doctor SOP, Orient Joints SOP, Visualise Rig SOP and if I’ve missed any I apologise. Procedural rigging is obviously an important topic. Unfortunately, it’s a bit neglected in this article, but we’ll make up for it!</p>



<h2 class="wp-block-heading" id="h-input-output"><span id="input-output">Input/Output</span></h2>



<p class="wp-block-paragraph">A lot is really happening with regard to I/O in the H19.5 release. I/O is getting the attention it deserves. There is a special character I/O SOP with motion clip support. FBX support for characters has been improved. “Dem Bones Skinning Converter” is not a band name, but a converter to turn animations with geometries that have no topology changes into bones animations. The USD Skin Import SOP, Mocap Stream SOP have been improved. And something with Qualisys.</p>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" height="609" width="1200"  decoding="async"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/Shallow-water-solver-_comp.jpg?resize=1200%2C609&quality=80&ssl=1"  alt=""  class="wp-image-167809" ><figcaption class="wp-element-caption">2D Heightfield Fluids – also called “The Fountain Tool”. Fancy a relaxed ripple?</figcaption></figure>



<h2 class="wp-block-heading" id="h-still-water-is-new-the-shallow-water-solver"><span id="still-water-is-new-the-shallow-water-solver">Still water is new! The Shallow Water Solver</span></h2>



<p class="wp-block-paragraph">The new Shallow Water Solver SOP is another small highlight in H19.5. What was that? “Still waters run deep” is not true here. Still or little moving water, i.e. without breaking waves or splashes, can now be displayed in Houdini as a 2.5D heightfield (like the terrains). In the example, the water flows down a mountain. Sources and outflows are defined by masks. And moving objects can also displace the water. The “Shallow Water Solver SOP” is not suitable for complex water, but that’s what Vellum and Flip are for.</p>



<figure class="wp-block-image size-full"><img data-recalc-dims="1"  decoding="async"  width="1200"  height="613"  sizes="(max-width: 1200px) 100vw, 1200px"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/shallow_water.jpg?resize=1200%2C613&quality=80&ssl=1"  alt=""  class="wp-image-167810" ><figcaption class="wp-element-caption">Roberto the rubber animal on a long journey and drives a bow wave over a 2D heightfield fluid.</figcaption></figure>



<h2 class="wp-block-heading" id="h-oceans"><span id="oceans">Oceans</span></h2>



<p class="wp-block-paragraph">On most computers, Houdini uses the FT implementation from Intel’s MKL library in the “VolumeFFT SOP” and Ocean_sample VEX function. This is much faster at 4K Ocean Spectrum resolutions. And Ocean Rendering in Karma CPU is made possible. Yeah..</p>



<h2 class="wp-block-heading" id="h-solaris"><span id="solaris">Solaris</span></h2>



<p class="wp-block-paragraph">Solaris is Houdini’s scene layout, lighting and rendering tools. Solaris is based on the Universal Scene Description (USD) framework from Pixar. Several interface improvements, for example in the render settings and some new nodes, ensure that Solaris, which was introduced in H18 (end of 2019), is slowly emerging from the early adopter/ beta feeling. Look development, material library, rendering, caching and import and export are also being optimised. The new Houdini Procedurals Hair LOP generates rendertime hair from guide curves and skin prims. And the Houdini Preview Procedurals LOP enables interactive previews of the procedures.</p>



<figure class="wp-block-image size-full"><img data-recalc-dims="1"  decoding="async"  width="1200"  height="185"  sizes="(max-width: 1200px) 100vw, 1200px"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/Solaris_Layout.jpg?resize=1200%2C185&quality=80&ssl=1"  alt=""  class="wp-image-167813" ><figcaption class="wp-element-caption">The Solaris – Layout LOP tools make interactive scene layout possible. And the icons are worth more than a thousand words.</figcaption></figure>



<p class="wp-block-paragraph">Other new Solaris Nodes are:<br />Reference 2.0 LOP, Edit Prototypes LOP, Isolate Scene LOP for Solaris stuff<br />Light Filter Library LOP for Karma Light Filter Shaders and MaterialX nodes.<br />Motion Blur LOP, File Cache LOP, Match Size LOP – Matching and centring of prims and models.<br />Cache 2.0 LOP – efficient caching of subframe samples.<br />Coordinate System LOP – coordinate systems.<br />Karma Cryptomatte LOP – Cryptomatte AOVs for Karma.<br />Karma Ocean LOP – Rendered Ocean Spectra and foam with Karma CPU.<br />Scene assembly and layout</p>



<p class="wp-block-paragraph">Again some detail improvements: The Layout LOP now also has a stack and a paint brush. Houdini is on the way to providing interactive tools for set dressing and scene layout. Houdini wants to be not only procedural but also art-directible and artist-friendly. It will be!</p>



<h2 class="wp-block-heading" id="h-karma"><span id="karma">Karma</span></h2>



<p class="wp-block-paragraph">Karma is Houdini’s own renderer, which works together with Solaris and will probably eventually replace Mantra. Some of the new features have therefore already been mentioned in the Solaris section. As you would expect, Karma has become faster. The highlight with regard to Karma is a first version of the “Karma User Guide”, with tips and tricks for optimising rendering with Karma. As with all new help and user guides, I’m really impressed by the detail and illustrations. This is how documentation works!</p>



<figure class="wp-block-image size-full"><img data-recalc-dims="1"  decoding="async"  width="465"  height="354"  sizes="(max-width: 1200px) 100vw, 1200px"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/MtlX-Color-Correct-VOP.jpg?resize=465%2C354&quality=80&ssl=1"  alt=""  class="wp-image-167814" ><figcaption class="wp-element-caption">MaterialX Colour Correction Node – test image when night falls.</figcaption></figure>



<h2 class="wp-block-heading" id="h-shading"><span id="shading">Shading</span></h2>



<p class="wp-block-paragraph">The new features in the shading toolset are quickly listed: Principled Shader VOP and Karma Nested Dielectrics VOP now support dielectric materials in MaterialX/Karma. The Karma OCIO Colour Transform VOP transforms colour manually, and Karma Ray Import VOP imports ray variables for MaterialX shading graphs. Karma Volume VOP combines VDF and EDF volumes Karma-friendly, and last but not least Karma Rounded Edge VOP render-time edge rounding and Karma Curvature Surface surface curvature – but both only work with<br />Karma CPU.</p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/MtlX-Facing-Ratio-.jpg?quality=80&ssl=1"><img data-recalc-dims="1"  decoding="async"  width="768"  height="650"  sizes="(max-width: 1200px) 100vw, 1200px"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/MtlX-Facing-Ratio-.jpg?resize=768%2C650&quality=80&ssl=1"  alt=""  class="wp-image-167816" ></a><figcaption class="wp-element-caption">MtlX Facing Ratio: Surfaces that are orthogonal to the camera are red, the others are yellow. Something like a FallOff is supposedly softer..</figcaption></figure>



<h2 class="wp-block-heading" id="h-materialx"><span id="materialx">MaterialX</span></h2>



<p class="wp-block-paragraph">MaterialX is the material counterpart to USD. Not much new and Lama (Material Layer) is unfortunately not yet supported. MtlX Color Correct is a new wrapper to make the MaterialX Colour Correction Nodes more user-friendly. MtlX Facing Ratio is the new node to create a nice soft falloff. The version numbers are now: UsdMtlX update USD 22.05, MaterialX library version 1.38.4.</p>



<h2 class="wp-block-heading" id="h-what-s-new-pdg-tops"><span id="whats-new-pdg-tops">What’s new PDG/TOPs</span></h2>



<p class="wp-block-paragraph">PDG (Procedural Dependency Graph) can be used to distribute and process tasks. This can be, for example: rendering, simulation, geometry and landscape generation, Python scripts, connections to other applications (via API) such as render manager, project manager etc. The whole thing works both locally and on other computers and in other apps such as Photoshop or Maya. Python always works anyway, but many things are already well connected.</p>



<p class="wp-block-paragraph">The Procedural Dependency Graph or TOPs (Task Operators) is certainly the most “exotic” and technically challenging part of Houdini. TOPs was introduced in H17.5 (March 2019). In the meantime, it has become an indispensable part of larger and smaller pipelines. The PDG options for working with USD data have been improved. Error messages for attribute evaluation and the PDG API have been improved. I won’t go into details for reasons (DP is not a programmer magazine and I only understand this to a certain extent).</p>



<p class="wp-block-paragraph">Global attributes and two nodes are also new: Attribute Promote TOP and Attribute Reduce TOP. TOP Schedulers: The connection from PDG to Deadline, Tractor or even Houdini’s own render manager HQueue, get several “enhancements” in H19.5. TOP Partitioners have been improved in terms of the use of arrays and the partitions can now be sorted by name. The JSON input TOP has been extended.</p>



<p class="wp-block-paragraph"></p>



<h2 class="wp-block-heading" id="h-pdg-services"><span id="pdg-services">PDG Services</span></h2>



<div class="wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-8f761849 wp-block-group-is-layout-flex">
<figure class="wp-block-image size-full"><img data-recalc-dims="1"  decoding="async"  width="354"  height="290"  sizes="(max-width: 1200px) 100vw, 1200px"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/WhatsApp-Image-2022-07-12-at-10.46.01.jpg?resize=354%2C290&quality=80&ssl=1"  alt=""  class="wp-image-167818" ></figure>



<p class="wp-block-paragraph">The Procedural Dependency Graph Services are something like a process in continuous operation, which can be addressed like a server and which can process “work items”, i.e. jobs. These services can now be created and managed directly in the PDG Graph. There are five new nodes at the start: Service Create, Start, Stop, Delete and the Reset TOP node. The icon is a small petrol station, called “Service Station”. There is now also a Python script service that can be created in the PDG Services window. Also<br />several PDG services of the same type can now be created and each named differently.</p>
</div>



<h2 class="wp-block-heading" id="h-crowds"><span id="crowds">Crowds</span></h2>



<p class="wp-block-paragraph">There are now new versions of Agent Look At DOP and Agent Look At Apply DOP. The agents now also track point clouds or other agents. The attention span of the agents can be defined – how interesting a target is can depend on the distance, the relative speed or whether it is in the field of view of the agent. The rigs can now be controlled by the agent.</p>



<h2 class="wp-block-heading" id="h-agents"><span id="agents">Agents</span></h2>



<p class="wp-block-paragraph">Agents can now have a “Rest Pose” that is used when animations do not move every joint. The Crowd Solver DOP can now handle animation layers. And other detail improvements.</p>



<figure class="wp-block-gallery has-nested-images columns-1 is-cropped wp-block-gallery-4 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><a href="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/WhatsApp-Image-2022-07-12-at-19.10.32.jpg?quality=80&ssl=1"><img data-recalc-dims="1"  decoding="async"  width="1200"  height="497"  data-id="167820"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/WhatsApp-Image-2022-07-12-at-19.10.32.jpg?resize=1200%2C497&quality=80&ssl=1"  alt=""  class="wp-image-167820" ></a></figure>



<figure class="wp-block-image size-large"><a href="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/WhatsApp-Image-2022-07-12-at-19.08.56.jpg?quality=80&ssl=1"><img data-recalc-dims="1"  decoding="async"  width="1200"  height="497"  data-id="167823"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/WhatsApp-Image-2022-07-12-at-19.08.56.jpg?resize=1200%2C497&quality=80&ssl=1"  alt=""  class="wp-image-167823" ></a></figure>



<figure class="wp-block-image size-large"><a href="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/WhatsApp-Image-2022-07-12-at-19.08.02.jpg?quality=80&ssl=1"><img data-recalc-dims="1"  decoding="async"  width="1200"  height="497"  data-id="167821"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/WhatsApp-Image-2022-07-12-at-19.08.02.jpg?resize=1200%2C497&quality=80&ssl=1"  alt=""  class="wp-image-167821" ></a></figure>



<figure class="wp-block-image size-large"><a href="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/WhatsApp-Image-2022-07-12-at-19.12.14.jpg?quality=80&ssl=1"><img data-recalc-dims="1"  decoding="async"  width="1200"  height="497"  data-id="167822"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/WhatsApp-Image-2022-07-12-at-19.12.14.jpg?resize=1200%2C497&quality=80&ssl=1"  alt=""  class="wp-image-167822" ></a></figure>
<figcaption class="blocks-gallery-caption wp-element-caption">Image 1: DP Logo – intact<br />Image 2: DP logo split into pieces<br />Image 3: Pieces turned into spheres because of Vellum pseudo “RBD”. This is very quick<br />to simulate. Makes more sense if it then also interacts with vellum sand and ropes and fabric and fluids..<br />Figure 4: The beads are then replaced with original pieces.</figcaption></figure>



<h2 class="wp-block-heading" id="h-vellum"><span id="vellum">Vellum</span></h2>



<p class="wp-block-paragraph">Vellum shape matching simulations are another small highlight. The shape is first filled with spheres of different sizes. The constraints of the spheres are set very hard. These sphere objects are then used to simulate. This is ultra-fast, as they are only spheres. At the end, the sphere objects are then exchanged for the geo again, hence “shape matching”. In order to run these “shape matching” simulations on the GPU, Nvidia Ampere graphics cards (from 30 series) are probably required. Otherwise it has to run on the CPU..</p>



<figure class="wp-block-image size-full"><img data-recalc-dims="1"  decoding="async"  width="700"  height="863"  sizes="(max-width: 1200px) 100vw, 1200px"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/VELLUM-IO.jpg?resize=700%2C863&quality=80&ssl=1"  alt=""  class="wp-image-167825" ></figure>



<h2 class="wp-block-heading" id="h-vellum-i-o-2-0"><span id="vellum-i-o-2-0">Vellum I/O 2.0</span></h2>



<p class="wp-block-paragraph">The Vellum I/O 2.0 node is now like the Pyro, FLIP fluid, and RBD I/O nodes in terms of UI structure, parameters, and basic functionality.</p>



<figure class="wp-block-image size-full"><img data-recalc-dims="1"  decoding="async"  width="768"  height="1008"  sizes="(max-width: 1200px) 100vw, 1200px"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/vellum-solver.jpg?resize=768%2C1008&quality=80&ssl=1"  alt=""  class="wp-image-167827" ></figure>



<h2 class="wp-block-heading" id="h-static-topology"><span id="static-topology">Static topology</span></h2>



<p class="wp-block-paragraph">In the Vellum Constraints SOP there is the new Static Topology parameter. This makes them static, i.e. they will not slip, break, be removed or welded. This prevents large and dense objects, such as high-resolution tetrahedra, from having to be recalculated (recoloured), even though this would not be necessary.</p>



<h2 class="wp-block-heading" id="h-vellum-attach-constraints-sop"><span id="vellum-attach-constraints-sop">Vellum Attach Constraints SOP</span></h2>



<p class="wp-block-paragraph">The new Vellum Attach Constraints is an interactive tool for editing geometry and stitch constraints. Lines can be attached interactively between fabric and target geometry. Very similar to the RBD Constraints from Lines node.</p>



<figure class="wp-block-image size-full"><img data-recalc-dims="1"  decoding="async"  width="1200"  height="780"  sizes="(max-width: 1200px) 100vw, 1200px"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/Spiralen.jpg?resize=1200%2C780&quality=80&ssl=1"  alt=""  class="wp-image-167828" ><figcaption class="wp-element-caption">The “hundreds” of spiral HDA tools created by Houdini users on the net are being retired.</figcaption></figure>



<h2 class="wp-block-heading" id="h-resolution-independent-tetrahedron"><span id="resolution-independent-tetrahedron">Resolution Independent Tetrahedron</span></h2>



<p class="wp-block-paragraph">Then there is the fact that the tetrahedrons have rehearsed a rebellion and can now change their resolution without changing the simulation much.</p>



<h2 class="wp-block-heading" id="h-modelling"><span id="modelling">Modelling</span></h2>



<p class="wp-block-paragraph">I had already announced it in the last Houdini release article. Houdini is becoming more interactive. Both TopoTransfer and Curve, the curve tool, are getting significant improvements. For example, better operation with a stylus/pen input as far as Topotransfer is concerned. The Curve tool can now add Orient attributes to points and has better interaction in Bezier with two curves. In addition, rounded edges are much easier to set, and keyboard shortcuts and radial menu are optimised. “Convert Line” can now convert edges into curves, to be found in the “Curve from Edges” shelf.<br />And there is now a primitive for 2D spirals and 3D helixes that leaves nothing to be desired. Both archimedean and logarithmic spirals are created, left or right turning, with all necessary attributes.</p>



<figure class="wp-block-image size-full"><img data-recalc-dims="1"  decoding="async"  width="888"  height="827"  sizes="(max-width: 1200px) 100vw, 1200px"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/Dashbox.jpg?resize=888%2C827&quality=80&ssl=1"  alt=""  class="wp-image-167829" ><figcaption class="wp-element-caption">. Comprehensive search in scene and documentary – with hashtags!</figcaption></figure>



<h2 class="wp-block-heading" id="h-other-news"><span id="other-news">Other news</span></h2>



<p class="wp-block-paragraph">Python 3.9! And Houdini now supports native fullscreen mode for the poor macOS users. Volumes can be illuminated by environment lights in the viewport. And 15 nodes are now verbified i.e. multithreaded, e.g.: dopimport::2.0, fit, groupsfromname, lidarimport, polywire, pointcapturecore and some kinefx nodes.<br />And last but not least, there is something completely new: the “Dashbox – An interface for finding things”. This new, nerdy search is to be integrated into other existing search functions in the future (i.e. not yet)… At the moment it is self-sufficient, but a quick keyboard control à la Everything/Autohotkey will certainly be helpful when it is in full use. </p>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph"></p><p>The post <a href="https://digitalproduction.com/2022/07/13/houdini-19-5-i-o-ui-rbd-flip-pyro-ux/">Houdini 19.5: I/O – UI – RBD -FLIP – PYRO – UX ..</a> first appeared on <a href="https://digitalproduction.com">DIGITAL PRODUCTION</a> and was written by <a href="https://digitalproduction.com/author/olaffinkbeiner/">Olaf Finkbeiner</a>. </p></div>]]></content:encoded>
					
		
		
		<enclosure url="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/fluid_1.jpg?fit=2560%2C2466&#038;quality=80&#038;ssl=1" length="1170722" type="image/jpg" />
<media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/fluid_1.jpg?fit=1121%2C1080&#038;quality=80&#038;ssl=1" width="1121" height="1080" medium="image" type="image/jpeg">
	<media:copyright>DIGITAL PRODUCTION</media:copyright>
	<media:title></media:title>
	<media:description type="html"><![CDATA[]]></media:description>
</media:content>
<media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/fluid_1.jpg?fit=1121%2C1080&#038;quality=80&#038;ssl=1" width="1121" height="1080" />
<post-id xmlns="com-wordpress:feed-additions:1">167783</post-id>	</item>
		<item>
		<title>Houdini becomes hyperactive</title>
		<link>https://digitalproduction.com/2021/02/17/houdini-becomes-hyperactive/</link>
		
		<dc:creator><![CDATA[Olaf Finkbeiner]]></dc:creator>
		<pubDate>Wed, 17 Feb 2021 15:44:00 +0000</pubDate>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[dp2102]]></category>
		<category><![CDATA[Houdini]]></category>
		<category><![CDATA[Karma Renderer]]></category>
		<category><![CDATA[KineFX rigging]]></category>
		<category><![CDATA[Pyro FX]]></category>
		<category><![CDATA[SideFX]]></category>
		<category><![CDATA[subscribers]]></category>
		<category><![CDATA[USD]]></category>
		<category><![CDATA[Vellum simulation]]></category>
		<guid isPermaLink="false">https://digitalproduction.com/?p=181909</guid>

					<description><![CDATA[<div style="margin: 5px 5% 10px 5%;"><img src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/pyro_look_viewport-hd.jpg?fit=1200%2C677&quality=80&ssl=1" width="1200" height="677" title="" alt="3D rendering of an explosion with fiery effects" /></div><div><p>Once again, SideFX doesn't do things by halves. The new Houdini 18.5 is packed with classic updates, but also with completely redesigned tools.</p>
<p>The post <a href="https://digitalproduction.com/2021/02/17/houdini-becomes-hyperactive/">Houdini becomes hyperactive</a> first appeared on <a href="https://digitalproduction.com">DIGITAL PRODUCTION</a> and was written by <a href="https://digitalproduction.com/author/olaffinkbeiner/">Olaf Finkbeiner</a>. </p></div>]]></description>
										<content:encoded><![CDATA[<div style="margin: 5px 5% 10px 5%;"><img src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/pyro_look_viewport-hd.jpg?fit=1200%2C677&quality=80&ssl=1" width="1200" height="677" title="" alt="3D rendering of an explosion with fiery effects" /></div><div><div class='__iawmlf-post-loop-links' style='display:none;' data-iawmlf-post-links='[{&quot;id&quot;:5045,&quot;href&quot;:&quot;https:\/\/www.youtube.com\/watch?v=K940MNp7V8M&quot;,&quot;archived_href&quot;:&quot;http:\/\/web-wp.archive.org\/web\/20230719000706\/https:\/\/www.youtube.com\/watch?v=K940MNp7V8M&quot;,&quot;redirect_href&quot;:&quot;&quot;,&quot;checks&quot;:[{&quot;date&quot;:&quot;2025-12-28 20:40:08&quot;,&quot;http_code&quot;:206}],&quot;broken&quot;:false,&quot;last_checked&quot;:{&quot;date&quot;:&quot;2025-12-28 20:40:08&quot;,&quot;http_code&quot;:206},&quot;process&quot;:&quot;done&quot;}]'></div>
<p class="wp-block-paragraph">In addition, Houdini, which is of course still mainly procedural, is becoming more and more interactive. The topic of interactivity will be a recurring theme throughout this article. In addition to interactivity, more and more high-level tools are being added. What I mean by this is best explained at this point, as it will feature frequently in the article. One of the Labs tools will serve as an example: The new Tree Generator or Tree Toolset, which was released in mid-December, well after the 18.5 update. A high-level tool is a special tool for a very limited purpose, such as creating trees, albeit somewhat less flexible, but without a great deal of learning effort and ready for immediate use. Previously, the willing Houdini user could also create trees, but they first had to build their own tool or get started with the existing low-level tools. So the philosophy of only providing a construction kit with low-level functions from which users first have to create tools is gradually changing. But don’t get me wrong, this is of course still possible, and the new high-level tools are generally open source and can therefore be customised.</p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/simple_shelftools-hd.jpg?quality=80&ssl=1"><img data-recalc-dims="1"  decoding="async"  width="1200"  height="68"  sizes="(max-width: 1200px) 100vw, 1200px"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/simple_shelftools-hd.jpg?resize=1200%2C68&quality=80&ssl=1"  alt=""  class="wp-image-181914" ></a><figcaption class="wp-element-caption">The simple shelf ..</figcaption></figure>



<p class="wp-block-paragraph">Another term that requires explanation are the so-called shelf tools in Houdini. Shelf tools are, for example, the pyro setups, the modelling tools and the top margin bar. Next term: Python Viewer State Handles. These were introduced in Houdini a while ago, but 18.5 is the first release in which they are increasingly used. The technical development seems to have been completed so far. What is still missing, however, are high-level tools to make it easier for users to create user interfaces in the viewport with the Python handles, because that is what they are there for.</p>



<p class="wp-block-paragraph"></p>



<figure class="wp-block-gallery has-nested-images columns-2 wp-block-gallery-5 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-medium"><a href="https://digitalproduction.com/?attachment_id=181919"><img data-recalc-dims="1" height="134" width="238"  decoding="async"  data-id="181919"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/VELLUM_Brush_menu-hd-238x134.jpg?resize=238%2C134&ssl=1"  alt=""  class="wp-image-181919" ></a></figure>



<figure class="wp-block-image size-full"><a href="https://digitalproduction.com/?attachment_id=181920"><img data-recalc-dims="1"  decoding="async"  width="1200"  height="788"  sizes="(max-width: 1200px) 100vw, 1200px"  data-id="181920"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/Vellum_Brush_rotate_crop-hd.jpg?resize=1200%2C788&quality=80&ssl=1"  alt=""  class="wp-image-181920" ></a></figure>
<figcaption class="blocks-gallery-caption wp-element-caption">The right-click menu of the Vellum Brush – The Vellum Rotate Brush in action</figcaption></figure>



<div class="wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-8f761849 wp-block-group-is-layout-flex">
<h2 class="wp-block-heading" id="h-vellum"><span id="vellum">Vellum</span></h2>
</div>



<div class="wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-8f761849 wp-block-group-is-layout-flex">
<figure class="wp-block-image size-full"><img data-recalc-dims="1"  decoding="async"  width="1077"  height="1080"  sizes="(max-width: 1200px) 100vw, 1200px"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/VELLUM_Brush_icon-hd-1.jpg?resize=1077%2C1080&quality=80&ssl=1"  alt=""  class="wp-image-181917" ></figure>



<p class="wp-block-paragraph">But let’s get straight to my highlight: Vellum becomes interactive and gets presets for the fabrics: leather, silk, etc. Vellum is a fabric simulation, but it can also be used for ropes, balloons, soft bodies and grains. All types of vellum can now be worked on interactively with brushes, except for grains. As far as fabric is concerned, I only knew this from Marvelous Designer. Pillows, blankets, balloons, jelly babies, ropes and spaghetti etc. can be plucked, thrown, crumpled, compressed and stretched both with and without gravity – really great fun! The whole thing goes in layers and is very art direction-friendly. SideFX announced during the launch event that such interactive tools will find their way into Houdini more and more in the future. The Python viewport handles are used here, for example.</p>
</div>



<h2 class="wp-block-heading" id="h-solaris"><span id="solaris">Solaris</span></h2>



<div class="wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-8f761849 wp-block-group-is-layout-flex">
<p class="wp-block-paragraph">Solaris was introduced with Houdini 18.0, initially more or less just the technical implementation. With Houdini 18.5, the Solaris tools are now more user-friendly. Solaris is a procedural network implementation of Pixar’s USD (Universal Scene Description). The 3D scene is built up as nodes of a network, as is typical for Houdini. There are also additional tools for placing 3D objects in the scene, for example, or for setting the scene lighting. There is another cool interactive tool for placing objects, which uses a live physics rigid body simulation. For example, you can knock over a pile of books or throw things over, which then plausibly remain in place. The creation of lights is now also more intuitive; they are automatically inserted in the right place in the Solaris network. Lights can also be set interactively in Solaris thanks to the Python states.</p>
</div>



<figure class="wp-block-image size-full is-resized"><a href="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/solaris_light_mixer-hd-1.jpg?quality=80&ssl=1"><img data-recalc-dims="1"  decoding="async"  width="511"  height="1080"  sizes="(max-width: 1200px) 100vw, 1200px"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/solaris_light_mixer-hd-1.jpg?resize=511%2C1080&quality=80&ssl=1"  alt=""  class="wp-image-181924"  style="width:233px;height:auto" ></a><figcaption class="wp-element-caption">The Solaris Light Mixer interface is a mixer, each light gets a controller, and so do groups.</figcaption></figure>



<p class="wp-block-paragraph">The Solaris network is also able to display shots. This means that different versions of the scene can be created depending on the frame number. What I find really impressive is the Solaris Frame Buffer: when saving previews, not only is an image saved, but also the settings of light setups, so that you can restore different versions of a light setup. The Solaris Edit SOP has also been completely redesigned and has a history of the individual edit steps. The edits are displayed as a list and can be undone individually. So much for Solaris, or perhaps this: Solaris is very complex, requires some familiarisation and is still anything but intuitive despite the new tools.</p>



<p class="wp-block-paragraph">Solaris works with the new Karma Renderer (still in beta) and other USD-compatible renderers, such as Pixar’s Renderman. Mantra, the old Houdini renderer, does not work like this. Karma is still in beta status, as there is still some work to be done before Mantra can be fully replaced. In 18.5-Karma, hair is supported for the first time, but probably not yet satisfactorily. A Curved Edges Shader and Physical Lens have also been added. In addition, a tech preview of Karma on the GPU, a double beta so to speak.</p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/KINE_FX-hd.jpg?quality=80&ssl=1"><img data-recalc-dims="1"  decoding="async"  width="1200"  height="959"  sizes="(max-width: 1200px) 100vw, 1200px"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/KINE_FX-hd.jpg?resize=1200%2C959&quality=80&ssl=1"  alt=""  class="wp-image-181926" ></a><figcaption class="wp-element-caption">The new KineFX tools ..</figcaption></figure>



<h2 class="wp-block-heading" id="h-kinefx-in-sops"><span id="kinefx-in-sops">KineFX in SOPS</span></h2>



<p class="wp-block-paragraph">KineFX is a completely new procedural rigging and retargeting toolset. Character rigging was an outdated feature of Houdini and not exactly intuitive. An update, or rather a complete overhaul, was long overdue.</p>



<figure class="wp-block-gallery has-nested-images columns-4 is-cropped wp-block-gallery-6 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><a href="https://digitalproduction.com/?attachment_id=181929"><img data-recalc-dims="1"  decoding="async"  width="1043"  height="1080"  data-id="181929"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/KineFX_rig_doctor-hd.jpg?resize=1043%2C1080&quality=80&ssl=1"  alt=""  class="wp-image-181929" ></a></figure>



<figure class="wp-block-image size-large"><a href="https://digitalproduction.com/?attachment_id=181932"><img data-recalc-dims="1"  decoding="async"  width="1091"  height="1080"  data-id="181932"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/KineFX_rig_transfer-hd.jpg?resize=1091%2C1080&quality=80&ssl=1"  alt=""  class="wp-image-181932" ></a></figure>



<figure class="wp-block-image size-large"><a href="https://digitalproduction.com/?attachment_id=181930"><img data-recalc-dims="1"  decoding="async"  width="1078"  height="1080"  data-id="181930"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/kinefx_rigpose-hd.jpg?resize=1078%2C1080&quality=80&ssl=1"  alt=""  class="wp-image-181930" ></a></figure>



<figure class="wp-block-image size-large"><a href="https://digitalproduction.com/?attachment_id=181931"><img data-recalc-dims="1"  decoding="async"  width="1078"  height="1080"  data-id="181931"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/kinefx_skeletonblend-hd.jpg?resize=1078%2C1080&quality=80&ssl=1"  alt=""  class="wp-image-181931" ></a></figure>
</figure>



<p class="wp-block-paragraph"><br />The tool and workflow includes over 60 new nodes. The bones and joints are now normal Houdini Geometry. This has the great advantage that all other tools can now modify the skeleton, and conversely the KineFX tools can also be used for other modelling or animation tasks. It’s not just about characters here, machines or other things like plants can also be edited with the tools. The whole thing is already very extensive, but is only the beginning of a full character animation pipeline that SideFX has announced.<br />Here are a few keywords about KineFX: motion clips, FBX import, foot placement, less Python, new Auto Rig tool, editing of motion capture data (also in real time), agents for crowd animations ..</p>



<p class="wp-block-paragraph"></p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/kinefx_autorig-hd.jpg?quality=80&ssl=1"><img data-recalc-dims="1"  decoding="async"  width="1200"  height="786"  sizes="(max-width: 1200px) 100vw, 1200px"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/kinefx_autorig-hd.jpg?resize=1200%2C786&quality=80&ssl=1"  alt=""  class="wp-image-181927" ></a><figcaption class="wp-element-caption">The KineFX autorig</figcaption></figure>



<h2 class="wp-block-heading" id="h-geometry"><span id="geometry">Geometry</span></h2>



<p class="wp-block-paragraph">There are also some new features in the modelling area. Topo Transfer makes it possible to adapt a template mesh to a scan mesh. To do this, some source and target points are connected. The rest is done by the Topo Transfer Node. The cool thing is that the meshes do not have to have the same pose if they are characters, for example, and even additional features in the scan are warped. Poly Bevel is the next tool to receive a major update. The fact that something so basic is still being updated (not only in Houdini) shows how much innovation is still possible and necessary in the field of 3D software. Poly Bevel is now, as expected, much more interactive and intuitive. Adding and removing faces now requires far fewer clicks and no more constantly closing the selection to see updates.</p>



<p class="wp-block-paragraph"></p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/bend-hd.jpg?quality=80&ssl=1"><img data-recalc-dims="1"  decoding="async"  width="1200"  height="714"  sizes="(max-width: 1200px) 100vw, 1200px"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/bend-hd.jpg?resize=1200%2C714&quality=80&ssl=1"  alt=""  class="wp-image-181933" ></a></figure>



<p class="wp-block-paragraph">The third tool is a high-level tool, and SideFX has named it Chain Operator. Here you should not only think of chains, but more of sequences of geometries, e.g. different stones. As an example, SideFX has taken chairs in a cinema, one with the seat folded down, the next slightly damaged, and so on. In this way, the entire cinema can be plausibly seated in no time at all, because rules such as the first and last chair backs can also be mapped with the Chain SOP. Path Deform and Bend are further examples of Houdini’s interactive use of Python Handles. See the magically bent spoons in the screenshot ..</p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/Path_deform-hd.jpg?quality=80&ssl=1"><img data-recalc-dims="1"  decoding="async"  width="1200"  height="699"  sizes="(max-width: 1200px) 100vw, 1200px"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/Path_deform-hd.jpg?resize=1200%2C699&quality=80&ssl=1"  alt=""  class="wp-image-181934" ></a></figure>



<h2 class="wp-block-heading" id="h-environment-building"><span id="environment-building">Environment Building</span></h2>



<div class="wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-8f761849 wp-block-group-is-layout-flex">
<figure class="wp-block-image size-full"><img data-recalc-dims="1"  decoding="async"  width="1093"  height="1080"  sizes="(max-width: 1200px) 100vw, 1200px"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/scatter_and_align_icon-hd.jpg?resize=1093%2C1080&quality=80&ssl=1"  alt=""  class="wp-image-181937" ></figure>



<p class="wp-block-paragraph">“Scatter and Align” is my highlight in terms of the design of the new icons. It’s actually a new high-level tool for distributing objects to others. This is particularly useful when planting landscapes. The new mask tools, which use shadows or ambient occlusion to create masks, also help here.<br />The high-level node “Attributes from pieces” completes this workflow by simplifying and standardising the creation of rules for distributing objects.</p>
</div>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/Scatter_and_align_modified_example_scene-hd.jpg?quality=80&ssl=1"><img data-recalc-dims="1"  decoding="async"  width="1200"  height="603"  sizes="(max-width: 1200px) 100vw, 1200px"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/Scatter_and_align_modified_example_scene-hd.jpg?resize=1200%2C603&quality=80&ssl=1"  alt=""  class="wp-image-181936" ></a></figure>



<h2 class="wp-block-heading" id="h-houdini-conduits-amp-services"><span id="houdini-conduits-services">Houdini Conduits & Services</span></h2>



<div class="wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-8f761849 wp-block-group-is-layout-flex">
<figure class="wp-block-image size-thumbnail"><img data-recalc-dims="1" height="150" width="150"  decoding="async"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/url_request_icon-hd-150x150.jpg?resize=150%2C150&ssl=1"  alt=""  class="wp-image-181939" ></figure>



<p class="wp-block-paragraph">Import and export operations are usually the connections between game engines or other 3D software. Houdini is also different in this respect. Although the FBX import has also been improved in 18.5, the Unreal Houdini engine plug-in has also been improved. </p>
</div>



<p class="wp-block-paragraph">The UE4 plug-in can now handle Unreal Blueprints and is significantly faster. Large terrains can now be shared better with UE4 using Houdini PDGs – world building has been significantly improved. A two-way live link is now also possible. It is even possible to send live MoCap data to Unreal via Houdini. As far as Houdini’s connections to the outside world (conduits) are concerned, the new Houdini Engine Python API and the Houdini web server should also be mentioned, which enable “Houdini as a Service”. I’m curious to see what will be done with it.</p>



<h2 class="wp-block-heading" id="h-dynamics"><span id="dynamics">Dynamics</span></h2>



<p class="wp-block-paragraph">In the Dynamics area, the new Attach and Sliding Constrains for FEM are worth mentioning. There is also a new and 25% faster viscosity solver for honey, for example. This is mentioned in one of my favourite channels: Two Minute Papers, in the video “Simulating Honey and Hot Showers For Bunnies!” <a href="https://www.youtube.com/watch?v=K940MNp7V8M">bit.ly/2_minute_papers_honey_bunny</a> – in the video you can see visually what is possible.</p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe class="youtube-player" width="1200" height="675" src="https://www.youtube.com/embed/K940MNp7V8M?version=3&rel=1&showsearch=0&showinfo=1&iv_load_policy=1&fs=1&hl=en-US&autohide=2&wmode=transparent" allowfullscreen="true" style="border:0;" sandbox="allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox"></iframe>
</div></figure>



<h2 class="wp-block-heading" id="h-pyro"><span id="pyro">Pyro</span></h2>



<p class="wp-block-paragraph">Pyro and explosions have been expanded to include a new high-level workflow. Pyro Burst and Pyro Trails generate basic geometry, which is then converted into volumes for the pyro simulation. I was previously only familiar with this as a particle simulation. Here, however, a geometry is generated on an SOP basis, which can then be customised interactively. Pyro Trails generates trajectories of parts ejected by explosions. These trajectories are even deflected by collision geometry. Pyro Burst generates a point cloud with the attributes required for Pyro. Both tools are HDAs and can be extended or customised. They are tools to be taken seriously, and the so-called shelf tools (Fireball, Aerial Explosion, Ground Explosion, Bonfire, Spreadingfire etc.) are fully developed and in many cases sufficient for a production.</p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/Pyro_burst_source-hd.jpg?quality=80&ssl=1"><img data-recalc-dims="1"  decoding="async"  width="1200"  height="669"  sizes="(max-width: 1200px) 100vw, 1200px"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/Pyro_burst_source-hd.jpg?resize=1200%2C669&quality=80&ssl=1"  alt=""  class="wp-image-181941" ></a><figcaption class="wp-element-caption">The Pyro Burst Source and its trail path</figcaption></figure>



<p class="wp-block-paragraph"><br />The whole thing is garnished by the GPU solver, which enables real-time explosion previews at a rate of 1 to 2 frames per second. Here, too, the focus is on interactive work. Depending on the intended use, these already look very cool and can be completely sufficient under certain circumstances. The included shader for Viewport and Mantra completes the new Pyro workflow.</p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/PYRO_trailpath-hd.jpg?quality=80&ssl=1"><img data-recalc-dims="1"  decoding="async"  width="1200"  height="665"  sizes="(max-width: 1200px) 100vw, 1200px"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/PYRO_trailpath-hd.jpg?resize=1200%2C665&quality=80&ssl=1"  alt=""  class="wp-image-181942" ></a></figure>



<p class="wp-block-paragraph"></p>



<h2 class="wp-block-heading" id="h-labs"><span id="labs">Labs</span></h2>



<p class="wp-block-paragraph">Labs tools are developed by SideFX Tech Artists in Houdini and are therefore often very practical. I’ve made extensive use of the now simplified ability to version HDAs or change their namespace to tidy up my HDA mess. The new FBX importer is also very helpful and simplifies everyday FBX imports. For “crazy-pipeline-special” FBX imports, you can always create a customised Python script. Other Labs innovations are: a Road Generator, Mesh Sharpener, Triplanar Displacement, Box Cutter for fast Boolean Modelling, Pick and Place Tool, Compositing: Blackbody, Grid Texture, Demosaic and a MoCap Importer for Axis Neuron and Rokoko (which we will test in detail in a future issue).</p>



<h2 class="wp-block-heading" id="h-conclusion"><span id="conclusion">Conclusion</span></h2>



<p class="wp-block-paragraph">And now I still haven’t mentioned everything important! So here it is in a nutshell: Many SOPs are now compilable and can therefore be used in parallel. Hair grooming is significantly faster. Python 3.7 support has been enabled and VEX has a new data type: Dictionaries. 2020 was also a special and strange year for SideFX and Houdini. SideFX employees were unable to attend trade fairs or travel and had to come up with something else. They took advantage of these special circumstances and created a lot of educational material and sample scenes. So much that I will never manage to watch it all, let alone try it out.</p><p>The post <a href="https://digitalproduction.com/2021/02/17/houdini-becomes-hyperactive/">Houdini becomes hyperactive</a> first appeared on <a href="https://digitalproduction.com">DIGITAL PRODUCTION</a> and was written by <a href="https://digitalproduction.com/author/olaffinkbeiner/">Olaf Finkbeiner</a>. </p></div>]]></content:encoded>
					
		
		
		<enclosure url="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/pyro_look_viewport-hd.jpg?fit=1913%2C1080&#038;quality=80&#038;ssl=1" length="367016" type="image/jpg" />
<media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/pyro_look_viewport-hd.jpg?fit=1200%2C677&#038;quality=80&#038;ssl=1" width="1200" height="677" medium="image" type="image/jpeg">
	<media:copyright>DIGITAL PRODUCTION</media:copyright>
	<media:title></media:title>
	<media:description type="html"><![CDATA[]]></media:description>
</media:content>
<media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/pyro_look_viewport-hd.jpg?fit=1200%2C677&#038;quality=80&#038;ssl=1" width="1200" height="677" />
<post-id xmlns="com-wordpress:feed-additions:1">181909</post-id>	</item>
		<item>
		<title>Blergh! Word Art! In Houdini?</title>
		<link>https://digitalproduction.com/2019/12/14/blergh-word-art-in-houdini/</link>
		
		<dc:creator><![CDATA[Olaf Finkbeiner]]></dc:creator>
		<pubDate>Sat, 14 Dec 2019 09:57:00 +0000</pubDate>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[CSV]]></category>
		<category><![CDATA[dp2001]]></category>
		<category><![CDATA[Extrusion]]></category>
		<category><![CDATA[Fonts]]></category>
		<category><![CDATA[Geometry]]></category>
		<category><![CDATA[Google Sheets CSV Houdini]]></category>
		<category><![CDATA[Houdini]]></category>
		<category><![CDATA[Houdini Word Cloud tutorial]]></category>
		<category><![CDATA[layout]]></category>
		<category><![CDATA[packed geometry Houdini workflow]]></category>
		<category><![CDATA[polyextrude Houdini typography]]></category>
		<category><![CDATA[procedural Word Art Houdini]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[SideFX]]></category>
		<category><![CDATA[subscribers]]></category>
		<category><![CDATA[Table Import Node Houdini]]></category>
		<category><![CDATA[Text]]></category>
		<category><![CDATA[UV layout]]></category>
		<category><![CDATA[UVs]]></category>
		<category><![CDATA[VEX]]></category>
		<category><![CDATA[VEXpressions Houdini text]]></category>
		<guid isPermaLink="false">https://digitalproduction.com/?p=167902</guid>

					<description><![CDATA[<div style="margin: 5px 5% 10px 5%;"><img src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/small_word_cloud_on_grey.jpg?fit=1200%2C858&quality=80&ssl=1" width="1200" height="858" title="" alt="Word cloud with topics related to digital production and Houdini software" /></div><div><p>Houdini is certainly not known for classic graphics and especially not for typography and fonts. And word clouds are certainly nothing new either, but somehow always chic when used correctly.</p>
<p>The post <a href="https://digitalproduction.com/2019/12/14/blergh-word-art-in-houdini/">Blergh! Word Art! In Houdini?</a> first appeared on <a href="https://digitalproduction.com">DIGITAL PRODUCTION</a> and was written by <a href="https://digitalproduction.com/author/olaffinkbeiner/">Olaf Finkbeiner</a>. </p></div>]]></description>
										<content:encoded><![CDATA[<div style="margin: 5px 5% 10px 5%;"><img src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/small_word_cloud_on_grey.jpg?fit=1200%2C858&quality=80&ssl=1" width="1200" height="858" title="" alt="Word cloud with topics related to digital production and Houdini software" /></div><div><div class="wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-8f761849 wp-block-group-is-layout-flex">

<p class="wp-block-paragraph">These clouds can be created quite easily in Houdini, and that’s what this article is about – a “click-along tutorial”. In particular, reading in external data from a table in order to process it procedurally, as described here, makes sense not only for Word Art.</p>

</div>





<figure class="wp-block-gallery has-nested-images columns-8 is-cropped wp-block-gallery-7 is-layout-flex wp-block-gallery-is-layout-flex">

<figure class="wp-block-image size-thumbnail"><a href="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/small_90_grad_rotation.jpg?quality=80&ssl=1" target="_blank"><img data-recalc-dims="1" height="150" width="150"  decoding="async"  data-id="167913"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/small_90_grad_rotation-150x150.jpg?resize=150%2C150&ssl=1"  alt=""  class="wp-image-167913" ></a></figure>





<figure class="wp-block-image size-thumbnail"><a href="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/small_Add_spare_Input.jpg?quality=80&ssl=1" target="_blank"><img data-recalc-dims="1" height="150" width="150"  decoding="async"  data-id="167910"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/small_Add_spare_Input-150x150.jpg?resize=150%2C150&ssl=1"  alt=""  class="wp-image-167910" ></a></figure>





<figure class="wp-block-image size-thumbnail"><a href="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/small_attribute_copy.jpg?quality=80&ssl=1" target="_blank"><img data-recalc-dims="1" height="150" width="150"  decoding="async"  data-id="167908"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/small_attribute_copy-150x150.jpg?resize=150%2C150&ssl=1"  alt=""  class="wp-image-167908" ></a></figure>





<figure class="wp-block-image size-thumbnail"><a href="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/small_attribute_speadsheet_.jpg?quality=80&ssl=1" target="_blank"><img data-recalc-dims="1" height="150" width="150"  decoding="async"  data-id="167920"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/small_attribute_speadsheet_-150x150.jpg?resize=150%2C150&ssl=1"  alt=""  class="wp-image-167920" ></a></figure>





<figure class="wp-block-image size-thumbnail"><a href="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/small_attribute_wrangle.jpg?quality=80&ssl=1" target="_blank"><img data-recalc-dims="1" height="150" width="150"  decoding="async"  data-id="167911"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/small_attribute_wrangle-150x150.jpg?resize=150%2C150&ssl=1"  alt=""  class="wp-image-167911" ></a></figure>





<figure class="wp-block-image size-thumbnail"><a href="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/small_Clipboard_Image.jpg?quality=80&ssl=1" target="_blank"><img data-recalc-dims="1" height="150" width="150"  decoding="async"  data-id="167929"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/small_Clipboard_Image-150x150.jpg?resize=150%2C150&ssl=1"  alt=""  class="wp-image-167929" ></a></figure>





<figure class="wp-block-image size-thumbnail"><a href="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/small_copy_to_points.jpg?quality=80&ssl=1" target="_blank"><img data-recalc-dims="1" height="150" width="150"  decoding="async"  data-id="167912"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/small_copy_to_points-150x150.jpg?resize=150%2C150&ssl=1"  alt=""  class="wp-image-167912" ></a></figure>





<figure class="wp-block-image size-thumbnail"><a href="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/small_die_fertige_wordcloud.jpg?quality=80&ssl=1" target="_blank"><img data-recalc-dims="1" height="150" width="150"  decoding="async"  data-id="167927"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/small_die_fertige_wordcloud-150x150.jpg?resize=150%2C150&ssl=1"  alt=""  class="wp-image-167927" ></a></figure>





<figure class="wp-block-image size-thumbnail"><a href="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/small_die_woerter_uebereinander.jpg?quality=80&ssl=1" target="_blank"><img data-recalc-dims="1" height="150" width="150"  decoding="async"  data-id="167923"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/small_die_woerter_uebereinander-150x150.jpg?resize=150%2C150&ssl=1"  alt=""  class="wp-image-167923" ></a></figure>





<figure class="wp-block-image size-thumbnail"><a href="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/small_edit_parameter_interface_spare_input.jpg?quality=80&ssl=1" target="_blank"><img data-recalc-dims="1" height="150" width="150"  decoding="async"  data-id="167915"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/small_edit_parameter_interface_spare_input-150x150.jpg?resize=150%2C150&ssl=1"  alt=""  class="wp-image-167915" ></a></figure>





<figure class="wp-block-image size-thumbnail"><a href="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/small_font_node.jpg?quality=80&ssl=1" target="_blank"><img data-recalc-dims="1" height="150" width="150"  decoding="async"  data-id="167914"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/small_font_node-150x150.jpg?resize=150%2C150&ssl=1"  alt=""  class="wp-image-167914" ></a></figure>





<figure class="wp-block-image size-thumbnail"><a href="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/small_for_each_1.jpg?quality=80&ssl=1" target="_blank"><img data-recalc-dims="1" height="150" width="150"  decoding="async"  data-id="167926"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/small_for_each_1-150x150.jpg?resize=150%2C150&ssl=1"  alt=""  class="wp-image-167926" ></a></figure>





<figure class="wp-block-image size-thumbnail"><a href="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/small_google_sheets.jpg?quality=80&ssl=1" target="_blank"><img data-recalc-dims="1" height="150" width="150"  decoding="async"  data-id="167917"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/small_google_sheets-150x150.jpg?resize=150%2C150&ssl=1"  alt=""  class="wp-image-167917" ></a></figure>





<figure class="wp-block-image size-thumbnail"><a href="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/small_hindie_2019_09_15_19_42_48.jpg?quality=80&ssl=1" target="_blank"><img data-recalc-dims="1" height="150" width="150"  decoding="async"  data-id="167909"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/small_hindie_2019_09_15_19_42_48-150x150.jpg?resize=150%2C150&ssl=1"  alt=""  class="wp-image-167909" ></a></figure>





<figure class="wp-block-image size-thumbnail"><a href="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/small_hindie_2019_09_15_23_34_01.jpg?quality=80&ssl=1" target="_blank"><img data-recalc-dims="1" height="150" width="150"  decoding="async"  data-id="167930"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/small_hindie_2019_09_15_23_34_01-150x150.jpg?resize=150%2C150&ssl=1"  alt=""  class="wp-image-167930" ></a></figure>





<figure class="wp-block-image size-thumbnail"><a href="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/small_last_loop_end.jpg?quality=80&ssl=1" target="_blank"><img data-recalc-dims="1" height="150" width="150"  decoding="async"  data-id="167918"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/small_last_loop_end-150x150.jpg?resize=150%2C150&ssl=1"  alt=""  class="wp-image-167918" ></a></figure>





<figure class="wp-block-image size-thumbnail"><a href="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/small_layout_shape.jpg?quality=80&ssl=1" target="_blank"><img data-recalc-dims="1" height="150" width="150"  decoding="async"  data-id="167931"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/small_layout_shape-150x150.jpg?resize=150%2C150&ssl=1"  alt=""  class="wp-image-167931" ></a></figure>





<figure class="wp-block-image size-thumbnail"><a href="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/small_node_1table_import.jpg?quality=80&ssl=1" target="_blank"><img data-recalc-dims="1" height="150" width="150"  decoding="async"  data-id="167928"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/small_node_1table_import-150x150.jpg?resize=150%2C150&ssl=1"  alt=""  class="wp-image-167928" ></a></figure>





<figure class="wp-block-image size-thumbnail"><a href="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/small_node3_Attribute_expression.jpg?quality=80&ssl=1" target="_blank"><img data-recalc-dims="1" height="150" width="150"  decoding="async"  data-id="167919"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/small_node3_Attribute_expression-150x150.jpg?resize=150%2C150&ssl=1"  alt=""  class="wp-image-167919" ></a></figure>





<figure class="wp-block-image size-thumbnail"><a href="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/small_node4_attribute_randomize.jpg?quality=80&ssl=1" target="_blank"><img data-recalc-dims="1" height="150" width="150"  decoding="async"  data-id="167921"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/small_node4_attribute_randomize-150x150.jpg?resize=150%2C150&ssl=1"  alt=""  class="wp-image-167921" ></a></figure>





<figure class="wp-block-image size-thumbnail"><a href="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/small_polyextrude.jpg?quality=80&ssl=1" target="_blank"><img data-recalc-dims="1" height="150" width="150"  decoding="async"  data-id="167925"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/small_polyextrude-150x150.jpg?resize=150%2C150&ssl=1"  alt=""  class="wp-image-167925" ></a></figure>





<figure class="wp-block-image size-thumbnail"><a href="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/small_switch.jpg?quality=80&ssl=1" target="_blank"><img data-recalc-dims="1" height="150" width="150"  decoding="async"  data-id="167922"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/small_switch-150x150.jpg?resize=150%2C150&ssl=1"  alt=""  class="wp-image-167922" ></a></figure>





<figure class="wp-block-image size-thumbnail"><a href="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/small_uv_layout.jpg?quality=80&ssl=1" target="_blank"><img data-recalc-dims="1" height="150" width="150"  decoding="async"  data-id="167924"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/small_uv_layout-150x150.jpg?resize=150%2C150&ssl=1"  alt=""  class="wp-image-167924" ></a></figure>





<figure class="wp-block-image size-thumbnail"><a href="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/small_word_cloud_nodetree_highdpi.jpg?quality=80&ssl=1" target="_blank"><img data-recalc-dims="1" height="150" width="150"  decoding="async"  data-id="167916"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/small_word_cloud_nodetree_highdpi-150x150.jpg?resize=150%2C150&ssl=1"  alt=""  class="wp-image-167916" ></a></figure>

</figure>





<p class="wp-block-paragraph">Houdini can read in external data in various ways. The most comprehensive is certainly a self-written Python parser, but that is not necessary here, because Houdini comes with the Table Import Node as standard. This makes it possible to import tables in CSV format. If you look under the bonnet of the table import node, you will of course find a Python script there anyway. This is one of the reasons why I like Houdini so much: almost everything is open and can be studied or adapted to your own needs.</p>





<figure class="wp-block-image size-large is-resized"><a href="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/small_google_sheets.jpg?quality=80&ssl=1"><img data-recalc-dims="1" height="1080" width="295"  decoding="async"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/small_google_sheets.jpg?resize=295%2C1080&quality=80&ssl=1"  alt=""  class="wp-image-167917"  style="width:142px;height:auto" ></a><figcaption class="wp-element-caption">In the table, I have entered the words for the Word Cloud in column A, the size in column B and the font to be used in column C.</figcaption></figure>





<figure class="wp-block-image size-large"><a href="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/small_node_1table_import.jpg?quality=80&ssl=1"><img data-recalc-dims="1" height="1080" width="1093"  decoding="async"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/small_node_1table_import.jpg?resize=1093%2C1080&quality=80&ssl=1"  alt=""  class="wp-image-167928" ></a><figcaption class="wp-element-caption">The beginning of all evil or this setup: 
the table import node and the menu for it.</figcaption></figure>





<h2 class="wp-block-heading" id="h-import"><span id="import">Import</span></h2>





<p class="wp-block-paragraph">The CSV format contains values that are separated by commas (CSV = comma separated values). These can be words or numbers. Most spreadsheet programmes can save or export tables as CSV. I use Google Sheets here, and it works great: the table import node initially only creates points, which then contain these values in attributes. I use the attributes:</p>





<pre class="wp-block-code"><code>@word, @pscale, @font.</code></pre>





<p class="wp-block-paragraph">@word gets the values from column A, which is the first column. In Houdini, counting usually starts with zero, hence Column Number 0. The attribute type is a string.</p>





<p class="wp-block-paragraph">@pscale is a special attribute specified by Houdini. @pscale stands for Point Scale, i.e. the size of a point. This is Column Number 1, and the type in this case is a float, i.e. a floating point number. I could therefore also have entered 1.5 or 2.3 as values in the table. </p>





<p class="wp-block-paragraph">i have defined @font as type integer, i.e. as an integer. As I want to use three different fonts, I have entered 0, 1 or 2 as values in the table.</p>





<figure class="wp-block-image size-full"><img data-recalc-dims="1"  decoding="async"  width="1181"  height="978"  sizes="(max-width: 1200px) 100vw, 1200px"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/small_node3_Attribute_expression.jpg?resize=1181%2C978&quality=80&ssl=1"  alt=""  class="wp-image-167919" ><figcaption class="wp-element-caption">With an 
Randomise attribute to add a bit of randomness (see screenshot).</figcaption></figure>





<p class="wp-block-paragraph">The Table Import can also translate (e.g. Lat/Long to Sphere), but the Translator is not needed here.</p>





<p class="wp-block-paragraph"></p>





<figure class="wp-block-image size-large"><img data-recalc-dims="1" height="1080" width="1048"  decoding="async"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/small_node4_attribute_randomize-1.jpg?resize=1048%2C1080&quality=80&ssl=1"  alt=""  class="wp-image-167937" ></figure>





<p class="wp-block-paragraph"> The second node is Enumerate. This creates an @index attribute with which the points are counted in order to be able to assign them later. The group type must be changed from “Primitives” to “Points”. The next two nodes are not absolutely necessary, but as I wanted to create other sizes and these should be somewhat random, I first used Attribute Expression to convert the @pscale values 1,2,3 into 1.5, 2 and 2.5. To do this, “Custom” must be entered in the node attribute and “pscale” as the name and “Float” for the type. I use the VEXpression for this: “1 self * .5”.<br />And of course, I could have entered these values in the table straight away, but I didn’t. The zero named here as “OUT_points_with_attributes” is not necessary for the function, but is part of good style.</p>





<p class="wp-block-paragraph"></p>





<figure class="wp-block-image size-large"><img data-recalc-dims="1" height="1080" width="1125"  decoding="async"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/small_attribute_speadsheet_-1.jpg?resize=1125%2C1080&quality=80&ssl=1"  alt=""  class="wp-image-167939" ><figcaption class="wp-element-caption">It looks like this in the Geometry Spreadsheet.</figcaption></figure>





<h2 class="wp-block-heading" id="h-loop-it"><span id="loop-it">Loop it!</span></h2>





<figure class="wp-block-image size-full"><img data-recalc-dims="1"  decoding="async"  width="945"  height="164"  sizes="(max-width: 1200px) 100vw, 1200px"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/small_hindie_2019_09_15_19_42_48.jpg?resize=945%2C164&quality=80&ssl=1"  alt=""  class="wp-image-167909" ></figure>





<p class="wp-block-paragraph">Now the first loop comes into play. This is a For Each Point loop. It contains 3 font nodes, one for each font. Firstly, I created a font node for this and added the spare input required later. To do this, click on the cogwheel and select “Add Spare Input”.</p>





<figure class="wp-block-image size-large"><img data-recalc-dims="1" height="1044" width="1200"  decoding="async"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/small_for_each_1.jpg?resize=1200%2C1044&quality=80&ssl=1"  alt=""  class="wp-image-167926" ></figure>





<figure class="wp-block-image size-full"><img data-recalc-dims="1"  decoding="async"  width="945"  height="755"  sizes="(max-width: 1200px) 100vw, 1200px"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/small_Add_spare_Input.jpg?resize=945%2C755&quality=80&ssl=1"  alt=""  class="wp-image-167910" ></figure>





<p class="wp-block-paragraph">This font node was then referenced twice using drag-and-drop with the Shift, Ctrl and Alt keys held down. For the copies, I then held down the Shift and Ctrl keys and clicked on Font to remove the reference link. Alternatively, this can also be done with the right mouse button menu and “Delete Channels”.</p>





<h2 class="wp-block-heading" id="h-fonts"><span id="fonts">Fonts</span></h2>





<p class="wp-block-paragraph">The most important node when it comes to text is of course the font node. It can generate both polygons and Bezier curves or both at the same time. I use polygons here. I have set the level of detail to 4 so that the tessellation is nice and fine. </p>





<figure class="wp-block-image size-large"><img data-recalc-dims="1" height="1080" width="585"  decoding="async"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/small_font_node.jpg?resize=585%2C1080&quality=80&ssl=1"  alt=""  class="wp-image-167914" ><figcaption class="wp-element-caption">For the three font nodes, I have set Arial Narrow Bold, Arial Bold Italic and Arial Bold.</figcaption></figure>





<p class="wp-block-paragraph">Working with Bezier curves is also great, but unfortunately not useful here, as the UV layout node used later cannot process them. Now it gets a little more magical or technical. In the “Spare Input0” parameter, the “../foreach_begin1” node is referenced by drag-and-drop or, if you want and like typing, you can do that too. The text to be created is normally simply entered in the text field, but we want to read it in from the CSV table, which has already been converted into points. Backticks can be used here to execute code.</p>





<pre class="wp-block-code"><code></code></pre>





<p class="wp-block-paragraph">The command required here is “points”, whereby it is not about several points, but about string values from points. The “s” at the end stands for “string”. The first spare input is addressed with “-1”. The zero after it is the first point, here it is always just one point anyway, as we are looping over the points. Then “word”, because we want to read the @word attribute. Brackets around it and a backtick and that’s it.</p>





<figure class="wp-block-image size-full"><img data-recalc-dims="1"  decoding="async"  width="1181"  height="774"  sizes="(max-width: 1200px) 100vw, 1200px"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/small_switch.jpg?resize=1181%2C774&quality=80&ssl=1"  alt=""  class="wp-image-167922" ></figure>





<p class="wp-block-paragraph">As an aside and for the sake of completeness, “Add Text Attributes” should also be mentioned here. It is not needed here, but is very cool for other text gimmicks. If the box is ticked, the attributes @textindex, which indicates the number of letters in the word, and @textsymbol, which indicates which letter it is, are created for each letter or primitive. However, this is an ASCII value, i.e. a number. “f”, for example, is then 102.</p>





<p class="wp-block-paragraph">The three font nodes are then connected with a switch that reads the @font attribute. I have also created a spare input for this. This time it is the “point” command and not “points”, as only a number is read out here and not a string. So “point(-1,0, “font”,0)”. In this case, “-1” is again the spare input, “0” is the first point, “font” is the attribute and the last “0” is a necessary argument, which doesn’t really make sense here. However, if we wanted to read out a vector, “0” would be X, “1” would be Y and “2” would be Z. This is also only mentioned here for the sake of completeness.</p>





<figure class="wp-block-image size-full"><img data-recalc-dims="1"  decoding="async"  width="945"  height="715"  sizes="(max-width: 1200px) 100vw, 1200px"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/small_copy_to_points.jpg?resize=945%2C715&quality=80&ssl=1"  alt=""  class="wp-image-167912" ></figure>





<h2 class="wp-block-heading" id="h-copy-to-points"><span id="copy-to-points">Copy to points</span></h2>





<p class="wp-block-paragraph">Okay, Houdini! Now we come to the copy to points node. First of all, some information in passing: This node will change a lot in H18 and make actions like this easier. No matter. Pack and Instance is not needed here. Transform Using Point Orientation is also not required here, but can also be on. Copy Points Attributes is used because we still need @index. So enter “index” under Set/To Primitive. Delete everything else.</p>





<figure class="wp-block-image size-full"><img data-recalc-dims="1"  decoding="async"  width="1200"  height="318"  sizes="(max-width: 1200px) 100vw, 1200px"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/small_die_woerter_uebereinander.jpg?resize=1200%2C318&quality=80&ssl=1"  alt=""  class="wp-image-167923" ></figure>





<p class="wp-block-paragraph">Now you should be able to see a bunch of fonts on top of each other. Before, there was nothing to see in the viewport except a dot in the centre, at most. Tip: In the “foreach_end1” node you can set to “Single Pass” for debugging, then only one iteration of the loop is executed. And always keep an eye on the geometry spreadsheet, where you can see the values of attributes.<br />Now we come to the UV layout node, which is used here to distribute the words in a shape. In the picture, I have coloured the shape green. I have left space for the two logos of DP and DIGITAL PRODUCTION. Connecting this shape to the second input of the UV layout node should not be too complex. Of course, the words with the @index attribute go into the first one.</p>





<figure class="wp-block-image size-large"><img data-recalc-dims="1" height="718" width="1200"  decoding="async"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/small_layout_shape.jpg?resize=1200%2C718&quality=80&ssl=1"  alt=""  class="wp-image-167931" ></figure>





<h2 class="wp-block-heading" id="h-uvs"><span id="uvs">UVs</span></h2>





<p class="wp-block-paragraph">The UV layout node normally uses the @island attribute to delimit the UV parts from each other and the @uv attribute for the positions of the vertices on the UV map. Since there are no UV coordinates here at all, we replace “uv” twice with “P”.</p>





<figure class="wp-block-image size-large"><img data-recalc-dims="1" height="1080" width="618"  decoding="async"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/small_uv_layout.jpg?resize=618%2C1080&quality=80&ssl=1"  alt=""  class="wp-image-167924" ></figure>





<p class="wp-block-paragraph">in Houdini, @P is the position of the vertices. For Axis Alignment we select “none” and for Island Rotation Step we set “No Rotations”. If you want to create a Word Cloud with rotated words, they should either be rotated beforehand or you should select 90°, for example, so that no words are upside down.</p>





<figure class="wp-block-image size-full"><img data-recalc-dims="1"  decoding="async"  width="1200"  height="673"  sizes="(max-width: 1200px) 100vw, 1200px"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/small_90_grad_rotation.jpg?resize=1200%2C673&quality=80&ssl=1"  alt=""  class="wp-image-167913" ></figure>





<p class="wp-block-paragraph">Padding is the distance between the shapes to be distributed, in this case words, and Scale should be set to “Largest Packable”. The “Advan…” settings are also interesting. This must stand for Advanced. There are iterations here. Here the node randomly tries different layouts and then uses the layout with the best space utilisation. However, each iteration takes time, and 4 is sufficient for this purpose. Different layout versions can be generated with “Random Seed”.<br />That’s it as far as the layout is concerned, but now we want it in 3D. To switch to a so-called Packed Workflow, we need an @name attribute with a string, i.e. text content. At the moment, we only have an @index attribute, and these are numbers. We do this with an attribute wrangle node.</p>





<figure class="wp-block-image size-full"><img data-recalc-dims="1"  decoding="async"  width="1181"  height="473"  sizes="(max-width: 1200px) 100vw, 1200px"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/small_attribute_wrangle.jpg?resize=1181%2C473&quality=80&ssl=1"  alt=""  class="wp-image-167911" ></figure>





<p class="wp-block-paragraph">Select “Primitives” under Run Over and enter the following VEXpression: “s@name = sprintf(“%d”, i@index);”. This creates an @name attribute, which then contains the number as a string. For more details on this VEX function, please refer to the Houdini documentation, which would go beyond the scope of this article.</p>





<figure class="wp-block-image size-full"><img data-recalc-dims="1"  decoding="async"  width="945"  height="1067"  sizes="(max-width: 1200px) 100vw, 1200px"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/small_attribute_copy.jpg?resize=945%2C1067&quality=80&ssl=1"  alt=""  class="wp-image-167908" ></figure>





<p class="wp-block-paragraph">Now the whole thing is packed, i.e. each word is now represented by a point. This is practical because it is now easier to select the words, for example, in order to make manual corrections to the positions. Simply use an Edit Node to do this.</p>





<figure class="wp-block-image size-large"><img data-recalc-dims="1" height="1080" width="546"  decoding="async"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/small_last_loop_end.jpg?resize=546%2C1080&quality=80&ssl=1"  alt=""  class="wp-image-167918" ></figure>





<p class="wp-block-paragraph">Before or after the edit node, I used an attribute copy node to write the attributes from the beginning @font, @pscale, @word back to the points, which now contain the packed geometry. Again, @index is used to assign the source and target points (Attribute to Match). Only @pscale is actually needed, but never mind. If you want, you could customise this even more variably and select words more easily or, for example, extrude them differently depending on the font.<br />Now rotate another loop and extrude the words. To do this, create a For-Each Primtive Loop and place an Unpack followed by a Pack Node. A polyextrude is placed in between.</p>





<figure class="wp-block-image size-large"><img data-recalc-dims="1" height="1080" width="657"  decoding="async"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2019/12/small_polyextrude.jpg?resize=657%2C1080&quality=80&ssl=1"  alt=""  class="wp-image-167951" ><figcaption class="wp-element-caption">The polyextrude initially also needs a spare input, but also a new parameter, which I have called “distance_multiplier”. To do this, click on the cogwheel and select Edit Parameter Interface or Add Spare Input.</figcaption></figure>





<figure class="wp-block-image size-full"><img data-recalc-dims="1"  decoding="async"  width="945"  height="708"  sizes="(max-width: 1200px) 100vw, 1200px"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/small_edit_parameter_interface_spare_input.jpg?resize=945%2C708&quality=80&ssl=1"  alt=""  class="wp-image-167915" ></figure>





<p class="wp-block-paragraph">Then either drag and drop the “foreach_begin3” into the spare input created or enter “../foreach_begin3”. I have set the parameter “distance_multiplier” to 0.025.<br />The magic is in the Distance parameter; enter “point(-1,0, “pscale”,0)*ch(“distance_multiplier”)” enter. Now @pscale is used to control the thickness of the letters. Do not forget to tick the “Output Back” box, otherwise the letter will be open at the back. </p>





<figure class="wp-block-image size-large"><img data-recalc-dims="1" height="676" width="1200"  decoding="async"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/small_hindie_2019_09_15_23_34_01.jpg?resize=1200%2C676&quality=80&ssl=1"  alt=""  class="wp-image-167930" ></figure>





<p class="wp-block-paragraph">Finally, a file node to save the geometry. It can then be integrated into the rendering scene. The outline plate behind the words was also created procedurally, unfortunately no longer part of this article. But this much can be revealed: I converted a geo into a volume, more precisely into an SDF/VDB. Then enlarged it as an SDF or made it thicker. Then “vdbsmooth” and converted it into a mesh. An Intersection Aanalysis followed by Polypath, then Resample, then Fit and Resample again, and the outline is ready.</p>





<figure class="wp-block-image size-large"><img data-recalc-dims="1" height="925" width="1200"  decoding="async"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/small_Clipboard_Image.jpg?resize=1200%2C925&quality=80&ssl=1"  alt=""  class="wp-image-167929" ><figcaption class="wp-element-caption">The outline plate ..</figcaption></figure>





<figure class="wp-block-image size-large"><img data-recalc-dims="1" height="812" width="1200"  decoding="async"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/small_die_fertige_wordcloud.jpg?resize=1200%2C812&quality=80&ssl=1"  alt=""  class="wp-image-167927" ><figcaption class="wp-element-caption">This is roughly what it should look like now – the finished Word Cloud</figcaption></figure>





<h2 class="wp-block-heading" id="h-ausblick"><span id="outlook">Outlook</span></h2>





<p class="wp-block-paragraph">I would also have liked to have written something about splines, i.e. curve modelling and editing. This works very well in Houdini, even if it takes some getting used to. I would also have liked to discuss rounded edges. But I ran out of pages – we’ll just do that in one of the next issues.</p>





<figure class="wp-block-image size-large is-resized"><img data-recalc-dims="1" height="1080" width="355"  decoding="async"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/small_word_cloud_nodetree_highdpi.jpg?resize=355%2C1080&quality=80&ssl=1"  alt=""  class="wp-image-167916"  style="width:800px;height:auto" ><figcaption class="wp-element-caption">The entire Houdini node setup required to create the DP word cloud.</figcaption></figure>





<p class="wp-block-paragraph"></p><p>The post <a href="https://digitalproduction.com/2019/12/14/blergh-word-art-in-houdini/">Blergh! Word Art! In Houdini?</a> first appeared on <a href="https://digitalproduction.com">DIGITAL PRODUCTION</a> and was written by <a href="https://digitalproduction.com/author/olaffinkbeiner/">Olaf Finkbeiner</a>. </p></div>]]></content:encoded>
					
		
		
		<enclosure url="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/small_word_cloud_on_grey.jpg?fit=1791%2C1280&#038;quality=80&#038;ssl=1" length="67829" type="image/jpg" />
<media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/small_word_cloud_on_grey.jpg?fit=1200%2C858&#038;quality=80&#038;ssl=1" width="1200" height="858" medium="image" type="image/jpeg">
	<media:copyright>DIGITAL PRODUCTION</media:copyright>
	<media:title></media:title>
	<media:description type="html"><![CDATA[]]></media:description>
</media:content>
<media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2025/05/small_word_cloud_on_grey.jpg?fit=1200%2C858&#038;quality=80&#038;ssl=1" width="1200" height="858" />
<post-id xmlns="com-wordpress:feed-additions:1">167902</post-id>	</item>
		<item>
		<title>Color Grab &#8211; Everything is so colourful here</title>
		<link>https://digitalproduction.com/2019/07/15/color-grab-ist-ja-alles-so-schoen-bunt-hier/</link>
		
		<dc:creator><![CDATA[Olaf Finkbeiner]]></dc:creator>
		<pubDate>Mon, 15 Jul 2019 14:30:59 +0000</pubDate>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Color Grab]]></category>
		<category><![CDATA[DP1903]]></category>
		<category><![CDATA[Farbpaletten-App]]></category>
		<category><![CDATA[Loomatix]]></category>
		<category><![CDATA[subscribers]]></category>
		<guid isPermaLink="false">https://www.digitalproduction.com/?p=77028</guid>

					<description><![CDATA[<div style="margin: 5px 5% 10px 5%;"><img src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2019/12/Loomatix_tb.jpg?fit=1200%2C718&quality=80&ssl=1" width="1200" height="718" title="" alt="" /></div><div><p>The Color Grab app from Loomatix clearly stands out from all the other colour palette apps I have tested. For example, it has an accessibility feature and can read out colours for people who are colour-blind. What's more, Color Grab is free of charge and has no adverts.</p>
<p>The post <a href="https://digitalproduction.com/2019/07/15/color-grab-ist-ja-alles-so-schoen-bunt-hier/">Color Grab – Everything is so colourful here</a> first appeared on <a href="https://digitalproduction.com">DIGITAL PRODUCTION</a> and was written by <a href="https://digitalproduction.com/author/olaffinkbeiner/">Olaf Finkbeiner</a>. </p></div>]]></description>
										<content:encoded><![CDATA[<div style="margin: 5px 5% 10px 5%;"><img src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2019/12/Loomatix_tb.jpg?fit=1200%2C718&quality=80&ssl=1" width="1200" height="718" title="" alt="" /></div><div><div class='__iawmlf-post-loop-links' style='display:none;' data-iawmlf-post-links='[{&quot;id&quot;:5318,&quot;href&quot;:&quot;http:\/\/www.loomatix.com&quot;,&quot;archived_href&quot;:&quot;http:\/\/web-wp.archive.org\/web\/20251006205633\/http:\/\/loomatix.com\/&quot;,&quot;redirect_href&quot;:&quot;&quot;,&quot;checks&quot;:[{&quot;date&quot;:&quot;2025-12-28 23:49:36&quot;,&quot;http_code&quot;:503},{&quot;date&quot;:&quot;2026-01-14 15:28:45&quot;,&quot;http_code&quot;:503},{&quot;date&quot;:&quot;2026-01-19 15:55:11&quot;,&quot;http_code&quot;:503},{&quot;date&quot;:&quot;2026-02-15 13:36:05&quot;,&quot;http_code&quot;:503},{&quot;date&quot;:&quot;2026-03-12 09:59:24&quot;,&quot;http_code&quot;:503},{&quot;date&quot;:&quot;2026-03-17 19:21:13&quot;,&quot;http_code&quot;:503},{&quot;date&quot;:&quot;2026-03-20 20:42:18&quot;,&quot;http_code&quot;:503},{&quot;date&quot;:&quot;2026-03-31 14:50:49&quot;,&quot;http_code&quot;:503},{&quot;date&quot;:&quot;2026-04-23 11:51:36&quot;,&quot;http_code&quot;:503},{&quot;date&quot;:&quot;2026-04-29 13:49:58&quot;,&quot;http_code&quot;:503}],&quot;broken&quot;:true,&quot;last_checked&quot;:{&quot;date&quot;:&quot;2026-04-29 13:49:58&quot;,&quot;http_code&quot;:503},&quot;process&quot;:&quot;done&quot;}]'></div>
<p>With <a href="http://www.loomatix.com/">Color Grab</a>, colours can be collected without having to resort to photos. You point your mobile phone camera at the colour area and with two clicks it is added to the palette. Of course, colours can also be collected from photos or a photo can be analysed automatically. It is a pity that the analysis always analyses the entire photo and not the previously selected area.</p>
<p><div class="alignfull">
<a href="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2019/12/GRAB_from_foto.jpg?quality=80&ssl=1"><img  decoding="async"  width="1063"  height="1886"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2019/12/GRAB_from_foto.jpg?fit=1063%2C1886&quality=80&ssl=1"  class="attachment-full size-full"  alt="Farben aus Fotos einsammeln – hier ein Achat-Stein." ></a>
</div></p>
<p>If you want to do this, you must first crop the photo in another app. The analysed colour map then shows in percentages which colours are present in the photo. You can then select which of the colours should be transferred to the palette.</p>
<p><figure id="attachment_77037" aria-describedby="caption-attachment-77037" style="width: 1063px" class="wp-caption alignnone"><img data-recalc-dims="1"  decoding="async"  class="wp-image-77037 size-full"  src="https://i0.wp.com/www.digitalproduction.com//srv/htdocs/wp-content/uploads/2019/12/PREVIEW_gemstone.jpg?resize=1063%2C856&quality=80&ssl=1"  alt="Automatisch generierte Palette des Achat-Stein-Fotos"  width="1063"  height="856" ><figcaption id="caption-attachment-77037" class="wp-caption-text">Automatically generated palette of the agate stone photo</figcaption></figure></p>
<p>Certainly a mobile phone cannot replace an X-Rite colour scanner, but Color Grab at least offers a white balance function, colours can be mixed and palettes can be generated with a number of colour harmony rules. In addition, a number of colour models such as RGB, HEX, HSV, LAB and many more are supported. Unfortunately, only RAL is available as a colour reference, as Pantone (X-Rite) is certainly not freely available like this app.</p>
<p><div class="alignfull">
<a href="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2019/12/COLOR_MAP.jpg?quality=80&ssl=1"><img  decoding="async"  width="1063"  height="1711"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2019/12/COLOR_MAP.jpg?fit=1063%2C1711&quality=80&ssl=1"  class="attachment-full size-full"  alt="Farb-Bildanalyse – hier blauer Himmel" ></a>
<a href="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2019/12/BLEND.jpg?quality=80&ssl=1"><img  decoding="async"  width="1063"  height="1987"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2019/12/BLEND.jpg?fit=1063%2C1987&quality=80&ssl=1"  class="attachment-full size-full"  alt="Farben mischen" ></a>
<a href="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2019/12/HARMONIES.jpg?quality=80&ssl=1"><img  decoding="async"  width="1063"  height="1987"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2019/12/HARMONIES.jpg?fit=1063%2C1987&quality=80&ssl=1"  class="attachment-full size-full"  alt="Harmonische Paletten erzeugen – hier mit der Gaudi-Regel." ></a>
</div></p>
<p>The highlight of Color Grab, however, is the export function. The following are supported: Photoshop and Illustrator, CorelDraw and Paint, Gimp, Inkscape, AutoCAD, Krita and Cinepaint. In addition, CSV, text and a preview image as PNG are also supported.</p><p>The post <a href="https://digitalproduction.com/2019/07/15/color-grab-ist-ja-alles-so-schoen-bunt-hier/">Color Grab – Everything is so colourful here</a> first appeared on <a href="https://digitalproduction.com">DIGITAL PRODUCTION</a> and was written by <a href="https://digitalproduction.com/author/olaffinkbeiner/">Olaf Finkbeiner</a>. </p></div>]]></content:encoded>
					
		
		
		<enclosure url="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2019/12/Loomatix_tb.jpg?fit=1806%2C1080&#038;quality=80&#038;ssl=1" length="98164" type="image/jpg" />
<media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2019/12/Loomatix_tb.jpg?fit=1200%2C718&#038;quality=80&#038;ssl=1" width="1200" height="718" medium="image" type="image/jpeg">
	<media:copyright>DIGITAL PRODUCTION</media:copyright>
	<media:title></media:title>
	<media:description type="html"><![CDATA[]]></media:description>
</media:content>
<media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2019/12/Loomatix_tb.jpg?fit=1200%2C718&#038;quality=80&#038;ssl=1" width="1200" height="718" />
<post-id xmlns="com-wordpress:feed-additions:1">77028</post-id>	</item>
	</channel>
</rss>
