<?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>CSV - DIGITAL PRODUCTION</title>
	<atom:link href="https://digitalproduction.com/tag/csv/feed/" rel="self" type="application/rss+xml" />
	<link>https://digitalproduction.com</link>
	<description>Magazine for Digital Media Production</description>
	<lastBuildDate>Tue, 14 Apr 2026 07:49:09 +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>Digital Anarchy releases ShotNotes panel for Premiere.</title>
		<link>https://digitalproduction.com/2026/04/14/digital-anarchy-releases-shotnotes-panel-for-premiere/</link>
		
		<dc:creator><![CDATA[Bela Beier]]></dc:creator>
		<pubDate>Tue, 14 Apr 2026 05:00:00 +0000</pubDate>
				<category><![CDATA[News]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[CSV]]></category>
		<category><![CDATA[Digital Anarchy]]></category>
		<category><![CDATA[export]]></category>
		<category><![CDATA[JSON]]></category>
		<category><![CDATA[markers]]></category>
		<category><![CDATA[notes]]></category>
		<category><![CDATA[panel]]></category>
		<category><![CDATA[Premiere]]></category>
		<category><![CDATA[Premiere Pro]]></category>
		<category><![CDATA[ShotNotes]]></category>
		<category><![CDATA[tasks]]></category>
		<category><![CDATA[timecode]]></category>
		<category><![CDATA[tracker]]></category>
		<category><![CDATA[Workflow]]></category>
		<guid isPermaLink="false">https://digitalproduction.com/?p=268910</guid>

					<description><![CDATA[<div style="margin: 5px 5% 10px 5%;"><img src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2026/04/shotnotesforpremiere.jpg?fit=1200%2C675&quality=80&ssl=1" width="1200" height="675" title="" alt="A beautifully decorated white wedding cake stands prominently on a glass pedestal surrounded by delicate white flowers in a serene outdoor setting with soft golden light filtering through trees. The editing software interface displays colorful timelines and notes, creating a sophisticated editing atmosphere." /></div><div><p>ShotNotes adds a notes and task panel to Premiere Pro, with clickable timecode, marker sync, search, and time tracking reports.</p>
<p>The post <a href="https://digitalproduction.com/2026/04/14/digital-anarchy-releases-shotnotes-panel-for-premiere/">Digital Anarchy releases ShotNotes panel for Premiere.</a> first appeared on <a href="https://digitalproduction.com">DIGITAL PRODUCTION</a> and was written by <a href="https://digitalproduction.com/author/qualityjellyfish45275761d0/">Bela Beier</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/2026/04/shotnotesforpremiere.jpg?fit=1200%2C675&quality=80&ssl=1" width="1200" height="675" title="" alt="A beautifully decorated white wedding cake stands prominently on a glass pedestal surrounded by delicate white flowers in a serene outdoor setting with soft golden light filtering through trees. The editing software interface displays colorful timelines and notes, creating a sophisticated editing atmosphere." /></div><div><div class='__iawmlf-post-loop-links' style='display:none;' data-iawmlf-post-links='[{&quot;id&quot;:14050,&quot;href&quot;:&quot;https:\/\/digitalanarchy.com\/shot-notes&quot;,&quot;archived_href&quot;:&quot;&quot;,&quot;redirect_href&quot;:&quot;https:\/\/digitalanarchy.com\/shot-notes\/&quot;,&quot;checks&quot;:[],&quot;broken&quot;:false,&quot;last_checked&quot;:null,&quot;process&quot;:&quot;done&quot;},{&quot;id&quot;:14029,&quot;href&quot;:&quot;https:\/\/media2.giphy.com\/media\/v1.Y2lkPTc5MGI3NjExOHNiemdmN2N6MGIxZXBqMzh0dnJxa2NkcDNlMXMzZXJrcXdwdnpocSZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw\/1MTLxzwvOnvmE\/giphy.gif&quot;,&quot;archived_href&quot;:&quot;&quot;,&quot;redirect_href&quot;:&quot;&quot;,&quot;checks&quot;:[],&quot;broken&quot;:false,&quot;last_checked&quot;:null,&quot;process&quot;:&quot;done&quot;},{&quot;id&quot;:14031,&quot;href&quot;:&quot;https:\/\/www.rfc-editor.org\/rfc\/rfc4180&quot;,&quot;archived_href&quot;:&quot;http:\/\/web-wp.archive.org\/web\/20260328200446\/https:\/\/www.rfc-editor.org\/rfc\/rfc4180&quot;,&quot;redirect_href&quot;:&quot;&quot;,&quot;checks&quot;:[{&quot;date&quot;:&quot;2026-04-13 08:04:28&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-04-20 13:14:52&quot;,&quot;http_code&quot;:206}],&quot;broken&quot;:false,&quot;last_checked&quot;:{&quot;date&quot;:&quot;2026-04-20 13:14:52&quot;,&quot;http_code&quot;:206},&quot;process&quot;:&quot;done&quot;},{&quot;id&quot;:14033,&quot;href&quot;:&quot;https:\/\/digitalanarchy.com\/manuals\/ShotNotes%201.0%20Manual.pdf&quot;,&quot;archived_href&quot;:&quot;http:\/\/web-wp.archive.org\/web\/20260413081006\/https:\/\/digitalanarchy.com\/manuals\/ShotNotes%201.0%20Manual.pdf&quot;,&quot;redirect_href&quot;:&quot;&quot;,&quot;checks&quot;:[],&quot;broken&quot;:false,&quot;last_checked&quot;:null,&quot;process&quot;:&quot;done&quot;},{&quot;id&quot;:14034,&quot;href&quot;:&quot;https:\/\/digitalanarchy.com\/shot-notes\/?utm_source=chatgpt.com&quot;,&quot;archived_href&quot;:&quot;&quot;,&quot;redirect_href&quot;:&quot;&quot;,&quot;checks&quot;:[],&quot;broken&quot;:false,&quot;last_checked&quot;:null,&quot;process&quot;:&quot;done&quot;}]'></div>
<p class="wp-block-paragraph"><a href="https://digitalanarchy.com/shot-notes/" title="">ShotNotes </a>adds a dedicated notes-and-tasks panel to <a href="https://digitalproduction.com/tag/premiere/" title="Premiere">Adobe Premiere</a>. It targets the everyday problem that never makes it into a spec sheet: remembering what to fix, what to check, and what to deliver while the timeline keeps changing.</p>



<p class="wp-block-paragraph">The core idea is sequence-based notes: You add an entry, and it belongs to the sequence you are working on. Notes can be colour-coded, and the panel can filter what you see by colour, so you can separate client feedback from internal reminders or mark items by priority.</p>



<p class="wp-block-paragraph">A note can include an optional timecode pulled from the current playhead position. When an entry includes timecode, ShotNotes automatically places a marker on the timeline so the entry stays linked to that frame. The panel treats timecode as more than a label: it turns timecode into a navigation control.</p>



<h3 id="clickable-timecode-that-behaves-like-a-jump-button" class="wp-block-heading">Clickable timecode that behaves like a jump button</h3>



<p class="wp-block-paragraph">ShotNotes can insert clickable timecode into a note so you can jump straight to the referenced point in the timeline. The note becomes a shortcut, not just a comment.</p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2026/04/shotnotes-full-panel-with-notes-task-timecode-link.jpg?quality=80&ssl=1"><img data-recalc-dims="1"  fetchpriority="high"  decoding="async"  width="1200"  height="675"  sizes="(max-width: 1200px) 100vw, 1200px"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2026/04/shotnotes-full-panel-with-notes-task-timecode-link.jpg?resize=1200%2C675&quality=80&ssl=1"  alt="A computer screen displays shot notes in a dark-themed editing software interface. The notes include timestamps, colored labels, and task descriptions like &#039;Use a video thumbnail&#039; and &#039;Start color correcting,&#039; with icons indicating actions and progress."  class="wp-image-268922" ></a></figure>



<p class="wp-block-paragraph">The panel supports copying timecode from one sequence and pasting it into a note for another sequence. That makes it possible to reference a moment in a different sequence and still navigate there quickly from the note.</p>



<p class="wp-block-paragraph">Notes can also reference other sequences directly. The result is a lightweight way to connect the dots across a project: a note in one sequence can point to a specific moment in another sequence and take you there with a click.</p>



<p class="wp-block-paragraph">If your usual approach is to build a marker forest, ShotNotes can still feed that workflow by creating markers for each note so the timeline can carry the breadcrumbs the panel shows, without forcing you to rely on markers alone as the only place your thinking lives.</p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2026/04/shotnotes-task-timer-running-note-with-timecode-and-link-timeline-markers-mouse-hover.jpg?quality=80&ssl=1"><img data-recalc-dims="1"  decoding="async"  width="1200"  height="675"  sizes="(max-width: 1200px) 100vw, 1200px"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2026/04/shotnotes-task-timer-running-note-with-timecode-and-link-timeline-markers-mouse-hover.jpg?resize=1200%2C675&quality=80&ssl=1"  alt="A dark-themed video editing interface displays a timeline filled with colorful audio tracks and video clips. Notes and timestamps, including &#039;begin audio mix&#039; and &#039;cut out the wedding coordinator in background&#039;, are visible, providing guidance for editing."  class="wp-image-268925" ></a></figure>



<h3 id="links-and-reference-material-that-stay-one-click-away" class="wp-block-heading">Links and reference material that stay one click away</h3>



<p class="wp-block-paragraph">Notes support hyperlinks. If you type a URL into a note, ShotNotes turns it into a clickable link and opens it in a web browser. That is handy for reference docs, client frames, internal shot tracking pages, relevant <a href="https://media2.giphy.com/media/v1.Y2lkPTc5MGI3NjExOHNiemdmN2N6MGIxZXBqMzh0dnJxa2NkcDNlMXMzZXJrcXdwdnpocSZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/1MTLxzwvOnvmE/giphy.gif" title="">memes</a>, or just the one weird spec sheet everyone forgets until export day. The point is not that links are rare, but that links usually end up in a separate app, which becomes another place to lose context.</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/upCBXOeMqSg?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>



<h3 id="search-and-filters-for-the-whole-project-brain" class="wp-block-heading">Search and filters for the whole project brain</h3>



<p class="wp-block-paragraph">ShotNotes can search notes across the entire project. When you need to find that one line about audio cleanup, the one producer note that actually made sense, a missing lower third, or the exact frame that needs stabilization, the panel can locate it without you hunting sequence by sequence.</p>



<p class="wp-block-paragraph">The interface also includes filtering, including options to filter based on whether entries have timecode. Combined with sequence-based organisation, this lets you narrow the panel down to the entry you need right now. Notes and tasks can expand and collapse in the panel, so you can keep long entries around without turning the panel into a wall of text.</p>



<h3 id="marker-sync-because-timelines-move" class="wp-block-heading">Marker sync, because timelines move</h3>



<p class="wp-block-paragraph">ShotNotes links entries to timeline markers when you include timecode. When edits move markers later in the project, ShotNotes provides Sync and Sync All buttons to sync entries to the marker’s new position, because a note is only useful if it still points at the right moment after the cut changes. (*looks emberassed at the heap of PostIts building a ramp below the screen*) </p>



<p class="wp-block-paragraph">There is an important limitation: depending on how you edit, Premiere Pro may not move the markers. If that happens, you may need to manually update the timecode in the affected notes when frame accuracy matters.</p>



<h3 id="a-built-in-time-tracker-for-tasks-and-receipts" class="wp-block-heading">A built in time tracker for tasks and receipts</h3>



<p class="wp-block-paragraph">ShotNotes includes tasks with timers. You can start and stop a timer for a task, log multiple timer entries, and then review those entries in the task log. If you forget to stop a timer, the panel includes an edit option that lets you adjust the end time so the entry reflects when you actually finished. If a timer entry is junk, you can delete it so it does not appear in exports.</p>



<p class="wp-block-paragraph">The time tracker also logs certain events to provide more detail about what happened while a timer ran, including switching sequences or selecting a clip in the timeline. That makes the report more descriptive than a single number on an invoice.</p>



<p class="wp-block-paragraph">This is also where reality bites a little. Premiere Pro limits what events can be captured, so the activity log does not represent every editing action. Some actions can appear as delete and add events because Premiere Pro treats certain edits that way internally.</p>



<h3 id="export-and-backup-that-fits-the-handoff-phase" class="wp-block-heading">Export and backup that fits the handoff phase</h3>



<p class="wp-block-paragraph">ShotNotes can export notes and other data in a variety of formats for printing out or viewing.</p>



<figure class="wp-block-image size-full"><a href="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2026/04/shotnotes-export-notes.jpg?quality=80&ssl=1"><img data-recalc-dims="1"  decoding="async"  width="1200"  height="675"  sizes="(max-width: 1200px) 100vw, 1200px"  src="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2026/04/shotnotes-export-notes.jpg?resize=1200%2C675&quality=80&ssl=1"  alt="A digital interface displaying an &#039;Export Notes&#039; dialog box. Various export options are visible, including &#039;PDF Report,&#039; &#039;Word (DOCX),&#039; &#039;Sequence JSON,&#039; &#039;Full backup JSON,&#039; and &#039;Text.&#039; A portion of a video editing timeline with clips is also visible in the background."  class="wp-image-268921" ></a></figure>



<p class="wp-block-paragraph">For backup and transfer, ShotNotes includes exporting to JSON as its native format. That JSON export can be imported on another computer, copied to another sequence, or used as a backup. For time tracking, ShotNotes can generate a report that saves timer entries for a sequence to a <a href="https://www.rfc-editor.org/rfc/rfc4180">CSV</a> file that can be viewed in a spreadsheet.</p>



<p class="wp-block-paragraph">Exportable notes and exportable time data matter for finishing and delivery, because that is where you often need to share information outside the NLE. Like, what to bill the client for his latest “Just one more change”. ShotNotes gives you a structured way to pull that information out without rewriting it.</p>



<h3 id="licensing-trial-and-getting-it-into-the-workspace" class="wp-block-heading">Licensing, trial, and getting it into the workspace</h3>



<p class="wp-block-paragraph">ShotNotes includes a free seven-day trial, which is fully functional. Licensing can be done with a serial number or by logging in to a Digital Anarchy Cloud account. The cloud account method is described as the easiest way to license if you want to install on a different machine without juggling serials. If you cannot license online, support provides an offline activation file option.</p>



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



<h3 id="compatibility-notes-including-one-awkward-bug" class="wp-block-heading">Compatibility notes, including one awkward bug</h3>



<p class="wp-block-paragraph">ShotNotes only supports Premiere Pro 2023 and newer versions. <a href="https://digitalanarchy.com/manuals/ShotNotes%201.0%20Manual.pdf" title="">A known issue exists</a> in Premiere Pro 2025 and 2026 that can occasionally cause the recorded timecode of newly created entries to be slightly inaccurate. The amount of offset can depend on how zoomed out the timeline is when the entry is created; zooming in typically reduces the offset. If needed, you can manually adjust the timecode for the entry.</p>



<h3 id="price-promo-window-and-the-practical-take" class="wp-block-heading">Price, promo window, and the practical take</h3>



<p class="wp-block-paragraph">ShotNotes is available immediately at $129 USD, with a $99 price offered until May 15. As with any new workflow tool, test it before you rely on it for a deadline-sensitive job.</p>



<p class="wp-block-paragraph"><a href="https://digitalanarchy.com/shot-notes/?utm_source=chatgpt.com">https://digitalanarchy.com/shot-notes/</a></p><p>The post <a href="https://digitalproduction.com/2026/04/14/digital-anarchy-releases-shotnotes-panel-for-premiere/">Digital Anarchy releases ShotNotes panel for Premiere.</a> first appeared on <a href="https://digitalproduction.com">DIGITAL PRODUCTION</a> and was written by <a href="https://digitalproduction.com/author/qualityjellyfish45275761d0/">Bela Beier</a>. </p></div>]]></content:encoded>
					
		
		
		<enclosure url="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2026/04/shotnotesforpremiere.jpg?fit=1920%2C1080&#038;quality=80&#038;ssl=1" length="203703" type="image/jpg" />
<media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2026/04/shotnotesforpremiere.jpg?fit=1200%2C675&#038;quality=80&#038;ssl=1" width="1200" height="675" medium="image" type="image/jpeg">
	<media:copyright>DIGITAL PRODUCTION</media:copyright>
	<media:title></media:title>
	<media:description type="html"><![CDATA[A beautifully decorated white wedding cake stands prominently on a glass pedestal surrounded by delicate white flowers in a serene outdoor setting with soft golden light filtering through trees. The editing software interface displays colorful timelines and notes, creating a sophisticated editing atmosphere.]]></media:description>
</media:content>
<media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://i0.wp.com/digitalproduction.com/wp-content/uploads/2026/04/shotnotesforpremiere.jpg?fit=1200%2C675&#038;quality=80&#038;ssl=1" width="1200" height="675" />
<post-id xmlns="com-wordpress:feed-additions:1">268910</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-1 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>
	</channel>
</rss>
