<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[CodedShapes]]></title><description><![CDATA[Computational design the way I wish someone had taught me. Practical lessons, real patterns, and resources from years of building. If you want clarity, context, and knowledge, CodedShapes is for you.]]></description><link>https://www.codedshapes.com</link><image><url>https://substackcdn.com/image/fetch/$s_!DATU!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8783c1e-94bb-4979-9c47-889d3da8083d_500x500.png</url><title>CodedShapes</title><link>https://www.codedshapes.com</link></image><generator>Substack</generator><lastBuildDate>Tue, 21 Jul 2026 00:41:34 GMT</lastBuildDate><atom:link href="https://www.codedshapes.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Braden Koh]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[bradenkoh@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[bradenkoh@substack.com]]></itunes:email><itunes:name><![CDATA[Braden Koh]]></itunes:name></itunes:owner><itunes:author><![CDATA[Braden Koh]]></itunes:author><googleplay:owner><![CDATA[bradenkoh@substack.com]]></googleplay:owner><googleplay:email><![CDATA[bradenkoh@substack.com]]></googleplay:email><googleplay:author><![CDATA[Braden Koh]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Week 1: Free, and Running Out of Time]]></title><description><![CDATA[This is what I did in the first week of leaving my job and starting a new company.]]></description><link>https://www.codedshapes.com/p/week-1-free-and-running-out-of-time</link><guid isPermaLink="false">https://www.codedshapes.com/p/week-1-free-and-running-out-of-time</guid><dc:creator><![CDATA[Braden Koh]]></dc:creator><pubDate>Mon, 20 Jul 2026 00:33:13 GMT</pubDate><enclosure url="https://substackcdn.com/image/youtube/w_728,c_limit/h4xWJAArbsY" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="callout-block" data-callout="true"><p><strong>What is this</strong></p><p>I&#8217;m going to try to write, and film, one of these every week. It&#8217;s a short log of what it&#8217;s like to leave a job and build something on my own. I am treating this as a &#8220;documenting&#8221; style but will try to make it as coherent as possible.<br></p><p>I think this journey of mine is going to be interesting, so I want to share it with everyone but I also didn&#8217;t want to disrupt my current newsletter. So, I create a new &#8220;section&#8221; on Substack.<br></p><p>And if you don&#8217;t want to follow along or read this, no problems, you can always unsubscribe to this section at the bottom while still getting the normal CodedShapes issues every week.</p></div><h2>Rules</h2><p>I adding this to my already pretty long things to do weekly, so I made some rules to prevent this from sucking up too much of my time.</p><ul><li><p>Writing and editing, can only take 1 hour</p></li><li><p>Filming and editing, can only take 1 hour</p><ul><li><p>During filming, no more than 5 re-takes.</p></li></ul></li><li><p>Publishing (in all it&#8217;s nitty gritty), can only take 30 minutes</p></li></ul><p>I am going to set a time for each and when the time is up, I&#8217;ll wrap up and publish. The whole point is for this to be rough and it&#8217;s a log, not &#8220;content&#8221;.</p><h2>Week 1</h2><div id="youtube2-h4xWJAArbsY" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;h4xWJAArbsY&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/h4xWJAArbsY?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>It&#8217;s the end of week 1 of going independent for me.</p><p>And if I could sum it up in two words, it would be: freeing and exhausting.</p><p>Like the start of most journeys, I&#8217;m find myself wanting to do many things. Filled with excitement and busier than ever.</p><p>I got more done than I had in weeks.</p><p>Just as a summary,</p><ul><li><p>I got the company setup and all its accounting logistics and tax implications</p></li><li><p>I got the CodedConstructs site up and running</p></li><li><p>I have been doing some outreach every day</p></li><li><p>I had some meetings with new people (Just meeting interesting people)</p></li><li><p>I had some discussions about new projects to collaborate</p></li><li><p>I have been doing some product development too</p></li></ul><p>Every evening, I am exhausted. But there&#8217;s a strong sense of accomplishment each day. There&#8217;s just something about being able to own the end-to-end process that makes working on it, so great. Maybe it&#8217;s the control and also the fact that I am able to execute on my &#8220;vision&#8221; for what digital work looks like.</p><p>It&#8217;s also the small things too. Like being able to go to the gym before lunch instead of &#8220;slumming&#8221; it with the after work crowd. Or meeting people and not worrying about my lunch break ending and having to rush the end of a great conversation. Since, I just started being able to work from my &#8220;office&#8221; at home is way better than the pressure of needing to go to the an office (although I imagine, this will get lonely soon).</p><p>All of this in the first week has made imagine going back to a full time job unimaginable.</p><p>As Naval once said:</p><div class="twitter-embed" data-attrs="{&quot;url&quot;:&quot;https://x.com/naval/status/977712028163833856?ref_src=twsrc%5Etfw\&quot;>March&quot;,&quot;full_text&quot;:&quot;<span class=\&quot;tweet-fake-link\&quot;>@johndurant</span> A taste of freedom can make you unemployable.&quot;,&quot;username&quot;:&quot;naval&quot;,&quot;name&quot;:&quot;Naval&quot;,&quot;profile_image_url&quot;:&quot;https://pbs.substack.com/profile_images/1256841238298292232/ycqwaMI2_normal.jpg&quot;,&quot;date&quot;:&quot;2018-03-25T01:01:27.000Z&quot;,&quot;photos&quot;:[],&quot;quoted_tweet&quot;:{},&quot;reply_count&quot;:84,&quot;retweet_count&quot;:981,&quot;like_count&quot;:4554,&quot;impression_count&quot;:0,&quot;expanded_url&quot;:null,&quot;video_url&quot;:null,&quot;video_preview_media_key&quot;:null,&quot;belowTheFold&quot;:true}" data-component-name="Twitter2ToDOM"></div><p>But it&#8217;s not all glorious.</p><p>The elephant in the room here is that at some point, all of this has to make money.</p><p>Freedom is great and all but so is being able to pay the bills.</p><p>And it&#8217;s a sneaky one. Because now that I am alone and every decision is on me. Which leaves room for a lot of doubt and questions. No more manager or &#8220;management&#8221; to blame. Everything is on me.</p><p>Which when I am tired, can feel overwhelming.</p><p>It&#8217;s a strange to feel so free and also feel that time is running out at the same time.</p><p>It&#8217;s led me to understand burnout better now than I ever did on a salary. Because there is just an infinite things to work on at a given time. There&#8217;s just always more to do.</p><p>Actually, the hardest part might even be to trust myself more. Because well I making decisions that need to have a positive and monetary impact and a lot of that is trusting my own instincts and processes.</p><p>In a few moments of weakness I have thought of reaching out to the less savoury kind of people ~asking~ begging for a project just because it seemed easier than to stand my ground. But I&#8217;m hoping I never go through with that.</p><div><hr></div><p>That&#8217;s week one in a nutshell.</p><p>I am going to try and keep these up each week because I find it interesting to see how this unfolds.</p><p>Thanks for reading.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.codedshapes.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Subscribe to follow along for the journey!</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div class="pullquote"><p>If you&#8217;re thinking about bringing computational design into a project, I&#8217;m happy to talk through how you&#8217;re framing the problem and if it&#8217;s the right solution.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://calendly.com/braden-codedconstructs/30-minute-chat&quot;,&quot;text&quot;:&quot;Chat With Me&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://calendly.com/braden-codedconstructs/30-minute-chat"><span>Chat With Me</span></a></p></div>]]></content:encoded></item><item><title><![CDATA[I'm Starting CodedConstructs]]></title><description><![CDATA[A digital consultancy to help AEC teams be more efficient]]></description><link>https://www.codedshapes.com/p/im-starting-codedconstructs</link><guid isPermaLink="false">https://www.codedshapes.com/p/im-starting-codedconstructs</guid><dc:creator><![CDATA[Braden Koh]]></dc:creator><pubDate>Thu, 16 Jul 2026 00:00:08 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!egai!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ef77414-87dd-4bc7-9b4e-f74a39361109_3300x1858.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!egai!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ef77414-87dd-4bc7-9b4e-f74a39361109_3300x1858.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!egai!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ef77414-87dd-4bc7-9b4e-f74a39361109_3300x1858.png 424w, https://substackcdn.com/image/fetch/$s_!egai!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ef77414-87dd-4bc7-9b4e-f74a39361109_3300x1858.png 848w, https://substackcdn.com/image/fetch/$s_!egai!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ef77414-87dd-4bc7-9b4e-f74a39361109_3300x1858.png 1272w, https://substackcdn.com/image/fetch/$s_!egai!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ef77414-87dd-4bc7-9b4e-f74a39361109_3300x1858.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!egai!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ef77414-87dd-4bc7-9b4e-f74a39361109_3300x1858.png" width="1456" height="820" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7ef77414-87dd-4bc7-9b4e-f74a39361109_3300x1858.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:820,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2406542,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.codedshapes.com/i/206526498?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ef77414-87dd-4bc7-9b4e-f74a39361109_3300x1858.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!egai!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ef77414-87dd-4bc7-9b4e-f74a39361109_3300x1858.png 424w, https://substackcdn.com/image/fetch/$s_!egai!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ef77414-87dd-4bc7-9b4e-f74a39361109_3300x1858.png 848w, https://substackcdn.com/image/fetch/$s_!egai!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ef77414-87dd-4bc7-9b4e-f74a39361109_3300x1858.png 1272w, https://substackcdn.com/image/fetch/$s_!egai!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ef77414-87dd-4bc7-9b4e-f74a39361109_3300x1858.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="callout-block" data-callout="true"><p><strong>Announcement</strong><br>I&#8217;m going solo! I&#8217;m starting <a href="https://codedconstructs.com/">CodedConstructs </a>as an independent firm that focuses on consulting, creating some software products and a few other adventures I&#8217;ll share along the way.</p></div><p>I&#8217;ve spent months deliberating this and everyone tells you how scary it is to &#8220;take the leap&#8221;. But no one warns you how weird the time leading up to the jump actually is. I have pivoted between being grateful and then wanting to be rid of the job. And the best of all, teetering between full of self-doubt and full of confidence. </p><p>It&#8217;s really was a strange time to be in. </p><p>I&#8217;m allowing myself to feel all of it because I think that&#8217;s the best way forward. </p><h2>The weirdness of being a digital person in the AEC</h2><p><a href="https://www.codedshapes.com/">CodedShapes</a> has been my way of trying to make sense of this weird field. Working through story on what it actually means to be a <a href="https://www.codedshapes.com/p/youre-too-good-at-fixing-things">technology person inside an industry that doesn&#8217;t need technology to deliver its work</a>.</p><p>AI and Grasshopper are great, but at the end of the day, a building just needs a drawing printed on paper. As long as getting there isn&#8217;t too expensive, most companies actually don&#8217;t care.</p><p>Through these articles, I kept circling the same question from different angles. <a href="https://www.codedshapes.com/p/how-to-know-if-your-workflow-is-actually">Finding the right things to build</a>. <a href="https://www.codedshapes.com/p/you-dont-have-to-build-your-own-automation">Debating billable vs internal tools</a>. Hammering on the point of <em><a href="https://www.codedshapes.com/p/5-questions-that-made-me-rethink">understanding first, before building</a></em>.</p><p>All of it has been me trying to answer: <em><strong>how does digital work actually fit inside AEC?</strong></em></p><blockquote><p><em>When I say &#8220;digital&#8221; I mean everything : Building plugins, Excel macros, Grasshopper scripts, standalone applications, web applications, &#8230; everything</em></p></blockquote><p><a href="https://provingground.io/2017/02/15/positioning-computational-designers-in-your-business-4-things-to-consider/">Proving Ground put it well in 2017</a> when they wrote that computational design was largely misunderstood. That it should be treated like a problem solving methodology instead of an actual role. The article even goes on to suggest ways of working with digitally forward people at a time where &#8220;computational design&#8221; was just a new thing.</p><div class="pullquote"><p>In my view, the best indicator you have found the right fit for your team will be in how well the applicant can convey their thought process, and that it aligns with your aims and values. Ultimately, they should be interested to learn about the design challenges specific to your firm and describe a computational vision that can help lead your business to the best possible solution. - <a href="https://provingground.io/2017/02/15/positioning-computational-designers-in-your-business-4-things-to-consider/">Proving Ground, 2017</a></p></div><p>But here we are, almost a decade later and no one has a good answer. People still don&#8217;t know if the computational designer is a BIM person or an engineer or just a software developer. And even operation wise, is the role project focused? Is it just R&amp;D? Is it both? How do we budget it?</p><p>And now with AI, we&#8217;ve arguably moved even further <em>from</em> understanding what these roles are. Since it&#8217;s made tool-building more accessible, a lot more &#8220;normal&#8221; people are making tools now, which blurs this line even more. </p><p>Is a senior structural engineer that uses AI to build tools the same as computational design? I don&#8217;t think so, but some companies might.</p><p>I still believe in the vision of &#8220;<em><strong>describe a computational vision that can help lead your business to the best possible solution</strong></em>&#8221; but I just don&#8217;t think doing it from a company works anymore.</p><h2>What working inside taught me</h2><p>I&#8217;ve spent most of my career working inside structural engineering consultancies. Building tools, scripts, workflows, and digital systems around the company and it&#8217;s projects. And it&#8217;s been a bumpy ride. I&#8217;ve built <a href="https://www.codedshapes.com/p/this-is-why-they-dont-trust-us">tools that entire projects depended on</a>. And I&#8217;ve built tools that <a href="https://www.codedshapes.com/p/what-happens-when-the-person-who">never saw the light of day</a>, months of work just sitting in a folder somewhere because it wasn&#8217;t thought out properly. Or because someone thought it was a good idea to automate the small 1% of their work.</p><p>And what I have found is that even though it&#8217;s a deeply technical area, the things that actually dictate the value of computational design are <em><strong>communication and understanding</strong>,</em> which are both very human problems.</p><p>As I &#8220;climbed the ranks&#8221;, I kept pushing to understand the entire delivery chain for digital work in this industry. Not just the tool building but <a href="https://open.substack.com/pub/bradenkoh/p/the-real-cost-of-sharing-grasshopper">the scoping, the selling, the maintaining</a>, the finances, basically, everything. </p><p>But as I pushed for more ownership while working for companies, I met an equally increasing resistance that stemmed from all the classic &#8220;corporate&#8221; reasons. <a href="https://www.codedshapes.com/p/the-spreadsheet-is-never-just-a-spreadsheet">Politics, budgets and status games</a>.</p><p>It was reaching a point where the role didn&#8217;t fit the work I wanted to do anymore.</p><h2>Walking the walk</h2><p>It&#8217;s easy to complain about companies not giving me what I want. It&#8217;s much harder to do something about it. So, this is me walking the walk.</p><p>I&#8217;ve spent years writing about how computational design works (and should work) in our industry. And now I want to put that to the test on my own terms. Going independent forces me to stress-test my own philosophy, which has always been to <a href="https://www.codedshapes.com/p/are-you-thinking-about-your-script">understand first, then build</a>.</p><p>In a world where building new tools is fast, focusing on the human elements like communication and understanding seems counter-intuitive but it&#8217;s the right instinct to act on now.</p><p>The industry still doesn&#8217;t know how to position this work. And just building things quicker with AI is not going to solve that. </p><p>But the other hard truth is that I also don&#8217;t know what the answer here is either.</p><p>Starting my own consultancy forces me to find that answer because you can&#8217;t sell something you can&#8217;t explain. I can&#8217;t hide behind budgets or politics anymore, I am forced to confront the market with my ideas. I have to find the fit between what I believe and what people actually need.</p><p>Which is why it&#8217;s taken a lot of deep soul searching and incredibly difficult work to arrive at this decision. But ultimately it became clear that this was the only way forward.</p><h2>What is CodedConstructs</h2><p>To me, <a href="https://codedconstructs.com/">CodedConstructs </a>is not a completely new thing. It doesn&#8217;t change the work or who I am. It&#8217;s a clearer container for the work I&#8217;ve already been doing and want to do more of. Well, this container needs to pay my bills at some point.</p><p>I want to build tools and workflows that teams can actually adopt, maintain, and use to be more efficient. Not built for marketing or because some director decided the company &#8220;needs to do more AI.&#8221;</p><p>The work I care about sits between design, delivery, and software. And it&#8217;s always been about ensuring the tool fits the way the team actually works.</p><h2>What&#8217;s next</h2><p>Nothing changes on the CodedShapes (this newsletter) front. But it does mean I am fully open for business.</p><p>If your team has a design, modelling, documentation, or reporting workflow that feels too manual, too fragile, or too dependent on one person, <a href="https://calendly.com/braden-codedconstructs/30-minute-chat?month=2026-07">I&#8217;d be happy to chat</a>. Even if it&#8217;s just to think through what makes sense, that conversation is free. </p><p>If it doesn&#8217;t work, I&#8217;ll tell you and I&#8217;ll never take payment from you before the next steps are clear. </p><div class="pullquote"><p>Subscribe to follow me on my solo journey! Let&#8217;s see how I do in the next few months</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.codedshapes.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.codedshapes.com/subscribe?"><span>Subscribe now</span></a></p></div>]]></content:encoded></item><item><title><![CDATA[Has Computational Design Ruined My Career?]]></title><description><![CDATA[A decade of uncertainty brought me here]]></description><link>https://www.codedshapes.com/p/has-computational-design-ruined-my</link><guid isPermaLink="false">https://www.codedshapes.com/p/has-computational-design-ruined-my</guid><dc:creator><![CDATA[Braden Koh]]></dc:creator><pubDate>Thu, 09 Jul 2026 00:01:27 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!h_3p!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1ac556b-3b1f-4805-860f-aac5d4379b6f_3300x1858.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!h_3p!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1ac556b-3b1f-4805-860f-aac5d4379b6f_3300x1858.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!h_3p!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1ac556b-3b1f-4805-860f-aac5d4379b6f_3300x1858.png 424w, https://substackcdn.com/image/fetch/$s_!h_3p!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1ac556b-3b1f-4805-860f-aac5d4379b6f_3300x1858.png 848w, https://substackcdn.com/image/fetch/$s_!h_3p!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1ac556b-3b1f-4805-860f-aac5d4379b6f_3300x1858.png 1272w, https://substackcdn.com/image/fetch/$s_!h_3p!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1ac556b-3b1f-4805-860f-aac5d4379b6f_3300x1858.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!h_3p!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1ac556b-3b1f-4805-860f-aac5d4379b6f_3300x1858.png" width="1456" height="820" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a1ac556b-3b1f-4805-860f-aac5d4379b6f_3300x1858.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:820,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2734404,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.codedshapes.com/i/204992136?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1ac556b-3b1f-4805-860f-aac5d4379b6f_3300x1858.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!h_3p!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1ac556b-3b1f-4805-860f-aac5d4379b6f_3300x1858.png 424w, https://substackcdn.com/image/fetch/$s_!h_3p!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1ac556b-3b1f-4805-860f-aac5d4379b6f_3300x1858.png 848w, https://substackcdn.com/image/fetch/$s_!h_3p!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1ac556b-3b1f-4805-860f-aac5d4379b6f_3300x1858.png 1272w, https://substackcdn.com/image/fetch/$s_!h_3p!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1ac556b-3b1f-4805-860f-aac5d4379b6f_3300x1858.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>For the first few years after graduating, this single question kept me up at night the most.</p><p>I was lucky (and maybe not so lucky) because early in my career, I got a job at a structural engineering company that just started a digital team, and I was their first computational design graduate.</p><p>The concept was a team that knew engineering <em>and</em> code, helping create tools and workflows that made everyone else in the company more efficient. Grasshopper was all the rage back then and this company wanted to use that as an advantage. Well, and normal programming to build proprietary tools.</p><p>But really, no one knew what that actually meant. Like what progressing in the role looked like. What the team structure was going to be. How to discuss salary. Or even how to budget the team. It was all so new to everyone.</p><p>And as a graduate, I couldn&#8217;t help but worry about my future.</p><p>Especially when the rest of my cohort from university were discussing their careers. They talked about getting to senior level. About being fast-tracked to manager. Or even negotiation tactics on how to get the salary they thought they should be getting.</p><p>They looked to the future with certainty while I didn&#8217;t even know what my next year would look like. Does &#8220;senior&#8221; even mean anything in a field of less than a 100 people?</p><p>So, again, the question kept haunting me.</p><blockquote><p><em>Am I wasting my time by doing computational design?</em></p></blockquote><p>I wanted someone to tell me what the next step was. To show me what it meant to &#8220;climb the ranks.&#8221; To give me a promotion checklist to work on. Most importantly, I wanted someone to tell me that I was learning useful stuff for the future.</p><p>But as uncertain as things were, the work was too interesting to give up. I was coding, I was scripting, I was exploring digital concepts with clients and directors. It was one of the most interesting times of my career.</p><p>So, I soldiered on, hoping the company would overcome the growing pains of starting a new digital team.</p><div class="callout-block" data-callout="true"><p><em>Hi, I&#8217;m Braden</em></p><p><em>I help teams be more efficient in the AEC Industry, then share stories about it here. I also have <a href="https://www.codedshapes.com/p/scripository">courses, guides and scripts</a> as part of <a href="https://www.codedshapes.com/p/start-here">CodedShapes Pro</a><br>Check it out if that sounds valuable.</em></p><p><em>If you&#8217;re new to CodedShapes, welcome! You might also enjoy these:</em></p><ul><li><p><em><a href="https://www.codedshapes.com/p/how-to-know-if-your-workflow-is-actually">How to know if your workflow is actually worth automating</a></em></p></li><li><p><em><a href="https://www.codedshapes.com/p/stop-using-grasshopper-for-everything">Stop using Grasshopper for everything</a></em></p></li><li><p><em><a href="https://www.codedshapes.com/p/applying-computational-design-where">How to apply computational design to your projects</a></em></p></li></ul></div><h2>A few projects and tools (and years) later...</h2><p>We still didn&#8217;t know a damn thing.</p><p>And like anything new, the interesting bits started to go stale. And this idea of being a digital person in this structural company started to really weigh on me.</p><p>I got promoted to senior. Cool, but again, no one knew what that meant. Every fortnight, we had meetings about budgets and R&amp;D initiatives.. We had directors chasing us to create concepts that never saw the light of day.</p><p>On paper, cool stuff but <a href="https://www.codedshapes.com/p/why-measuring-computational-design">no one knew how all of that got translated into value for the company</a> and into our roles. Every performance review was tense as I kept pushing for a clearer direction and more pay (as does everyone).</p><p>At some point, I stopped waiting for the moment when the path would become obvious. And kept questioning whether I had made a terrible career decision.</p><h2>Then AI showed up</h2><p>At first, it was amazing.</p><p>I ignored everyone who said &#8220;AI would take our jobs&#8221; because I found myself performing at a higher level. I was executing at a speed that wasn&#8217;t possible before. Tools and workflows got created much quicker because of it. Maybe this was a way of proving my value and finally getting some direction. Maybe, this will bring back the glory days.</p><p>But then, engineers, drafters, &#8230;. everyone started using it.</p><p>And not just chatting with it, they started <a href="https://open.substack.com/pub/bradenkoh/p/your-tools-dont-last-because-its">building their own automations, creating custom tools</a>, connecting AI directly to their workflows. When the digital team couldn&#8217;t respond to them because of budgets or politics, they simply used AI.</p><p>Suddenly, the threat seemed real.</p><p><a href="https://www.codedshapes.com/p/i-built-it-for-the-team-somehow-i">If people can build their own tools now, why would they need me?</a></p><p>In fact, a quick google tells you that <a href="https://www.oneusefulthing.org/p/the-twilight-of-the-chatbots">domain experts make the </a><em><a href="https://www.oneusefulthing.org/p/the-twilight-of-the-chatbots">best</a></em><a href="https://www.oneusefulthing.org/p/the-twilight-of-the-chatbots"> use of AI</a>. If you&#8217;re an expert drafter or engineer, you can use AI to build something amazing because you know the field so well.</p><p>So, if my value is connecting people to digital tools, and AI can now do that, what is my value?</p><p>If I had focused on being a structural engineer from the beginning, I could be using AI right now to build tools because I would&#8217;ve have been a domain expert.</p><p>Instead, I&#8217;m in this weird middle ground, knowing a lot about software and the AEC industry, but not enough in either domain to be a true expert. If I had <a href="https://www.codedshapes.com/p/a-week-of-tutorials-and-i-still-couldnt">stuck to a typical engineering career and just learnt to code as a hobby</a>, would I be in a better position?</p><p>Almost a decade later, I guess it&#8217;s the same question that still keeps me up at night.</p><h2>But there&#8217;s no such thing as certainty</h2><p>When I was a graduate, I wanted someone to show me the path to senior.</p><p>Then, I wanted to know how to climb the ranks. To know what was next apart from making tools and concepts.</p><p>Now, with AI so good at executing and people building their own tools, how do I move forward?</p><p>The good news is, as humans, we&#8217;re good at recognizing patterns. And the pattern here is that my career has <em>always</em> been uncertain. AI is just the latest version of the same feeling&#8230; I think.</p><p>And as intoxicating as it is to daydream about <a href="https://www.codedshapes.com/p/there-is-no-promised-land">&#8220;if I just stuck to engineering, my life would be better&#8221;</a>, the truth is, I wouldn&#8217;t be here if it wasn&#8217;t for this weird intersection.</p><p>I wouldn&#8217;t have started this newsletter or delivered <a href="https://www.codedshapes.com/p/my-three-biggest-failures-in-computational">all the incredible projects and tools in the past</a> if I had just been a regular engineer.</p><h2>And you might be feeling this too</h2><p>Maybe not about computational design. But about <em>something</em>.</p><p>Maybe it&#8217;s the job market or the economy. Maybe, like me, it&#8217;s the thought that AI is coming for our jobs.</p><p>But as the saying goes, &#8220;the only constant is change&#8221;.</p><p>Which means, I&#8217;ll never get the certainty I crave.</p><p>Which as uncomfortable as it feels (all the damn time), it&#8217;s a good thing. It&#8217;s what I&#8217;ve had to remind myself while writing this. Certainty was never the thing that moved me forward anyway. It was <a href="https://www.codedshapes.com/p/when-did-you-last-try-something-new">following what was valuable and interesting</a> at the time.</p><p>Whenever I waited for the path to become clear, nothing happened. But every time I just did the work because it was interesting, it opened up new pathways for me.</p><div class="pullquote"><p>If you&#8217;re thinking about bringing technology into a project, I&#8217;m happy to talk through how you&#8217;re framing the problem and if it&#8217;s the right way forward<br>The conversation is always free</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://calendly.com/braden-codedconstructs/30-minute-chat&quot;,&quot;text&quot;:&quot;Chat With Me&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://calendly.com/braden-codedconstructs/30-minute-chat"><span>Chat With Me</span></a></p></div><p><em>P.S. If you can&#8217;t tell, this article is more for me than it is for you. I&#8217;m dealing with a lot of uncertainty right now and writing this has reminded me how much I&#8217;ve had to navigate to get here.</em></p><p><em>P.P.S. I&#8217;ve got an announcement next week. Let&#8217;s just say I&#8217;m done waiting for the path to become clear.</em></p>]]></content:encoded></item><item><title><![CDATA[Your Tools Don't Last Because It's Nobody's Job]]></title><description><![CDATA[If you have internal tools, you know how this ends]]></description><link>https://www.codedshapes.com/p/your-tools-dont-last-because-its</link><guid isPermaLink="false">https://www.codedshapes.com/p/your-tools-dont-last-because-its</guid><dc:creator><![CDATA[Braden Koh]]></dc:creator><pubDate>Thu, 02 Jul 2026 00:01:15 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!7GfU!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd495b6ac-db83-4af4-993c-11cea84a05d3_3300x1858.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!7GfU!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd495b6ac-db83-4af4-993c-11cea84a05d3_3300x1858.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!7GfU!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd495b6ac-db83-4af4-993c-11cea84a05d3_3300x1858.png 424w, https://substackcdn.com/image/fetch/$s_!7GfU!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd495b6ac-db83-4af4-993c-11cea84a05d3_3300x1858.png 848w, https://substackcdn.com/image/fetch/$s_!7GfU!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd495b6ac-db83-4af4-993c-11cea84a05d3_3300x1858.png 1272w, https://substackcdn.com/image/fetch/$s_!7GfU!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd495b6ac-db83-4af4-993c-11cea84a05d3_3300x1858.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!7GfU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd495b6ac-db83-4af4-993c-11cea84a05d3_3300x1858.png" width="1456" height="820" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d495b6ac-db83-4af4-993c-11cea84a05d3_3300x1858.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:820,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2851254,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.codedshapes.com/i/203786372?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd495b6ac-db83-4af4-993c-11cea84a05d3_3300x1858.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!7GfU!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd495b6ac-db83-4af4-993c-11cea84a05d3_3300x1858.png 424w, https://substackcdn.com/image/fetch/$s_!7GfU!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd495b6ac-db83-4af4-993c-11cea84a05d3_3300x1858.png 848w, https://substackcdn.com/image/fetch/$s_!7GfU!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd495b6ac-db83-4af4-993c-11cea84a05d3_3300x1858.png 1272w, https://substackcdn.com/image/fetch/$s_!7GfU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd495b6ac-db83-4af4-993c-11cea84a05d3_3300x1858.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Meet Nate.</p><p>He&#8217;s a senior structural engineer. The kind of person that&#8217;s always looking for ways to make delivery less painful.</p><p>He was working on a high-rise project which has concrete columns. It was a 23 floor building with about 20 or so columns per level. What engineers then typically do to assess the columns, is a technique called a &#8220;column load rundown&#8221;.</p><p>You take results from the analysis model, put them into a design program, and check that every column works. The problem though, is you have to do this for <em>each</em> column on <em>every</em> floor. On this project, that&#8217;s more than 400 columns. And every time there&#8217;s a design change, you do it again.</p><p>It is as tedious as it actually sounds.</p><p>Which is why it&#8217;s known as a &#8220;rite of passage&#8221; for graduate engineers. Because it&#8217;s labour intensive and considered as &#8220;engineering grunt work&#8221;, most companies make graduates do them. That solves the cost issue but it still takes a long time to do them.</p><p>So, most companies have some sort of workflow to speed this up. Not fully automated but not entirely manual either. Generally, enough for new graduates produce results in a decent amount of time but still too tedious for senior engineers to use.</p><p>In this company, Nate built that workflow. It was an Excel spreadsheet that would take the results from an analysis model and through some inputs, it would design all the columns per floor. That meant, the graduates on this project only had to do this 23 times instead of 400+ times. What used to take three days now took about four hours.</p><p>But the spreadsheet wasn&#8217;t perfect. It only supported one analysis program and it only handled single-storey columns. And since Nate is busy with other projects all the time, <a href="https://www.codedshapes.com/p/what-happens-when-the-person-who">the spreadsheet fell behind</a> with each new requirement it couldn&#8217;t handle.</p><p>Not to mention, <a href="https://www.codedshapes.com/p/the-spreadsheet-is-never-just-a-spreadsheet">fixing a spreadsheet he built for other teams isn&#8217;t in his KPIs</a>. It won&#8217;t get him promoted. Upper management only cares about how <em>billable</em> he is, not what tools he&#8217;s made. It&#8217;s not something he can justify spending a Tuesday on when there are deadlines to hit.</p><p>And so, the spreadsheet remains out of date. People still use it because it&#8217;s still better than doing the rundowns manually. <a href="https://www.codedshapes.com/p/does-your-tool-still-fit-the-way?r=yraxj">But they start working around it, adding band-aids to cover for the things it can&#8217;t do.</a></p><p>In fact, there&#8217;s a new graduate working on this project, her name is Rey, and she&#8217;s using AI to build a new column rundown spreadsheet because she can&#8217;t get Nate&#8217;s to work.</p><p><a href="https://www.codedshapes.com/p/the-cost-of-inheriting-other-peoples?r=yraxj">But we all know how that goes...</a></p><div class="callout-block" data-callout="true"><p><em>Hi, I&#8217;m Braden</em></p><p><em>I help teams be more efficient in the AEC Industry, then share stories about it here. I also have <a href="https://www.codedshapes.com/p/scripository">courses, guides and scripts</a> as part of <a href="https://www.codedshapes.com/p/start-here">CodedShapes Pro</a><br>Check it out if that sounds like you.</em></p><p><em>If you&#8217;re new to CodedShapes, welcome! You might enjoy these:</em></p><ul><li><p><em><a href="https://www.codedshapes.com/p/how-to-know-if-your-workflow-is-actually">How to know if your workflow is actually worth automating</a></em></p></li><li><p><em><a href="https://www.codedshapes.com/p/stop-using-grasshopper-for-everything">Stop using Grasshopper for everything</a></em></p></li><li><p><em><a href="https://www.codedshapes.com/p/applying-computational-design-where">How to apply computational design to your projects</a></em></p></li></ul></div><h2>The tension of being billable vs internally useful</h2><p>Nate&#8217;s story, unfortunately, represents most internal tools ever built in the AEC (Architecture, Engineering, Construction) industry. Unless it&#8217;s a company&#8217;s core business offering, <a href="https://www.codedshapes.com/p/youll-never-see-me-saying-automation?r=yraxj">tools like these always follow a similar stor</a>y.</p><p>Nate wasn&#8217;t trying to build a product. He was just trying to get through a painful process faster. He saw a problem, and he built something that fixed it. Which is most people in this industry. No one is thinking about &#8220;internal tooling&#8221; or &#8220;automation strategy.&#8221; Everyone just wants something that makes their lives easier.</p><p>Not to mention, building something that solves <em>your exact problem</em> is fun and creative. Chatting to AI or even building a new spreadsheet is more fun than doing a column rundown for 400+ columns over and over again.</p><p>But the minute you build something useful that everyone else wants, there&#8217;s a tension on your time that didn&#8217;t exist before. You now have to teeter between being billable and being internally useful because you now accidentally own what you&#8217;ve built</p><p>Doing a column rundown one by one is slow, but you&#8217;re making progress. And you can charge that time to the project because that&#8217;s just what it takes to get it done. But if you work on Nate&#8217;s tool, how do you charge your time to something that helps on <em>all</em> projects?</p><p>It becomes a battle of <em>solving today&#8217;s problem</em> vs <em><a href="https://www.codedshapes.com/p/your-script-doesnt-need-to-work-on">solving it in a way that lasts</a></em>.</p><p>And companies usually only rewards the first because anytime that isn&#8217;t charge to projects is considered overhead. And when the company looks to promote Nate, it&#8217;ll be because of his projects, not because of the spreadsheets he made. <a href="https://www.codedshapes.com/p/youre-too-good-at-fixing-things">Nobody gets promoted for maintaining an Excel sheet.</a></p><p>So, <a href="https://www.codedshapes.com/p/i-built-it-for-the-team-somehow-i?r=yraxj">you build something useful, and now you&#8217;re accidentally responsible for a product. With no time, no incentive, and no support to keep it alive.</a></p><p>If we look at pure software development, there&#8217;s a reason why &#8220;product management&#8221; exists as a completely separate role. It&#8217;s the work of tracking what&#8217;s broken, deciding what to improve, and checking its alignment with the current business.</p><p>It&#8217;s <em>maintenance</em>, and it&#8217;s treated as real work.</p><p>AEC has nothing like this. <a href="https://www.codedshapes.com/p/writing-a-script-isnt-the-same-as">The person who builds the tool </a><em><a href="https://www.codedshapes.com/p/writing-a-script-isnt-the-same-as">is</a></em><a href="https://www.codedshapes.com/p/writing-a-script-isnt-the-same-as"> the product manager</a>, the support team, the developer, and they&#8217;re also a full-time engineer with billable targets. Which is why most of these tools die.</p><h2>The Rebuild Reflex</h2><p>With AI in the mix now, building things is faster than ever. You can get a working macro, a script, even a small app in a few a hours. The barrier to <em>creating</em> something has basically collapsed.</p><p>Which means the ownership problem gets worse.</p><p>Before AI, building something took enough effort that most people wouldn&#8217;t bother. They&#8217;d work with whatever tools they had, even if those tools were somewhat broken. But now, instead of wrestling with Nate&#8217;s semi-broken spreadsheet, anyone can just build their own version. I call this the <em>rebuild reflex</em>. It&#8217;s when it feels easier to rebuild something from scratch than to understand and maintain what already exists.</p><p>And project deadlines accelerate this. You&#8217;re even more inclined to build rather than maintain because the <em>known effort</em> of creating something new feels safer than the <em>unknown effort</em> of debugging someone else&#8217;s thing. Even if it&#8217;s objectively slower, it feels more in your control.</p><p>So, instead of one well-maintained tool, you end up with a dozen half-working ones. All doing roughly the same thing but uniquely for each project.</p><p>And well, from a numbers point of view, individual productivity goes up because everyone has a new tool that <a href="https://www.codedshapes.com/p/how-i-actually-know-if-my-scripts">solves their problem</a>. But what companies miss is the drift in quality and standards. When everyone does things their way, there&#8217;s no consistent bar for delivery anymore. How do you standardize the way people do things if they are all on unique tools ?</p><p>Not to mention, a graduate and a senior can both ask AI to build a column rundown spreadsheet. But the senior knows which features actually matter. They know enough to hone in on where normal spreadsheets fail. They know what &#8220;correct&#8221; means in context.</p><p>But a graduate who just started might just listen to the AI, even when it&#8217;s wrong. And if their manager is too busy to do a thorough review, that could lead to a real problem. I don&#8217;t even want to think about what happens when that graduate-made spreadsheet ends up in the hands of <em>other</em> graduates. (Yes, I&#8217;ve seen this happen.)</p><div class="pullquote"><p>If you&#8217;ve got something manual and repetitive, come chat with me to see if we can build something to ease that burden. <br>The chat is always free. </p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://calendly.com/braden-codedconstructs/30-minute-chat&quot;,&quot;text&quot;:&quot;Chat With Me&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://calendly.com/braden-codedconstructs/30-minute-chat"><span>Chat With Me</span></a></p></div><h2>The Missing Role</h2><p>So what did Nate&#8217;s team actually need? Well, they needed someone who <em>owned</em> the tool. Someone who could filter through requests, decide what changes mattered, and actually had the <em>time</em> to make them.</p><p>In other words, a product owner.</p><p>Now, I know that sounds like a role most 20-person AEC firms can&#8217;t justify. And that&#8217;s kind of true because the reality is that most firms don&#8217;t have the volume of tools or the budget to warrant a full-time hire for that.</p><p>But that doesn&#8217;t mean the work doesn&#8217;t need to happen. It just means you have to be intentional about <em>how</em> it happens. Because if you make &#8220;being billable&#8221; compete against &#8220;working on internal tools&#8221; for the average person, being billable will always win. Which is why the tools die.</p><p>One option is working with someone external who can fill that role for you. Someone who helps develop and maintain your tools without pulling your billable staff off projects. That&#8217;s a lot of what I do for my clients. It means you don&#8217;t have to keep someone fully resourced on just the tools, and there&#8217;s no battle between being billable and internal development.</p><p>Not to mention I work with you to figure out the direction of the tools, I don&#8217;t just come in and assume control, we&#8217;ll still work together on it.</p><p>If that sounds like something that could help, reply to this email or book a time to chat through the button below.</p><div class="pullquote"><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://calendly.com/braden-codedconstructs/30-minute-chat&quot;,&quot;text&quot;:&quot;Chat With Me&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://calendly.com/braden-codedconstructs/30-minute-chat"><span>Chat With Me</span></a></p></div><p>Thanks for reading.</p>]]></content:encoded></item><item><title><![CDATA[You're Too Good At Fixing Things]]></title><description><![CDATA[Is fixing that thing still the best use of your time ?]]></description><link>https://www.codedshapes.com/p/youre-too-good-at-fixing-things</link><guid isPermaLink="false">https://www.codedshapes.com/p/youre-too-good-at-fixing-things</guid><dc:creator><![CDATA[Braden Koh]]></dc:creator><pubDate>Thu, 25 Jun 2026 00:01:33 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!hnA_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc4c582d-268b-4976-ad37-5af43e720a7b_3300x1858.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!hnA_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc4c582d-268b-4976-ad37-5af43e720a7b_3300x1858.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!hnA_!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc4c582d-268b-4976-ad37-5af43e720a7b_3300x1858.png 424w, https://substackcdn.com/image/fetch/$s_!hnA_!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc4c582d-268b-4976-ad37-5af43e720a7b_3300x1858.png 848w, https://substackcdn.com/image/fetch/$s_!hnA_!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc4c582d-268b-4976-ad37-5af43e720a7b_3300x1858.png 1272w, https://substackcdn.com/image/fetch/$s_!hnA_!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc4c582d-268b-4976-ad37-5af43e720a7b_3300x1858.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!hnA_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc4c582d-268b-4976-ad37-5af43e720a7b_3300x1858.png" width="1456" height="820" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cc4c582d-268b-4976-ad37-5af43e720a7b_3300x1858.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:820,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3062382,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.codedshapes.com/i/202795325?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc4c582d-268b-4976-ad37-5af43e720a7b_3300x1858.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!hnA_!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc4c582d-268b-4976-ad37-5af43e720a7b_3300x1858.png 424w, https://substackcdn.com/image/fetch/$s_!hnA_!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc4c582d-268b-4976-ad37-5af43e720a7b_3300x1858.png 848w, https://substackcdn.com/image/fetch/$s_!hnA_!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc4c582d-268b-4976-ad37-5af43e720a7b_3300x1858.png 1272w, https://substackcdn.com/image/fetch/$s_!hnA_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc4c582d-268b-4976-ad37-5af43e720a7b_3300x1858.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Being a &#8220;digital&#8221; person in the AEC (Architecture, Engineering, Construction) is a weird place to be. Especially, if you work for a consultancy.</p><p>To put it simply, there are two modes of operating. Fire-fighting or tool building.</p><p>Fire-fighting is solving problems on projects. Scripting, pulling data, fixing models, whatever it takes to get the job done as quick as possible. These are where tools like Grasshopper, Dynamo or Python shine because no one cares about how robust your solution is. They just want results.</p><p>Tool building is the polar opposite. It&#8217;s when you&#8217;ve seen a problem enough times that you decide to invest in a proper tool, something reusable. It&#8217;s more like conventional software development, and it&#8217;s probably why I got into this field in the first place.</p><p>But the problem though is that these two operating modes are not equal. Working on projects is billable to clients. Tool building, even though more beneficial in the long run, isn&#8217;t.</p><p>So, there&#8217;s always a bias towards fire-fighting.</p><div class="callout-block" data-callout="true"><p><em>Hi, I&#8217;m Braden</em></p><p><em>I help teams be more efficient in the AEC Industry, then share stories about it here. I also have <a href="https://www.codedshapes.com/p/scripository">courses, guides and scripts</a> as part of <a href="https://www.codedshapes.com/p/start-here">CodedShapes Pro</a><br>Check it out if that sounds like you.</em></p><p><em>If you&#8217;re new to CodedShapes, welcome! You might enjoy these:</em></p><ul><li><p><em><a href="https://www.codedshapes.com/p/how-to-know-if-your-workflow-is-actually">How to know if your workflow is actually worth automating</a></em></p></li><li><p><em><a href="https://www.codedshapes.com/p/stop-using-grasshopper-for-everything">Stop using Grasshopper for everything</a></em></p></li><li><p><em><a href="https://www.codedshapes.com/p/applying-computational-design-where">How to apply computational design to your projects</a></em></p></li></ul></div><h2>The Competence Trap</h2><p>If you&#8217;ve been doing this for a while, you know how this plays out. You start out as someone who can solve problems quickly. You&#8217;re good with Grasshopper or Dynamo or whatever the tool is. People notice and love having you on their projects because you&#8217;re efficient and deliver at a high quality.</p><p>You start earning a reputation of putting out fires. You solve problems well, deliver at a high quality and let&#8217;s face it, you&#8217;re also cheap. So, to some extent, putting out fires becomes your value.</p><p>So, what happens when you want to build something? You&#8217;ve been fire-fighting long enough to see where a proper tool would help everyone. But the team doesn&#8217;t see you as the person who builds things, they see you as the person who fixes things.</p><p>And those are two very different roles, even if they use the same skills.</p><p>You know that if you could free up a week or two, you&#8217;d be able to build something that would make things just way more efficient. A true proper tool that could solve the pain points that you&#8217;ve been seeing so often on projects.</p><p>But every time, you sit to start, you get interrupted. Someone, somewhere needs your help. You&#8217;re just too good at putting out fires. And because it&#8217;s urgent and billable, you say yes.</p><h2>Why &#8220;Just Block Time&#8221; Doesn&#8217;t Work</h2><p>All the time hacks in the world can&#8217;t save you here. You can&#8217;t just &#8220;carve out time&#8221; or try one of those calendar-blocking things. If a project needs you, it doesn&#8217;t care when you&#8217;ve blocked your calendar or what AI tools you&#8217;re using. It needs you to put out those fires now.</p><p>And if you do manage to protect a few hours, building and fire-fighting require completely different kinds of energy. You can&#8217;t fix someone&#8217;s Revit model all morning and then design a new tool in the afternoon.</p><p>Well, you can. You just won&#8217;t do it well. If you&#8217;re like me, you&#8217;d be tempted to rush the tool building process because you don&#8217;t know when is the next time you will get to it.</p><p>Building requires a clear head, a longer time horizon, and the mental space to think about problems that aren&#8217;t screaming at you. You really do need the space to just sit with the problem.</p><div class="pullquote"><p>Subscribe to CodedShapes and I&#8217;ll send you my free guide on how to be more efficient with technology</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.codedshapes.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.codedshapes.com/subscribe?"><span>Subscribe now</span></a></p></div><h2>What Actually Helps</h2><p>The antidote, as you might guess, is simple.</p><p>If you can&#8217;t carve out time within a day, you have to carve out whole days or even weeks.</p><p>And that means choosing which fires to fight and which to let burn. I said it was simple but it definitely isn&#8217;t easy.</p><p>Essentially, you have to say no. Which means letting people down. And being okay with people seeing you as the &#8220;bad guy&#8221; because you didn&#8217;t help them. That&#8217;s unfortunately, the cost of setting boundaries. You have to learn to undo the reputation that got you where you are.</p><p>I don&#8217;t know about you, but that&#8217;s the hardest part for me. Even though fire-fighting is stressful, there&#8217;s a camaraderie to it. You have people around you trying to solve the same problem and when you do, you feel like a hero.</p><p>That elated sense of accomplishment when you fixed something under pressure or delivered when the timeline was ridiculous is unparalleled.</p><p>When you&#8217;re building things that prevent the next ten fires, nobody even knows it happened. The system rewards the dramatic rescue, not the prevention. And unfortunately, making people more efficient is less dramatic than rescuing them from projects.</p><h2>Balancing Tools and Projects</h2><p>I&#8217;ve definitely not figured this out. I still have weeks where every day is reactive. But I am trying to get better at protecting that all too important tool-building time.</p><p>Also, I have noticed that if you&#8217;re only valuable because you fix things, that&#8217;s a trap. I mean, my value isn&#8217;t speed or being &#8220;on-call&#8221; all the time. It should be my expertise and that means I should be working on things that bring the most value.</p><p>That could be fire-fighting if the project was really high profile and valuable. Or it could be tool-building because there is something vital that needs to be built.</p><p>The point here is that if I see something that I can build that prevents fires, I should do that, instead of wanting to work on projects all the time. Because it&#8217;s all too easy to get swept up by the urgency of projects.</p><p>The art is in balancing the billable and urgent projects with building things that actually make a long term difference.</p><div><hr></div><p>If you&#8217;ve been in the same spot as me, I hope this article helped you think through things a bit more and if you&#8217;ve been wanting to build something for a while now but are stuck in fire-fighting mode, reach out by either replying or emailing me at <a href="mailto:braden@bradenkoh.com.">braden@bradenkoh.com.</a> Maybe we&#8217;ll find something awesome to work on together.</p><p>As always, </p><p>Thanks for reading.</p><p>~Braden </p>]]></content:encoded></item><item><title><![CDATA[When Did Your Best Tool Become a Liability?]]></title><description><![CDATA[Don't wait until it's too late.]]></description><link>https://www.codedshapes.com/p/does-your-tool-still-fit-the-way</link><guid isPermaLink="false">https://www.codedshapes.com/p/does-your-tool-still-fit-the-way</guid><dc:creator><![CDATA[Braden Koh]]></dc:creator><pubDate>Thu, 18 Jun 2026 00:01:18 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!1pHx!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56693c59-2688-4c5c-8284-eb38b5ca045a_3300x1858.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!1pHx!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56693c59-2688-4c5c-8284-eb38b5ca045a_3300x1858.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!1pHx!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56693c59-2688-4c5c-8284-eb38b5ca045a_3300x1858.png 424w, https://substackcdn.com/image/fetch/$s_!1pHx!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56693c59-2688-4c5c-8284-eb38b5ca045a_3300x1858.png 848w, https://substackcdn.com/image/fetch/$s_!1pHx!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56693c59-2688-4c5c-8284-eb38b5ca045a_3300x1858.png 1272w, https://substackcdn.com/image/fetch/$s_!1pHx!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56693c59-2688-4c5c-8284-eb38b5ca045a_3300x1858.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!1pHx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56693c59-2688-4c5c-8284-eb38b5ca045a_3300x1858.png" width="1456" height="820" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/56693c59-2688-4c5c-8284-eb38b5ca045a_3300x1858.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:820,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2500189,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.codedshapes.com/i/201821978?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56693c59-2688-4c5c-8284-eb38b5ca045a_3300x1858.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!1pHx!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56693c59-2688-4c5c-8284-eb38b5ca045a_3300x1858.png 424w, https://substackcdn.com/image/fetch/$s_!1pHx!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56693c59-2688-4c5c-8284-eb38b5ca045a_3300x1858.png 848w, https://substackcdn.com/image/fetch/$s_!1pHx!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56693c59-2688-4c5c-8284-eb38b5ca045a_3300x1858.png 1272w, https://substackcdn.com/image/fetch/$s_!1pHx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56693c59-2688-4c5c-8284-eb38b5ca045a_3300x1858.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>About ten years ago, a steel roof panel fabrication company built an internal tool that changed how they worked. With some inputs and a button, the tool turned an engineer-designed Excel spreadsheet into a 3D model and drawings. It became an integral part of their client delivery process.</p><p>For what they needed at the time, it was perfect. They delivered faster and more consistently than they ever had before.</p><p>But over the decade, things changed. The company grew and started taking on more custom projects from clients. They expanded from one product line to five. They are now also looking to migrate to Tekla Structures, a more modern program than what they were using. And all this while, there were no updates to the tool. It still used the same templates and workflows from a decade ago.</p><p>I was brought in because they wanted to explore migrating their tool to Tekla. I thought it was going to be straight forward, after all, most companies don&#8217;t have such a strong workflow. But what I found instead, was a tool that was poorly designed, full of hard-coded variables and worst of all deeply entwined with old processes. The kind of thing where changing one thing breaks everything else, a glass cannon, if you will.</p><p>The tool also only worked for one out of five product lines. The templates that once standardized their process now blocked the custom work their clients were asking for. And moving to Tekla meant an overhaul of 15 years of accumulated process decisions and assets.</p><p>Needless to say, the quote was expensive. And sadly but unsurprisingly, they didn&#8217;t accept it.</p><div class="callout-block" data-callout="true"><p><em>Hi, I&#8217;m Braden</em></p><p><em>I help teams be more efficient in the AEC Industry, then share stories about it here. I also have <a href="https://www.codedshapes.com/p/scripository">courses, guides and scripts</a> as part of <a href="https://www.codedshapes.com/p/start-here">CodedShapes Pro</a><br>Check it out if that sounds like you.</em></p><p><em>If you&#8217;re new to CodedShapes, welcome! You might enjoy these:</em></p><ul><li><p><em><a href="https://www.codedshapes.com/p/how-to-know-if-your-workflow-is-actually">How to know if your workflow is actually worth automating</a></em></p></li><li><p><em><a href="https://www.codedshapes.com/p/stop-using-grasshopper-for-everything">Stop using Grasshopper for everything</a></em></p></li><li><p><em><a href="https://www.codedshapes.com/p/applying-computational-design-where">How to apply computational design to your projects</a></em></p></li></ul></div><h2>How tools drift</h2><p>So this is actually one of the most common ways internal tools become a problem. The tool was right when it was built. It met the needs of the entire business. In fact, it even enhanced their delivery.</p><p>But time doesn&#8217;t stop and neither do the needs of the business. As they grew, <a href="https://www.codedshapes.com/p/the-cost-of-inheriting-other-peoples?r=yraxj">the people that worked on the tool left</a> and it was never maintained nor updated. <a href="https://www.codedshapes.com/p/what-happens-when-the-person-who">When that happens, the context for why the tool was built the way it was goes with them.</a> The tool bifurcated from what the business needed it to do. Yet, they kept using it because it was easier to workaround it than to update it, at least, until now.</p><p>In my experience, there are three ways a tool falls out of alignment with the people using it.</p><h4><strong>The process changed but the tool didn&#8217;t.</strong></h4><p>The team refines how they work. They adopt new standards, restructure how they deliver projects, maybe even expand into a new line of business. But the tool stays locked in time.</p><p>Sometimes it&#8217;s because nobody budgeted for updates or maintenance. But most of the time it&#8217;s the sunk cost fallacy, companies think once they invested in building the tool, they should only reap the rewards. That they&#8217;ve invested three months into development, so why would they keep putting money into it?</p><h4><strong>Success expanded the scope.</strong></h4><p>Counterintuitively, sometimes success is <em>why</em> internal tools fail. I&#8217;ve seen cases where the first release was so well-received that requests flooded in. And instead of redesigning and integrating those properly, new features just got tacked on. And on. And on. Until updating it means untangling years of organic growth that was never structured to scale.</p><p>The tool kept taking on more responsibility without the proper foundations to support it. <a href="https://www.codedshapes.com/p/what-do-you-actually-deliver?r=yraxj">Making a tool for one person and making a tool for a company are very different endeavors.</a> So, it becomes more brittle as time passes, <a href="https://www.codedshapes.com/p/your-script-doesnt-need-to-work-on">making both the usage and maintenance of the tool progressively harder.</a></p><h4><strong>The team outgrew it.</strong></h4><p>Tools work best when there&#8217;s a solid process behind them. The fabrication company built templates for their tool, which is smart because the more standardized the process, the easier it is to automate on top of it. That meant for repeat clients, they could save about 50% of turnaround time.</p><p>But adding templates also meant tightly coupling the tool to their old program. And as the company took on more custom work and expanded their product lines, they outgrew those templates. Every time they tried to update them, something broke. So they stopped trying and just worked around it instead.</p><p>Now, the templates that once sped up their delivery, now hindered the work they actually needed to do. The tool went from working <em>for</em> them to working <em>against</em> them.</p><div class="pullquote"><p>Subscribe to CodedShapes and I&#8217;ll send you my free guide on how to actually apply technology to your projects</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.codedshapes.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.codedshapes.com/subscribe?"><span>Subscribe now</span></a></p></div><h2>Why it&#8217;s hard to notice</h2><p>These three things happen when nobody&#8217;s monitoring the alignment between the tool and the company. It also doesn&#8217;t help that the tool doesn&#8217;t give you any indication of misalignment.</p><p>The tool technically still works and since it&#8217;s too fragile to update, people just work around it. They add a manual workaround here, a workaround there. Each one doesn&#8217;t feel like a big deal. But, over time, these workarounds then become the <em>default mode of operating</em>.</p><p>The fabrication company only found out about this misalignment when market pressure forced them to move. By then, fixing it was expensive and an operational nightmare, when it could have been a series of small, incremental updates spread over years.</p><h2>Functional vs alignment</h2><p>So, it comes down to what I call functional vs alignment.</p><p>Most tools <em>work</em>, they are functional. You put in the inputs and it spits out a result. It does exactly what it was designed to do.</p><p>But that&#8217;s the baseline, it&#8217;s what any tool should do at its minimum. The better question is whether the tool is <em>aligned</em> to the way you work. As in, when you have new processes, does the tool <em>work the way we want it to</em>?</p><p>&#8220;Functional&#8221; is a technical question. &#8220;Alignment&#8221; is then a people and process question. It&#8217;s about whether the tool matches the way the team actually operates <em>right now</em>.</p><p>A tool can pass every technical check and still be <a href="https://www.codedshapes.com/p/this-is-why-they-dont-trust-us">the wrong tool for the job</a>. And depending on how far the tool has drifted from the current process, it becomes a burden rather than an advantage.</p><p>That&#8217;s much harder to find because you can&#8217;t test for it. There&#8217;s no error message that says &#8220;this tool no longer fits your process.&#8221; And in fact, what people don&#8217;t always realize is that <a href="https://www.codedshapes.com/p/there-is-no-promised-land?r=yraxj">the more you build now, the more you have to maintain</a>.</p><p>Misalignment is dangerous precisely because it&#8217;s not visible until it&#8217;s already expensive to fix.</p><h2>What actually fixes this</h2><p>The instinct is usually to rebuild. A clean slate with new requirements and fresh energy. That&#8217;s what the fabrication company wanted. They didn&#8217;t want to deal with the complexity of an old, poorly designed tool. So the idea, was to migrate what made the old tool work into a new one.</p><p>Which for them, even though they declined my offer, is the best move. Because the old tool has diverged too far from the original design. But if they simply rebuilt the tool and not maintained it, they would be repeating this cycle over again.</p><p>The good news, is that there are two things anyone can do to break the cycle. They are simple but like most things, they aren&#8217;t easy.</p><h4><strong>Check the fit regularly.</strong></h4><p>This is the biggest lever you have. Any time an existing tool causes friction or you find yourself making a workaround, ask: <em>does this tool still fit our process</em>?</p><p>This single question combined with having regular review sessions will ensure that the tool is aligned with how any business is moving. If there&#8217;s friction between the tool and the <em>way you&#8217;re working</em>, it&#8217;s a signal that the tool might be out of date and it&#8217;s time to put in a fix while it&#8217;s small.</p><p>And if you can document everything diligently, you end up with a history of how both the tool and your process have evolved, which is incredibly useful the next time someone asks &#8220;why does it work this way?&#8221;</p><h4><strong>Make room for small changes.</strong></h4><p>If the person closest to the tool can see the drift but can&#8217;t do anything about it, you&#8217;re just watching the problem grow. It doesn&#8217;t always mean rebuilding. Sometimes people just need the room to make incremental changes without it turning into a budgetary affair.</p><p>I have seen this time and time again when drafters make manual workarounds for internal Revit plugins. Whether the plugin really should just be updated but the company didn&#8217;t want to invest in the plugins anymore until it was causing them too much trouble.</p><p>If you budget for maintenance from the beginning, smaller adjustments made earlier will cost a fraction of what they cost later. Let the problems accumulate and the effort / time it takes to fix them will compound.</p><h2>When the tool has already drifted too far</h2><p>Okay, what if you&#8217;re already in trouble? The workarounds have calcified and incremental updates just makes things worse.</p><p>Then, unfortunately, you do have to rip off the band-aid and rebuild. But this time you have the chance to do it right, with proper design, documentation, and communication. You give the new tool a better chance of surviving longer than the old one.</p><p>It&#8217;s expensive but there are some suggestions on how to ease the cost of it. Like building features incrementally or rolling out new updates over a period of time rather than a hard switch between the old and new.</p><h2>The hard part was never building it</h2><p>Building the right tool is a moment in time. The requirements are clear, there&#8217;s energy and momentum. People are excited, you have AI, and it can even be fun.</p><p>The hard part is keeping it the right tool as time goes on. I keep coming back to maintenance because I&#8217;ve seen tools that had good intentions and design decay from the harsh reality of time and changing business needs. If a tool is critical to your business, it should evolve with the business. Not stop the day it launched.</p><p>And I get why companies don&#8217;t prioritize this. Tool maintenance isn&#8217;t a full time job, it needs attention regularly but not constantly. The problem is that hiring someone just for that is hard to justify. Which is why the default is to only work on it during their &#8220;free time&#8221;. Maintenance, as important as it is, gets squeezed in-between projects.</p><p>That&#8217;s a lot of what I do. Yes, I build tools but I also stay close to the work after we&#8217;re done. After we build something, we have what I call a &#8220;Hypercare phase&#8221;. A dedicated time each month specifically for the kind of alignment work that we&#8217;ve seen here. It&#8217;s not squeezed into free time nor is it only when something breaking, it&#8217;s built into the engagement from the start.</p><p>If you&#8217;ve got a tool that still works but doesn&#8217;t quite fit anymore, or if you&#8217;re about to build something, I&#8217;d love to hear about it. Simply reply to this email or use the button below to book a call.</p><div class="pullquote"><p>If you&#8217;re thinking about bringing computational design into a project, I&#8217;m happy to talk through what you&#8217;re working on. </p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://calendly.com/braden-codedconstructs/30-minute-chat&quot;,&quot;text&quot;:&quot;Chat With Me&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://calendly.com/braden-codedconstructs/30-minute-chat"><span>Chat With Me</span></a></p></div><p></p><p>Thanks for reading,</p><p>Braden</p>]]></content:encoded></item><item><title><![CDATA[Nobody Knows as Much as You Think They Do]]></title><description><![CDATA[We're all trying to figure it out]]></description><link>https://www.codedshapes.com/p/nobody-knows-as-much-as-you-think</link><guid isPermaLink="false">https://www.codedshapes.com/p/nobody-knows-as-much-as-you-think</guid><dc:creator><![CDATA[Braden Koh]]></dc:creator><pubDate>Thu, 11 Jun 2026 00:00:38 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!2OnQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61519c13-589a-4958-98c6-2a5960202673_3300x1858.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!2OnQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61519c13-589a-4958-98c6-2a5960202673_3300x1858.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!2OnQ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61519c13-589a-4958-98c6-2a5960202673_3300x1858.png 424w, https://substackcdn.com/image/fetch/$s_!2OnQ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61519c13-589a-4958-98c6-2a5960202673_3300x1858.png 848w, https://substackcdn.com/image/fetch/$s_!2OnQ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61519c13-589a-4958-98c6-2a5960202673_3300x1858.png 1272w, https://substackcdn.com/image/fetch/$s_!2OnQ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61519c13-589a-4958-98c6-2a5960202673_3300x1858.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!2OnQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61519c13-589a-4958-98c6-2a5960202673_3300x1858.png" width="1456" height="820" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/61519c13-589a-4958-98c6-2a5960202673_3300x1858.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:820,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2951941,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.codedshapes.com/i/200982058?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61519c13-589a-4958-98c6-2a5960202673_3300x1858.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!2OnQ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61519c13-589a-4958-98c6-2a5960202673_3300x1858.png 424w, https://substackcdn.com/image/fetch/$s_!2OnQ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61519c13-589a-4958-98c6-2a5960202673_3300x1858.png 848w, https://substackcdn.com/image/fetch/$s_!2OnQ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61519c13-589a-4958-98c6-2a5960202673_3300x1858.png 1272w, https://substackcdn.com/image/fetch/$s_!2OnQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61519c13-589a-4958-98c6-2a5960202673_3300x1858.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I had this colleague, I&#8217;ll call him Marco, who made Grasshopper look easy.</p><p>You could throw almost any problem at him and he&#8217;d find an answer. It was honestly a little annoying.</p><p>So when we ended up working on the same Grasshopper script together, I figured I could just sit back and watch. I had my own ideas on how to solve it, but I was sure Marco would just bulldoze his way through like he always did.</p><p>I remember walking into our meeting ready to defend myself. Ready to make the argument about why my approach was better. But there was no argument, in fact, Marco actually asked for my approach. Instead of a fight, we had a good discussion about the scripting approach. Marco wanted my help and opinion more than I thought. Could it be, that Perfect Marco needed help?</p><p>The script was a tricky problem to solve. We&#8217;d brainstorm something, test it, hit a wall, re-convene to try something else over and over again. Eventually, we got it working and it became the cornerstone of that project. The project could not have been delivered if it wasn&#8217;t for us.</p><p>I should be proud but all I could think about was how horrible I was to Marco.</p><div class="callout-block" data-callout="true"><p><em>Hi, I&#8217;m Braden</em></p><p><em>I help teams be more efficient in the AEC Industry, then share stories about it here. I also have <a href="https://www.codedshapes.com/p/scripository">courses, guides and scripts</a> as part of <a href="https://www.codedshapes.com/p/start-here">CodedShapes Pro</a><br>Check it out if that sounds like you.</em></p><p><em>If you&#8217;re new to CodedShapes, welcome! You might enjoy these:</em></p><ul><li><p><em><a href="https://www.codedshapes.com/p/how-to-know-if-your-workflow-is-actually">How to know if your workflow is actually worth automating</a></em></p></li><li><p><em><a href="https://www.codedshapes.com/p/stop-using-grasshopper-for-everything">Stop using Grasshopper for everything</a></em></p></li><li><p><em><a href="https://www.codedshapes.com/p/applying-computational-design-where">How to apply computational design to your projects</a></em></p></li></ul></div><p>In the beginning, instead of trying to solve the problem, I kicked back and let Marco handle everything. Even after he sought my help, I just watched intently, waiting for the moment he&#8217;d trip up. I wanted to see the cracks. To be the one who got to say &#8220;ha I knew you weren&#8217;t perfect.&#8221;</p><p>But when we worked together, Marco continuously valued my work. It felt more like a partnership figuring things out instead of him bulldozing me with his ideals. What made me open up more was when I realized Marco didn&#8217;t actually know everything. He wasn&#8217;t in his Ivory tower looking down at me, he was figuring things out the same way I was, just with less insecurity about asking for help.</p><p>After the project finished, I took some time to reflect on why Marco had bothered me so much in the beginning. And it sounds clich&#233;, but I had confused fluency with certainty. Watching someone move quickly and decisively through problems had made me feel small. Like I had missed something. Like maybe if I just studied more, spent more time on problems, I too would be Marco.</p><p>But working with him reminded me that <a href="https://www.codedshapes.com/p/there-is-no-promised-land">there&#8217;s no promised land</a>. Not for Marco. Not for me. Not for anyone. The people who look like they have everything figured out have their own battles too. And just because they seem so certain, it&#8217;s not a reflection of my own incompetence.</p><p>I knew I didn&#8217;t have to know everything but part of me always thinks that I should know more than I actually do. Like I should know more about structural analysis since I have been working in a structural firm for 6 years. Or I should know more about software since I have been a computational designer for 8 years now. There&#8217;s always a &#8220;I should know this...&#8221;.</p><p>I am still trying but I now know that other people&#8217;s certainty is not a reflection of my incompetence. In fact, if I don&#8217;t know something I should just ask. Just because I am in the same field as someone and that someone knows more, it doesn&#8217;t mean I am less skilled.</p><p>So if you&#8217;ve been hesitating to ask for help because you feel like you should already know, the people you&#8217;d ask probably feel that way sometimes too. I definitely feel that way all the time.</p><p>We&#8217;re all just doing our best to figure it out.</p><div class="pullquote"><p>Thanks for reading <br>Subscribe to CodedShapes and I&#8217;ll send you my free guide on how to actually apply technology to your projects.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.codedshapes.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.codedshapes.com/subscribe?"><span>Subscribe now</span></a></p></div>]]></content:encoded></item><item><title><![CDATA[Modelling The Winton Guest House Part 4]]></title><description><![CDATA[Part 4 / 4 for modelling the Winton Guest House with Grasshopper]]></description><link>https://www.codedshapes.com/p/modelling-the-winton-guest-house-5b4</link><guid isPermaLink="false">https://www.codedshapes.com/p/modelling-the-winton-guest-house-5b4</guid><dc:creator><![CDATA[Braden Koh]]></dc:creator><pubDate>Tue, 09 Jun 2026 00:00:32 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!D64Y!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff950c975-f149-4ba6-8458-4014441db36a_3300x1858.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!D64Y!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff950c975-f149-4ba6-8458-4014441db36a_3300x1858.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!D64Y!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff950c975-f149-4ba6-8458-4014441db36a_3300x1858.png 424w, https://substackcdn.com/image/fetch/$s_!D64Y!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff950c975-f149-4ba6-8458-4014441db36a_3300x1858.png 848w, https://substackcdn.com/image/fetch/$s_!D64Y!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff950c975-f149-4ba6-8458-4014441db36a_3300x1858.png 1272w, https://substackcdn.com/image/fetch/$s_!D64Y!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff950c975-f149-4ba6-8458-4014441db36a_3300x1858.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!D64Y!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff950c975-f149-4ba6-8458-4014441db36a_3300x1858.png" width="1456" height="820" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f950c975-f149-4ba6-8458-4014441db36a_3300x1858.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:820,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3146202,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.codedshapes.com/i/200950455?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff950c975-f149-4ba6-8458-4014441db36a_3300x1858.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!D64Y!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff950c975-f149-4ba6-8458-4014441db36a_3300x1858.png 424w, https://substackcdn.com/image/fetch/$s_!D64Y!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff950c975-f149-4ba6-8458-4014441db36a_3300x1858.png 848w, https://substackcdn.com/image/fetch/$s_!D64Y!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff950c975-f149-4ba6-8458-4014441db36a_3300x1858.png 1272w, https://substackcdn.com/image/fetch/$s_!D64Y!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff950c975-f149-4ba6-8458-4014441db36a_3300x1858.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>This is part 4 of the <a href="https://www.codedshapes.com/p/the-winton-guest-house-modelling?r=yraxj">Winton Guest House walk through</a>. The series:</p><ul><li><p><a href="https://www.codedshapes.com/p/winton-guest-house-part-1?r=yraxj">Part 1: Modelling the Fireplace, Living Room and Bedroom</a></p></li><li><p><a href="https://www.codedshapes.com/p/modelling-the-winton-guest-house?r=yraxj">Part 2: Modelling the Garage and Loft</a></p></li><li><p><a href="https://www.codedshapes.com/p/modelling-the-winton-guest-house-3f8?r=yraxj">Part 3: Modelling the Second Bedroom</a></p></li><li><p>Part 4: Script Organisation (this article)</p></li></ul>
      <p>
          <a href="https://www.codedshapes.com/p/modelling-the-winton-guest-house-5b4">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[The Cost of Inheriting Other People's Tools]]></title><link>https://www.codedshapes.com/p/the-cost-of-inheriting-other-peoples</link><guid isPermaLink="false">https://www.codedshapes.com/p/the-cost-of-inheriting-other-peoples</guid><dc:creator><![CDATA[Braden Koh]]></dc:creator><pubDate>Fri, 05 Jun 2026 00:00:58 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Pzzn!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f7aa2eb-f2a8-425e-a669-7a8564ad33bd_3300x1858.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Pzzn!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f7aa2eb-f2a8-425e-a669-7a8564ad33bd_3300x1858.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Pzzn!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f7aa2eb-f2a8-425e-a669-7a8564ad33bd_3300x1858.png 424w, https://substackcdn.com/image/fetch/$s_!Pzzn!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f7aa2eb-f2a8-425e-a669-7a8564ad33bd_3300x1858.png 848w, https://substackcdn.com/image/fetch/$s_!Pzzn!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f7aa2eb-f2a8-425e-a669-7a8564ad33bd_3300x1858.png 1272w, https://substackcdn.com/image/fetch/$s_!Pzzn!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f7aa2eb-f2a8-425e-a669-7a8564ad33bd_3300x1858.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Pzzn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f7aa2eb-f2a8-425e-a669-7a8564ad33bd_3300x1858.png" width="1456" height="820" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2f7aa2eb-f2a8-425e-a669-7a8564ad33bd_3300x1858.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:820,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2858999,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.codedshapes.com/i/200400162?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f7aa2eb-f2a8-425e-a669-7a8564ad33bd_3300x1858.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Pzzn!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f7aa2eb-f2a8-425e-a669-7a8564ad33bd_3300x1858.png 424w, https://substackcdn.com/image/fetch/$s_!Pzzn!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f7aa2eb-f2a8-425e-a669-7a8564ad33bd_3300x1858.png 848w, https://substackcdn.com/image/fetch/$s_!Pzzn!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f7aa2eb-f2a8-425e-a669-7a8564ad33bd_3300x1858.png 1272w, https://substackcdn.com/image/fetch/$s_!Pzzn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f7aa2eb-f2a8-425e-a669-7a8564ad33bd_3300x1858.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Most companies have internal tools nobody&#8217;s happy with but nobody will touch.</p><p>You know the ones. The tool sort of works, sort of doesn&#8217;t. The person maintaining it can see what&#8217;s wrong but can&#8217;t fix it. Leadership knows it&#8217;s not great but won&#8217;t approve rebuilding it. So it just sits there, collecting dust or whatever digital tools do when they aren&#8217;t used.</p><h2>The inheritance problem</h2><p>Here&#8217;s how it happens. Someone builds an internal tool. It works well enough that everyone starts using it. It becomes a part of the core process of the company. But then that person leaves.</p><p>The company scrambles because they can&#8217;t afford to lose the tool, so they hand it to someone else. But when you inherit a tool, you don&#8217;t just get the code. You take on all the assumptions, decisions, and constraints that went into building it. And none of that is written down anywhere.</p><p>Sure, if you&#8217;re lucky, you get a handover. Maybe a few meetings where the original developer dumps information on you. Maybe even some documentation (hopefully readable, not 100% AI-generated). But that only tells you <em>how</em> the tool works. You don&#8217;t get the <em>why</em>. Why this approach? What were the constraints? What assumptions were made? What&#8217;s the guiding principle of the entire codebase?</p><p>All of that is tucked neatly in the head of the person who just left.</p><p>So now you&#8217;re stuck reverse-engineering intent from output. AI is really good now but even it can&#8217;t tell you why things are created a certain way. And when you can see problems but don&#8217;t have the context to understand what&#8217;s safe to change, you&#8217;ve got two options.</p><div class="callout-block" data-callout="true"><p><em>Hi, I&#8217;m Braden</em></p><p><em>I help teams be more efficient in the AEC Industry, then share stories about it here. I also have <a href="https://www.codedshapes.com/p/scripository">courses, guides and scripts</a> as part of <a href="https://www.codedshapes.com/p/start-here">CodedShapes Pro</a><br>Check it out if that sounds like you.</em></p><p><em>If you&#8217;re new to CodedShapes, welcome! You might enjoy these:</em></p><ul><li><p><em><a href="https://www.codedshapes.com/p/how-to-know-if-your-workflow-is-actually">How to know if your workflow is actually worth automating</a></em></p></li><li><p><em><a href="https://www.codedshapes.com/p/stop-using-grasshopper-for-everything">Stop using Grasshopper for everything</a></em></p></li><li><p><em><a href="https://www.codedshapes.com/p/applying-computational-design-where">How to apply computational design to your projects</a></em></p></li></ul></div><h3>Fully Rebuild</h3><p>Pitch a full rebuild. You put together a business case with a timeline, a budget and reasons why starting from scratch is better. It&#8217;s the whole &#8220;I can do this better and 10x cheaper&#8221; attitude.</p><p>But leadership weighs the cost of rebuilding something that &#8220;already works but &#8216;better&#8217;&#8221; and usually the answer is no.</p><h3>Add to it</h3><p>Which leads to the more common option of just adding to it. No refactor, just keeping adding on to the existing codebase. And soon enough it becomes a house of cards because the <em>intent and context</em> of the tool was never communicated.</p><p>You&#8217;re too scared to modify the core, so you build on top of it. Workarounds, band-aids, adapters, all just to keep the tool running. But each one makes the tool a bit more fragile, a bit harder to maintain.</p><p>It&#8217;s like a garage you&#8217;re afraid to clean out, it&#8217;s easier to just keep stacking boxes than to deal with what&#8217;s actually inside. But eventually, you&#8217;re going to run out of space and have to deal with the contents.</p><h2>Why this keeps happening</h2><p>My theory is that it&#8217;s a misplacement of our attention.</p><p>People only care about a tool twice: <strong>when it&#8217;s being built</strong> and <strong>when it breaks</strong>. Everything in between is invisible.</p><p>The building phase gets all the attention. There&#8217;s a budget, momentum and excitement in the air. There&#8217;s constant updates on the tool and when it launches, people clap for it because it works and it&#8217;s <em>finished</em>.</p><p>From that point on, no one actively working on it and there&#8217;s no budget for maintenance. Maintenance doesn&#8217;t look like work. You can point at a new feature, a launch, a demo. But you can&#8217;t point at &#8220;keeping something running that everyone assumes just runs.&#8221;</p><p>The reality is that there&#8217;s no &#8220;finish&#8221; when it comes to tools. They still need to be documented, updated and maintained.</p><p>Part of me understands this because if you think about it from leadership&#8217;s perspective. They approved the budget. They gave someone time to build it and they&#8217;ve rolled it out. Success. The tool is done, so it must be working. Move on to the next thing.</p><p>Maintenance is not a full time job and it&#8217;s harder to justify it in your timesheet. Which is why it&#8217;s often just squeezed in with the other more pressing things. Well, until it breaks, then everyone rushes you to fix it.</p><div class="pullquote"><p>Thanks for reading <br>Subscribe to CodedShapes and I&#8217;ll send you my free guide on how to actually apply it to your projects.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.codedshapes.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.codedshapes.com/subscribe?"><span>Subscribe now</span></a></p></div><h2>What actually fixes this</h2><p>The real fix here is the structure around it. Software developers, whose full time job is to deliver products to customers, have figured this out. And we can learn from them.</p><p><strong>Document the assumptions, not just the code.</strong> Most handover docs explain <em>how</em> a tool works. What&#8217;s missing is <em>why</em>. Why this approach? What were the constraints? What depends on what? When assumptions are visible, the next person can make informed decisions instead of guessing. This is hard to do after the tool is done, the best way is to document as you build.</p><p><strong>Give the maintainer real authority.</strong> If someone&#8217;s responsible for a tool, they need the power to act on what they see. That means either decision-making authority over the tool&#8217;s direction, or a clear escalation path that actually leads somewhere.</p><p><strong>Treat tools as living systems, not finished products.</strong> A tool isn&#8217;t done when it launches. It&#8217;s done when it&#8217;s decommissioned. Everything in between is active work that needs to be planned for, budgeted for, and respected as real work.</p><p>None of this is glamorous and can feel like a waste of money. But it&#8217;s the key to long lasting tools beyond a single developer.</p><h2>The hard part was never building it</h2><p>Building an internal tool is exciting. There&#8217;s momentum, there&#8217;s a vision, there&#8217;s someone who knows exactly what they&#8217;re doing and why.</p><p>But that moment is temporary. The person leaves and the tool keeps running on assumptions that no one knows.</p><p>The hard part was always what comes after. Making sure the tool outlives the person who built it. Making sure the next person who touches it has the context to make good decisions.</p><p>If any of this sounds familiar, that&#8217;s because it&#8217;s happening at most companies right now. Somewhere in your organization, there&#8217;s a tool nobody&#8217;s happy with but is critical to how the company operates. What you need is a way to ensure continuity.</p><p>That&#8217;s the kind of problem I help teams solve. Not just building the tool, but ensuring that it doesn&#8217;t fall apart when the people change. If you want to talk about what that looks like for your team, reply to this email or book in a call with the button below.</p><div class="pullquote"><p>If you&#8217;re thinking about bringing computational design into a project, I&#8217;m happy to talk through how you&#8217;re framing the problem and if it&#8217;s the right solution.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://calendly.com/braden-codedconstructs/30-minute-chat&quot;,&quot;text&quot;:&quot;Chat With Me&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://calendly.com/braden-codedconstructs/30-minute-chat"><span>Chat With Me</span></a></p></div><p>Thanks for reading.</p>]]></content:encoded></item><item><title><![CDATA[Modelling The Winton Guest House Part 3]]></title><description><![CDATA[Part 3 / 4 of modelling the winton guest house]]></description><link>https://www.codedshapes.com/p/modelling-the-winton-guest-house-3f8</link><guid isPermaLink="false">https://www.codedshapes.com/p/modelling-the-winton-guest-house-3f8</guid><dc:creator><![CDATA[Braden Koh]]></dc:creator><pubDate>Tue, 02 Jun 2026 02:00:11 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!8G0O!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e5fbacc-398a-4947-b346-a4054ca66ba1_3300x1858.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!8G0O!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e5fbacc-398a-4947-b346-a4054ca66ba1_3300x1858.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!8G0O!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e5fbacc-398a-4947-b346-a4054ca66ba1_3300x1858.png 424w, https://substackcdn.com/image/fetch/$s_!8G0O!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e5fbacc-398a-4947-b346-a4054ca66ba1_3300x1858.png 848w, https://substackcdn.com/image/fetch/$s_!8G0O!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e5fbacc-398a-4947-b346-a4054ca66ba1_3300x1858.png 1272w, https://substackcdn.com/image/fetch/$s_!8G0O!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e5fbacc-398a-4947-b346-a4054ca66ba1_3300x1858.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!8G0O!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e5fbacc-398a-4947-b346-a4054ca66ba1_3300x1858.png" width="1456" height="820" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1e5fbacc-398a-4947-b346-a4054ca66ba1_3300x1858.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:820,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3060676,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.codedshapes.com/i/198383348?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e5fbacc-398a-4947-b346-a4054ca66ba1_3300x1858.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!8G0O!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e5fbacc-398a-4947-b346-a4054ca66ba1_3300x1858.png 424w, https://substackcdn.com/image/fetch/$s_!8G0O!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e5fbacc-398a-4947-b346-a4054ca66ba1_3300x1858.png 848w, https://substackcdn.com/image/fetch/$s_!8G0O!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e5fbacc-398a-4947-b346-a4054ca66ba1_3300x1858.png 1272w, https://substackcdn.com/image/fetch/$s_!8G0O!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e5fbacc-398a-4947-b346-a4054ca66ba1_3300x1858.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>This is part 3 of the Winton Guest House walkthrough. The series:</p><ul><li><p>Part 1: Modelling the Fireplace, Living Room and Bedroom</p></li><li><p>Part 2: Modelling the Garage and Loft</p></li><li><p>Part 3: Modelling the Second Bedroom (this article)</p></li><li><p>Part 4: Script Organisation</p></li></ul><div><hr></div><p>If you&#8217;ve read through <a href="https://www.codedshapes.com/p/winton-guest-house-part-2">Part 2</a>, you now have five of the six structures in your script.</p><p>Hopefully, you&#8217;ve been building along and giving it a go yourself. Either ways, it&#8217;s time to show you how I built the last one.</p><p>Before we dive in, a reminder: the best way to learn is to try it and be uncomfortable on your own, then use this guide as a reference against your own. That&#8217;s the whole point of these guides.</p><p>Okay, without further delay, let&#8217;s start.</p>
      <p>
          <a href="https://www.codedshapes.com/p/modelling-the-winton-guest-house-3f8">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[If Scripts Save Us Time, Why Am I Building the Same One for the 15th Time?]]></title><description><![CDATA[Seriously though, aren't we meant to be more efficient]]></description><link>https://www.codedshapes.com/p/if-scripts-save-us-time-why-am-i</link><guid isPermaLink="false">https://www.codedshapes.com/p/if-scripts-save-us-time-why-am-i</guid><dc:creator><![CDATA[Braden Koh]]></dc:creator><pubDate>Thu, 28 May 2026 02:00:51 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!SUQx!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa97205bc-9120-4a16-b0bd-310a35c03de4_3300x1858.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!SUQx!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa97205bc-9120-4a16-b0bd-310a35c03de4_3300x1858.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!SUQx!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa97205bc-9120-4a16-b0bd-310a35c03de4_3300x1858.png 424w, https://substackcdn.com/image/fetch/$s_!SUQx!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa97205bc-9120-4a16-b0bd-310a35c03de4_3300x1858.png 848w, https://substackcdn.com/image/fetch/$s_!SUQx!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa97205bc-9120-4a16-b0bd-310a35c03de4_3300x1858.png 1272w, https://substackcdn.com/image/fetch/$s_!SUQx!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa97205bc-9120-4a16-b0bd-310a35c03de4_3300x1858.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!SUQx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa97205bc-9120-4a16-b0bd-310a35c03de4_3300x1858.png" width="1456" height="820" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a97205bc-9120-4a16-b0bd-310a35c03de4_3300x1858.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:820,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2740831,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.codedshapes.com/i/198661895?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa97205bc-9120-4a16-b0bd-310a35c03de4_3300x1858.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!SUQx!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa97205bc-9120-4a16-b0bd-310a35c03de4_3300x1858.png 424w, https://substackcdn.com/image/fetch/$s_!SUQx!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa97205bc-9120-4a16-b0bd-310a35c03de4_3300x1858.png 848w, https://substackcdn.com/image/fetch/$s_!SUQx!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa97205bc-9120-4a16-b0bd-310a35c03de4_3300x1858.png 1272w, https://substackcdn.com/image/fetch/$s_!SUQx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa97205bc-9120-4a16-b0bd-310a35c03de4_3300x1858.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Fifteen script versions and 26 versions of the model.</p><p>No, not fifteen variations. Fifteen <em>different</em> scripts. And, 25 freaking new models. Each one was created because nothing could be locked down and &#8220;something more important&#8221; always kept coming up.</p><p>Ten months ago, it was the material, we changed from timber to steel. Then, the start of this year, we took out the bracing between the modules. Just last month, we went from 6 columns to 24 then back down to 20.</p><p>The best part? We were delivering in a construction stage. Which is typically when things should have been decided. We should be documenting for the actual construction not deciding on parameters.</p><p>Yes, it&#8217;s a complex project with many moving pieces. Yes, things change, we get new requirements. But somewhere around script number 8, we were no longer iterating, we were starting over again. And again. And oh, again. Oh, wait and again.</p><h2>The false promise of &#8220;it&#8217;s just a script&#8221;</h2><p>This client had been sold the dream that with scripts, you move fast even while changes were happening. You know, explore options, generate variations, instant turnaround, that sort of thing. And that&#8217;s technically not wrong. But it only works if the <em>core logic of the workflow stays the same</em>.</p><p>The videos you see on LinkedIn about sliding parameters and getting new models is true. But it&#8217;s <a href="https://open.substack.com/pub/bradenkoh/p/this-is-why-they-dont-trust-us?r=yraxj&amp;utm_campaign=post&amp;utm_medium=web&amp;showWelcomeOnShare=true">not the full story</a>.</p><p>There are an infinite number of ways to solve any given problem. So, to say a script can handle all those changes is an unfair assumption. <a href="https://www.codedshapes.com/p/computational-design-isnt-magic?r=yraxj">It&#8217;s a good tool but it&#8217;s not magic.</a></p><p>When you see a model being generated by a script, the output might look the same, but the process is not. Which is why when someone keeps introducing changes without knowing the impact, it can mean the difference between sliding a parameter and rebuilding the entire script. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!s8k3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fffa89bc5-8a1a-4b97-ab72-dd441adfe709_1451x837.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!s8k3!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fffa89bc5-8a1a-4b97-ab72-dd441adfe709_1451x837.png 424w, https://substackcdn.com/image/fetch/$s_!s8k3!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fffa89bc5-8a1a-4b97-ab72-dd441adfe709_1451x837.png 848w, https://substackcdn.com/image/fetch/$s_!s8k3!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fffa89bc5-8a1a-4b97-ab72-dd441adfe709_1451x837.png 1272w, https://substackcdn.com/image/fetch/$s_!s8k3!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fffa89bc5-8a1a-4b97-ab72-dd441adfe709_1451x837.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!s8k3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fffa89bc5-8a1a-4b97-ab72-dd441adfe709_1451x837.png" width="1451" height="837" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ffa89bc5-8a1a-4b97-ab72-dd441adfe709_1451x837.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:837,&quot;width&quot;:1451,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:56363,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.codedshapes.com/i/198661895?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fffa89bc5-8a1a-4b97-ab72-dd441adfe709_1451x837.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!s8k3!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fffa89bc5-8a1a-4b97-ab72-dd441adfe709_1451x837.png 424w, https://substackcdn.com/image/fetch/$s_!s8k3!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fffa89bc5-8a1a-4b97-ab72-dd441adfe709_1451x837.png 848w, https://substackcdn.com/image/fetch/$s_!s8k3!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fffa89bc5-8a1a-4b97-ab72-dd441adfe709_1451x837.png 1272w, https://substackcdn.com/image/fetch/$s_!s8k3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fffa89bc5-8a1a-4b97-ab72-dd441adfe709_1451x837.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Same end model, different build process</figcaption></figure></div><p>It&#8217;s why I focus so much on the <em>intent</em> of the script rather than <a href="https://www.codedshapes.com/publish/post/190270435?r=yraxj&amp;utm_campaign=post&amp;utm_medium=web&amp;showWelcomeOnShare=true">the logic of it</a>. With AI and tools like Grasshopper, it&#8217;s now possible to solve problems any way you like. What then makes a good workflow is one that focuses on the key principles of the problem. It&#8217;s one that aligns to the parameters that are important for the project.</p><p>If you&#8217;re building a tower and the floor area is important, the design your script around that. Or if you know the client&#8217;s data is never clean, trying to create a layer between them and the tool is safer than processing their raw data.</p><p>The point here is to identify the <em>overall behaviour of the problem and distill that into rules for the workflow</em></p><p>There are a million and one parameters that you can tweak to solve a problem. You cannot create something that accounts for all of them. So, a good digital workflow is based on the vital ones and uses the rest as <em>assumptions</em>.</p><div class="callout-block" data-callout="true"><p><em>Hi, I&#8217;m Braden</em></p><p><em>I help teams be more efficient in the AEC Industry, then share stories about it here. I also have <a href="https://www.codedshapes.com/p/scripository">courses, guides and scripts</a> as part of <a href="https://www.codedshapes.com/p/start-here">CodedShapes Pro</a><br>Check it out if that sounds like you.</em></p><p><em>If you&#8217;re new to CodedShapes, welcome! You might enjoy these:</em></p><ul><li><p><em><a href="https://www.codedshapes.com/p/how-to-know-if-your-workflow-is-actually">How to know if your workflow is actually worth automating</a></em></p></li><li><p><em><a href="https://www.codedshapes.com/p/stop-using-grasshopper-for-everything">Stop using Grasshopper for everything</a></em></p></li><li><p><em><a href="https://www.codedshapes.com/p/applying-computational-design-where">How to apply computational design to your projects</a></em></p></li></ul></div><h2>Not all assumptions are equal</h2><p>So, if the problem is that changing assumptions breaks scripts, does that mean nothing can change? No. Things change all the time. That&#8217;s the very nature of projects.</p><p>But not all changes carry the same weight.</p><p>Any changes to the <em>key principles</em> will require a rebuild but &#8220;small&#8221; changes can be incorporated with little to no impact. The idea is to think of workflow variables as &#8220;hub and spoke&#8221;. Changing any &#8220;hub&#8221; parameters has a huge impact, possibly a rebuild. Changing a &#8220;spoke&#8221; parameter should ideally be accounted for or have little impact.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!lB8d!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c29dff2-5915-4935-b8c0-a20c5755c642_1451x837.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!lB8d!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c29dff2-5915-4935-b8c0-a20c5755c642_1451x837.png 424w, https://substackcdn.com/image/fetch/$s_!lB8d!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c29dff2-5915-4935-b8c0-a20c5755c642_1451x837.png 848w, https://substackcdn.com/image/fetch/$s_!lB8d!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c29dff2-5915-4935-b8c0-a20c5755c642_1451x837.png 1272w, https://substackcdn.com/image/fetch/$s_!lB8d!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c29dff2-5915-4935-b8c0-a20c5755c642_1451x837.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!lB8d!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c29dff2-5915-4935-b8c0-a20c5755c642_1451x837.png" width="1451" height="837" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2c29dff2-5915-4935-b8c0-a20c5755c642_1451x837.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:837,&quot;width&quot;:1451,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:213579,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.codedshapes.com/i/198661895?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c29dff2-5915-4935-b8c0-a20c5755c642_1451x837.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!lB8d!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c29dff2-5915-4935-b8c0-a20c5755c642_1451x837.png 424w, https://substackcdn.com/image/fetch/$s_!lB8d!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c29dff2-5915-4935-b8c0-a20c5755c642_1451x837.png 848w, https://substackcdn.com/image/fetch/$s_!lB8d!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c29dff2-5915-4935-b8c0-a20c5755c642_1451x837.png 1272w, https://substackcdn.com/image/fetch/$s_!lB8d!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c29dff2-5915-4935-b8c0-a20c5755c642_1451x837.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">This was when the parameters were well defined. No changing of the columns or material. It was simply, "what's the best plate shape that will make this work</figcaption></figure></div><p>The point here is that we can&#8217;t have an infinitely flexible workflow if we want to make our (normally very) tight deadlines.</p><p>So the framework makes sense. But most of the time, no one knows which changes actually cause the most impact. The person asking for the change <a href="https://open.substack.com/pub/bradenkoh/p/how-do-you-solve-a-problem-someone?r=yraxj&amp;utm_campaign=post&amp;utm_medium=web&amp;showWelcomeOnShare=true">doesn&#8217;t know they&#8217;re touching something foundational</a>. And the person who built the script never made that distinction visible. And to make matters worse, the person that accepts the change from the client isn&#8217;t always the person that built the script.</p><h2>But it&#8217;s really a communication problem</h2><p>That&#8217;s what this really comes down to. A gap between what the script assumes and <a href="https://open.substack.com/pub/bradenkoh/p/it-takes-two-to-build-the-right-thing?r=yraxj&amp;utm_campaign=post&amp;utm_medium=web&amp;showWelcomeOnShare=true">what everyone else understands</a> about those assumptions.</p><p>When I look back at this project, the pain wasn&#8217;t that things changed. It&#8217;s that we didn&#8217;t have a shared understanding of <em>the impact of changes before it was accepted</em>. No one knew what was priority and what other teams were dealing with. <em>There was a lack of clarity</em>.</p><p>The ideal scenario would have been, when there&#8217;s a change, everyone should know what that means for both a timeline and a budget point of view.</p><p>But even though it&#8217;s simple to say, it&#8217;s not easy to achieve. In complex projects, there are many teams and some politics that get in the way of clear communication. And understanding the downstream effects can be hard. A director I once worked with put it well:</p><p>&#8220;On a project, we&#8217;re building the plane and flying it at the same time&#8221;</p><p>It&#8217;s hard to understand the effects of our changes because we are trying to make sense of things at the same time.</p><p>But we have to try because the alternative is timeline delays, very late nights and budget blowouts. Putting in the work to clarify all assumptions and effects is one of the most valuable things you can do on a project.</p><h2>So, how do we get better at this ?</h2><p>The best way I have found is to communicate everything, and I do mean <em>everything</em>. And again, easy to say but much harder to achieve in practice.</p><p>It means letting your manager know what assumptions you are making in the script and why.</p><p>It means letting the client know your modelling process even when they think it&#8217;s not relevant.</p><p>And it means that every time there&#8217;s a change, you need to bring up why and <em>whether the ripple effect is worth it</em></p><p>Currently, there is no good way to communicate all of this. People don&#8217;t read the documents being sent. Some meetings are so long and drawn out that most people don&#8217;t even pay attention. Even emails get conflated with people defending their own work or assigning blame.</p><p>These days I use a combination of Figma boards, live documents and AI meeting transcripts to try and keep everyone on the same page. I bring these to every meeting. I&#8217;ve even sent notes from internal meetings to clients explaining how their change will impact our timelines. That was an uncomfortable thing to do but it&#8217;s part of being open and communicating more. The one thing that I have seen some other companies do is play around with AI knowledge agents to help with this.</p><p>But, it&#8217;s still messy, most projects are. And half the time, I&#8217;m reorganizing everything while trying to keep up with the project itself. But it&#8217;s better than having all those assumptions in your head and then having them sprung on you at the worst time. And how you do it isn&#8217;t really the point. The <em>conversation</em> and clarity is the point. The act of sitting down and saying &#8220;if this changes, here&#8217;s what it affects&#8221; is extremely valuable.</p><p>And it doesn&#8217;t prevent changes. It just makes the cost of those changes visible <em>before</em> someone assumes it&#8217;s a quick update and agrees to it.</p><h2>Communication is always messy</h2><p>If you are extremely busy, communicating your needs and impacts is hard. It&#8217;s likely not even on your todo list. Leveraging AI has been helpful but it still requires your time and when your deadline is tomorrow, I know every minute counts.</p><p>With so many moving pieces, different teams involved and let&#8217;s be honest, politics. Being transparent about everything is almost impossible. And trying to do this within a live project time frame makes it even harder.</p><p>But this communication debt is something that we don&#8217;t talk about enough. We spend so much time learning the tools, Grasshopper, Dynamo, Python, and not enough time learning how to make the assumptions behind our work visible to everyone else.</p><p>A vital skill here is knowing which parts of the project hold everything else up, and making sure the people around you know that too.</p><p>Fifteen scripts taught me that. Hopefully you won&#8217;t need that many.</p><p>If this sounds familiar, or you&#8217;re in the middle of a project right now, I&#8217;d love to hear about it. Reply to this email, or if you want help thinking through how your workflows handle change, <a href="https://calendly.com/braden-codedconstructs/30-min">book a discovery call</a>.</p><p>As always, thank you for reading.</p><div class="pullquote"><p>Thanks for reading <br>Subscribe to CodedShapes and I&#8217;ll send you my free guide on how to actually apply this to your projects.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.codedshapes.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.codedshapes.com/subscribe?"><span>Subscribe now</span></a></p></div>]]></content:encoded></item><item><title><![CDATA[Modelling The Winton Guest House Part 2]]></title><description><![CDATA[Part 2 / 4 of modelling the winton guest house]]></description><link>https://www.codedshapes.com/p/modelling-the-winton-guest-house</link><guid isPermaLink="false">https://www.codedshapes.com/p/modelling-the-winton-guest-house</guid><dc:creator><![CDATA[Braden Koh]]></dc:creator><pubDate>Tue, 26 May 2026 02:00:28 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!TA3j!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a964bce-1bc3-42d2-854e-d50d22d4d9d0_3300x1858.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!TA3j!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a964bce-1bc3-42d2-854e-d50d22d4d9d0_3300x1858.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!TA3j!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a964bce-1bc3-42d2-854e-d50d22d4d9d0_3300x1858.png 424w, https://substackcdn.com/image/fetch/$s_!TA3j!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a964bce-1bc3-42d2-854e-d50d22d4d9d0_3300x1858.png 848w, https://substackcdn.com/image/fetch/$s_!TA3j!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a964bce-1bc3-42d2-854e-d50d22d4d9d0_3300x1858.png 1272w, https://substackcdn.com/image/fetch/$s_!TA3j!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a964bce-1bc3-42d2-854e-d50d22d4d9d0_3300x1858.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!TA3j!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a964bce-1bc3-42d2-854e-d50d22d4d9d0_3300x1858.png" width="1456" height="820" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9a964bce-1bc3-42d2-854e-d50d22d4d9d0_3300x1858.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:820,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3060891,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.codedshapes.com/i/198382483?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a964bce-1bc3-42d2-854e-d50d22d4d9d0_3300x1858.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!TA3j!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a964bce-1bc3-42d2-854e-d50d22d4d9d0_3300x1858.png 424w, https://substackcdn.com/image/fetch/$s_!TA3j!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a964bce-1bc3-42d2-854e-d50d22d4d9d0_3300x1858.png 848w, https://substackcdn.com/image/fetch/$s_!TA3j!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a964bce-1bc3-42d2-854e-d50d22d4d9d0_3300x1858.png 1272w, https://substackcdn.com/image/fetch/$s_!TA3j!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a964bce-1bc3-42d2-854e-d50d22d4d9d0_3300x1858.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>This is part 3 of the Winton Guest House walkthrough. The series:</p><ul><li><p>Part 1: Modelling the Fireplace, Living Room and Bedroom</p></li><li><p>Part 2: Modelling the Garage and Loft</p></li><li><p>Part 3: Modelling the Second Bedroom (this article)</p></li><li><p>Part 4: Script Organisation</p></li></ul><div><hr></div><p>If you&#8217;ve read through <a href="https://www.codedshapes.com/p/winton-guest-house-part-1">Part 1</a>, you now have the <em>Fireplace</em>, <em>Chimney</em>, <em>Living Room</em> and <em>Bedroom</em> in your script.</p><p>Hopefully, you&#8217;ve read the <a href="https://www.codedshapes.com/p/the-winton-guest-house-modelling">the brief</a> and have been trying to model this on your own too.</p><p>Before we dive in, a reminder: the best way to learn is to try and solve it on your own, then use this guide as a reference. That&#8217;s the whole point of these guides. To give you a problem / project to anchor your own learning to.</p><p>Okay, without further delay, let&#8217;s start.</p>
      <p>
          <a href="https://www.codedshapes.com/p/modelling-the-winton-guest-house">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[I Built It for the Team. Somehow I Ended Up Owning It.]]></title><description><![CDATA[Creating a tool and owning it are two separate things]]></description><link>https://www.codedshapes.com/p/i-built-it-for-the-team-somehow-i</link><guid isPermaLink="false">https://www.codedshapes.com/p/i-built-it-for-the-team-somehow-i</guid><dc:creator><![CDATA[Braden Koh]]></dc:creator><pubDate>Thu, 21 May 2026 02:00:31 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!bJmO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a99b74b-d500-4840-b345-9b397eb9217b_3300x1858.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!bJmO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a99b74b-d500-4840-b345-9b397eb9217b_3300x1858.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!bJmO!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a99b74b-d500-4840-b345-9b397eb9217b_3300x1858.png 424w, https://substackcdn.com/image/fetch/$s_!bJmO!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a99b74b-d500-4840-b345-9b397eb9217b_3300x1858.png 848w, https://substackcdn.com/image/fetch/$s_!bJmO!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a99b74b-d500-4840-b345-9b397eb9217b_3300x1858.png 1272w, https://substackcdn.com/image/fetch/$s_!bJmO!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a99b74b-d500-4840-b345-9b397eb9217b_3300x1858.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!bJmO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a99b74b-d500-4840-b345-9b397eb9217b_3300x1858.png" width="1456" height="820" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1a99b74b-d500-4840-b345-9b397eb9217b_3300x1858.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:820,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2933353,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.codedshapes.com/i/198263376?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a99b74b-d500-4840-b345-9b397eb9217b_3300x1858.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!bJmO!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a99b74b-d500-4840-b345-9b397eb9217b_3300x1858.png 424w, https://substackcdn.com/image/fetch/$s_!bJmO!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a99b74b-d500-4840-b345-9b397eb9217b_3300x1858.png 848w, https://substackcdn.com/image/fetch/$s_!bJmO!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a99b74b-d500-4840-b345-9b397eb9217b_3300x1858.png 1272w, https://substackcdn.com/image/fetch/$s_!bJmO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a99b74b-d500-4840-b345-9b397eb9217b_3300x1858.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I&#8217;m on a call with Jack. We&#8217;re going through the analysis model for what seems like the 300th time.</p><p>&#8220;Try reducing the size there, oh and we need to ensure we have the right beam releases. Can you also just put in a simple truss here?&#8221;</p><p>I am frantically clicking away trying to keep up with the changes that &#8220;we&#8221; want to make to the model. After about 15 minutes of silence (which is a very long time on a call), I re-run the model and Jack unmutes himself.</p><p>&#8220;Okay, we are getting closer. Can you try reducing the loads on level 10 to see what happens ? Also, can you add a new freedom case in to mimic the stiffness of the floors ? Let me give you the spring values&#8221;</p><p>So, I do what he asks and this time, 20 minutes go by before we look at the model and try some other modifications again. None of these are big changes, they are Jack experimenting with different analysis parameters to get the model to work. It&#8217;s actually the kind of thing I do with my scripts and programs. He needs to <em>see</em> the results of all these changes to get a sense of the model and to know what to try next.</p><p>So, this is what <a href="https://www.codedshapes.com/p/we-need-to-stop-asking-llms-to-do?r=yraxj">an LLM feels like</a>.</p><p>Nothing I do here is computational. Yes, I am learning a lot about what makes a good structural analysis model but <em>is that really the best use of my time here?</em> It might help me write better scripts in the future but right now I&#8217;m just clicking where I&#8217;m told to.</p><p>Jack knows exactly what he wants. He has the structural expertise, the intuition for what to test. . So why isn&#8217;t Jack just doing this himself?</p><p>Well he has no idea how to use the current program, so I become his hands because I made the script that created the model. And aside from this inefficient way of working, there are two things going on here and they&#8217;re easy to confuse because they look the same from the outside.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.codedshapes.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">CodedShapes is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber. </p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2>The wrong analysis program</h2><p>This entire thing started because of the complexity of the model. Jack reached out because the geometry was impossible to do by hand.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!nqWo!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ff484b6-79ab-43eb-a386-550fa616b794_2289x1267.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!nqWo!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ff484b6-79ab-43eb-a386-550fa616b794_2289x1267.png 424w, https://substackcdn.com/image/fetch/$s_!nqWo!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ff484b6-79ab-43eb-a386-550fa616b794_2289x1267.png 848w, https://substackcdn.com/image/fetch/$s_!nqWo!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ff484b6-79ab-43eb-a386-550fa616b794_2289x1267.png 1272w, https://substackcdn.com/image/fetch/$s_!nqWo!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ff484b6-79ab-43eb-a386-550fa616b794_2289x1267.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!nqWo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ff484b6-79ab-43eb-a386-550fa616b794_2289x1267.png" width="1456" height="806" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7ff484b6-79ab-43eb-a386-550fa616b794_2289x1267.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:806,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:674717,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.codedshapes.com/i/198263376?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ff484b6-79ab-43eb-a386-550fa616b794_2289x1267.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!nqWo!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ff484b6-79ab-43eb-a386-550fa616b794_2289x1267.png 424w, https://substackcdn.com/image/fetch/$s_!nqWo!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ff484b6-79ab-43eb-a386-550fa616b794_2289x1267.png 848w, https://substackcdn.com/image/fetch/$s_!nqWo!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ff484b6-79ab-43eb-a386-550fa616b794_2289x1267.png 1272w, https://substackcdn.com/image/fetch/$s_!nqWo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ff484b6-79ab-43eb-a386-550fa616b794_2289x1267.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">I am aware of how overwhelming it looks but it was a very complicated model</figcaption></figure></div><p>So, I decided that Grasshopper was the best tool to generate the geometry. And at the time, the only analysis program that would work well with Grasshopper was a program called Strand7.</p><p>But, Jack was not a good Strand7 user. He knew how to extract data from it and spin the model around, but he could not use it well. I, on the other hand knew the program quite well because of it&#8217;s connection to Grasshopper.</p><p>Jack reassured me a few times that the analysis we needed to run was simple. It was a proof of concept and that everything could be done through the script. Not manual changing or prodding required. What he needed from me was an understanding of the geometry and some basic loading given his client&#8217;s constraints.</p><p>Well, the client loved it. But we never change analysis models. The Strand7 model is now really complex. Packed to the brim with freedom cases, restraints, beam end releases, etc. All done manually on the analysis side. In fact, there was little to no Grasshopper work anymore because all the changes and additions we made to the model were normal structural engineering changes.</p><p>It was at this point that we should have paused and re-evaluated if this hybrid of computational and manual approach was still the most effective way of working. Where it&#8217;s no longer a proof of concept but rather a fully featured structural analysis model that should be managed by someone else.</p><p>Because the amount of manual changes that Jack could have done on his own has surpassed the benefit of using Grasshopper. In fact, it got easier to define a split between scripting and manual fixes because we moved from geometry to analysis as the project evolved.</p><p>By planning that, we would have come up with a much more efficient way of working. Not to mention the experts in analysis would be able to make changes to the model without having to contact me all the time. I wouldn&#8217;t have been on hour long calls with Jack just for him to tell me where to click and what numbers to put in.</p><p>And if we ever wanted to bring some scripting functionality back in, I&#8217;m sure we would have found a way with Grasshopper. Maybe creating the model in Rhino, then importing it in and applying the loads. At this point, we should have stopped and re-evaluated our options and what it was costing us by staying with this workflow.</p><h2>Accidental ownership</h2><p>The second cascading problem to this is me &#8220;owning&#8221; the model.</p><p>Because it came from a Grasshopper script, everyone was asking me to make changes and review them. Me, the person that hasn&#8217;t done a lot of structural engineering work and has pretty much rote learned it by making tools for people. Combine that with the fact that Jack can&#8217;t use the program well and you have now made a <em>bottleneck</em>. You now have someone under qualified making changes in critical areas.</p><p>The <em>ownership</em> of the model became a by-product of using a script and from choosing the wrong analysis program. It&#8217;s the part that bothers me the most because accidental ownership is the kind that&#8217;s hardest to undo. I can&#8217;t one day just say that I am not making changes anymore.</p><p>And this isn&#8217;t a one-off. I&#8217;ve seen the same thing happened a few times. There was this one tool that I build in Grasshopper to run vibration checks and suddenly, I am the &#8220;vibration guy&#8221;. Everyone came to me for help on why their models weren&#8217;t working or why they didn&#8217;t get the results they wanted.</p><p><em>just because I made it, I suddenly own the space surrounding it</em></p><p>In both cases, I ended up owning something that should live with someone else.</p><h2>Hindsight, and the uncomfortable conversation</h2><p>Maybe it&#8217;s the hindsight bias talking, but I should have pushed back more. I should have had this conversation with Jack and ask more questions about <em>ownership</em> and <em>process</em>. Things like who makes the manual changes, should we change programs, or do we need another engineer to help us.</p><p>It would have meant asking questions he might not have been ready for or might not have known the answer to yet. &#8220;How complex do you think the analysis side will get?&#8221; is not a question anyone wants to hear when they&#8217;re just trying to get the geometry into a model.</p><p>And the real skill is knowing when to introduce friction. When to set boundaries with people.</p><p>Pushing back when you&#8217;re given work is uncomfortable in the moment. Especially when you always want to go a good job with people. Pushing back creates the friction that slows things down when everyone just wants to get started. It&#8217;s hard to be that reason things aren&#8217;t moving as quickly.</p><p>But the alternative is hundreds of long calls where I am just clicking where Jack is telling me to.</p><p>When you&#8217;re too busy to set boundaries, that&#8217;s when you need boundaries the most.</p><p>If you&#8217;re about to kick off a project and you&#8217;re not sure how automation or computational stuff will fit in then that&#8217;s the kind of thing I help people think through. Reply to this email or <a href="https://calendly.com/braden-codedconstructs/30-minute-chat">book a discovery call</a>. Even if it&#8217;s just to talk it through and nothing comes out of it, the conversation is free.</p><div class="pullquote"><p>Thanks for reading <br>Subscribe to CodedShapes and I&#8217;ll send you my free guide on how to actually apply computational design to your projects.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.codedshapes.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.codedshapes.com/subscribe?"><span>Subscribe now</span></a></p></div>]]></content:encoded></item><item><title><![CDATA[Modelling The Winton Guest House Part 1]]></title><description><![CDATA[Part 1 / 4 of my modelling guide on the Winton Guest House]]></description><link>https://www.codedshapes.com/p/winton-guest-house-part-1</link><guid isPermaLink="false">https://www.codedshapes.com/p/winton-guest-house-part-1</guid><dc:creator><![CDATA[Braden Koh]]></dc:creator><pubDate>Tue, 19 May 2026 03:00:54 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!DkTG!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c7a8712-8dc4-4779-98b5-36f976081e12_3300x1858.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!DkTG!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c7a8712-8dc4-4779-98b5-36f976081e12_3300x1858.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!DkTG!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c7a8712-8dc4-4779-98b5-36f976081e12_3300x1858.png 424w, https://substackcdn.com/image/fetch/$s_!DkTG!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c7a8712-8dc4-4779-98b5-36f976081e12_3300x1858.png 848w, https://substackcdn.com/image/fetch/$s_!DkTG!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c7a8712-8dc4-4779-98b5-36f976081e12_3300x1858.png 1272w, https://substackcdn.com/image/fetch/$s_!DkTG!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c7a8712-8dc4-4779-98b5-36f976081e12_3300x1858.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!DkTG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c7a8712-8dc4-4779-98b5-36f976081e12_3300x1858.png" width="1456" height="820" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2c7a8712-8dc4-4779-98b5-36f976081e12_3300x1858.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:820,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3018761,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.codedshapes.com/i/198252997?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c7a8712-8dc4-4779-98b5-36f976081e12_3300x1858.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!DkTG!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c7a8712-8dc4-4779-98b5-36f976081e12_3300x1858.png 424w, https://substackcdn.com/image/fetch/$s_!DkTG!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c7a8712-8dc4-4779-98b5-36f976081e12_3300x1858.png 848w, https://substackcdn.com/image/fetch/$s_!DkTG!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c7a8712-8dc4-4779-98b5-36f976081e12_3300x1858.png 1272w, https://substackcdn.com/image/fetch/$s_!DkTG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c7a8712-8dc4-4779-98b5-36f976081e12_3300x1858.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>This is part 1 of the Winton Guest House walkthrough. The series:</p><ul><li><p><a href="https://www.codedshapes.com/p/the-winton-guest-house-modelling?r=yraxj">The Brief</a></p></li><li><p>Part 1: Modelling the Fireplace, Living Room and Bedroom (this article)</p></li><li><p>Part 2: Modelling the Garage and Loft</p></li><li><p>Part 3: Modelling the Second Bedroom</p></li><li><p>Part 4: Script Organization</p></li></ul><div><hr></div><p>If you&#8217;ve read through <a href="https://www.codedshapes.com/p/the-winton-guest-house-modelling">the brief</a>, you now have everything I had when I first started. The reference images, a sense of where the six structures sit in relation to each other, and my modelling approach.</p><p>Hopefully, you&#8217;ve given it a shot or are in the process of trying it yourself.</p><p>Either way, it&#8217;s time to show you how I built this.</p><p>Before we dive in, a reminder of the principle I want to keep coming back to throughout this whole guide: the best way to learn is to try it and be uncomfortable on your own, then use this modelling guide as a reference against your own. The whole point of these guides is to give you context and a problem to anchor your learning.</p><p>Okay, without further delay, let&#8217;s start.</p>
      <p>
          <a href="https://www.codedshapes.com/p/winton-guest-house-part-1">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[You'll Never See Me Saying Automation Is Easy]]></title><description><![CDATA[Even though I am a firm believer of technology]]></description><link>https://www.codedshapes.com/p/youll-never-see-me-saying-automation</link><guid isPermaLink="false">https://www.codedshapes.com/p/youll-never-see-me-saying-automation</guid><dc:creator><![CDATA[Braden Koh]]></dc:creator><pubDate>Thu, 14 May 2026 02:00:24 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!vjJM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40db4567-bb10-4904-afa3-41959b2b06f0_3300x1858.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!vjJM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40db4567-bb10-4904-afa3-41959b2b06f0_3300x1858.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!vjJM!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40db4567-bb10-4904-afa3-41959b2b06f0_3300x1858.png 424w, https://substackcdn.com/image/fetch/$s_!vjJM!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40db4567-bb10-4904-afa3-41959b2b06f0_3300x1858.png 848w, https://substackcdn.com/image/fetch/$s_!vjJM!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40db4567-bb10-4904-afa3-41959b2b06f0_3300x1858.png 1272w, https://substackcdn.com/image/fetch/$s_!vjJM!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40db4567-bb10-4904-afa3-41959b2b06f0_3300x1858.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!vjJM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40db4567-bb10-4904-afa3-41959b2b06f0_3300x1858.png" width="1456" height="820" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/40db4567-bb10-4904-afa3-41959b2b06f0_3300x1858.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:820,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2883894,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.codedshapes.com/i/197183123?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40db4567-bb10-4904-afa3-41959b2b06f0_3300x1858.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!vjJM!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40db4567-bb10-4904-afa3-41959b2b06f0_3300x1858.png 424w, https://substackcdn.com/image/fetch/$s_!vjJM!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40db4567-bb10-4904-afa3-41959b2b06f0_3300x1858.png 848w, https://substackcdn.com/image/fetch/$s_!vjJM!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40db4567-bb10-4904-afa3-41959b2b06f0_3300x1858.png 1272w, https://substackcdn.com/image/fetch/$s_!vjJM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40db4567-bb10-4904-afa3-41959b2b06f0_3300x1858.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>For some reason, I am getting a phone call from Jay.</p><p>He&#8217;s a client I&#8217;ve built a few Dynamo scripts a couple of months ago. The project went well. We solved all the problems, tested the scripts and trained the team on how to use it. I even wrote some documentation for them too.</p><p>You know what, I think he&#8217;s got a new project for me. You know what they say, when you do good work, good work finds you.</p><p>I picked it up and heard his voice come through.</p><p>&#8220;Hey Braden, the scripts you made for us aren&#8217;t working anymore. I swear we followed everything you showed us in the workshop and it&#8217;s been working well but it&#8217;s now broken.&#8221;</p><p>Well, that&#8217;s not the call you want on a Thursday afternoon.</p><p>&#8220;That&#8217;s weird,&#8221; I said. &#8220;Are you free for a Zoom call in about an hour? Share your screen and we can go through it ?&#8221;</p><p>&#8220;Yep. See you then.&#8221;</p><p>So I finish what I was doing and jumped on the call. Jay shared his screen and showed me what was happening. He&#8217;d open the model, open the Dynamo script, hit run, and Revit would freeze and soon after, it would crash. </p><p>The perfect problem, no error message or warning, just&#8230; dead. </p><p>Maybe it was the model, so we tried again on a blank model. Same thing. A freeze and then crash. Okay, maybe it was the one of the plugins they had installed. Maybe it was&#8230;. </p><p>This cycle of testing a hypothesis, then crash, then another hypothesis turned the call into 2 hours of agony. For each hypothesis, we had to wait for Revit to restart and well&#8230; nothing is more awkward than sitting with a client in silence <s>hoping</s> praying that it will work the next time.</p><p>To make things worse, all the hypothesis didn&#8217;t work. So, instead of wasting more of Jay&#8217;s time. I asked him to send me the model and the script so I could debug it on my end. At least, I didn&#8217;t have to keep telling Jay where to click. But he needed this done by Friday and it&#8217;s Thursday afternoon. </p><p>Once I got the files, I opened the model, loaded the script and hit run.</p><p>Do you know what&#8217;s worse than things breaking for clients?</p><p>It working for you. </p><p>I didn&#8217;t have any problems, the script ran fine for me. No crash or freezing on my end.</p><p>I ran all the scripts across every relevant model I could find from our testing period. And it all worked, nothing was wrong. Maybe there was a setting on Jay&#8217;s computer that was causing it. So I shut Revit down, wanting to send him another email, requesting for a call. Mind you, it was 6pm on a Thursday.</p><p>That&#8217;s when I noticed Revit had an update waiting.</p><p>So, I updated it and just just to rule it out, I ran the script again. </p><p>And&#8230;.. shit. </p><p>That was the catch. It froze and crashed, just like on Jay&#8217;s computer. </p><p>It was Revit (If you know Autodesk, this isn&#8217;t surprising). An update had broken something in Dynamo. I then spent the night re-writing all the scripts to account for whatever the update had changed. That just meant starting from scratch again and trying to copy the functionality of the old scripts.</p><p>It took me about four hours and two cups of coffee to get it done. But on Friday morning, I jumped on another call with Jay and his team. I shared my screen, showed them the new scripts and explained what caused the issue. We tested it on their models, walked through it together, made sure everything was working.</p><h2>The thing nobody tells you</h2><p>When I called Jay a couple of weeks later to check in, he was sympathetic to what happened. He was forgiving because he had used the scripts before and it had always pulled through for his previous projects. But when I pushed a little more in the conversation, there was some hesitation.</p><p>&#8220;So what happens with the next Revit update? Should I call you first? Should we test it on one computer before asking everyone to update? Maybe we&#8217;ll just have to run this with a bit more time to spare next time&#8221;.</p><p>These are questions you start asking <em>after</em> you&#8217;ve been burned. When you&#8217;re less confident in the tool delivering well. Before that Thursday, Jay didn&#8217;t think about any of this. Now he&#8217;s worried that an update might break the scripts again. He&#8217;s worried that he and his team have to stay late if I wasn&#8217;t available.</p><p>And if I were Jay, I&#8217;d feel the same way. You start second guessing things. Maybe things aren&#8217;t as solid as they seem. Maybe next time you run the scripts, you try a small portion first. Or maybe you save a version of Revit on a computer and never update it.</p><p>And even on my side, it&#8217;s a horrible feeling. Apart from the loss in trust, I didn&#8217;t get paid for that extra time (and stress). We were just lucky that I was relatively free that day to handle this emergency fix. </p><p>It&#8217;s a lose-lose situation, I stay up late fixing something that was stable before and Jay loses some trust. All because Revit decided to push an update. </p><h2>The reality of building on another platform</h2><p>But no amount of testing and planning could have predicted this. Dynamo relies on the Revit API, and the Revit API changes when Autodesk decides it changes. </p><p>That&#8217;s the reality of building on another platform. </p><p>And that&#8217;s the part when I don&#8217;t see people talking about, the maintenance of these tools. </p><p>No single tool is a once-off investment. Things in the world keep changing. Revit will update again and that means, some tools will break. The skill then is how you handle the change, not trying to prevent it. That&#8217;s why I always say that maintaining a tool is just as important as building it.</p><p>What should have happen with Jay, is that when Revit releases a new update, we re-test the scripts again in a non-project timeline. Ensuring that things are still working, if it&#8217;s not, then we plan again about how to best fix the scripts and maybe add any missing features we couldn&#8217;t before.</p><h2>Why I take this so seriously</h2><p>I&#8217;ve been on the other side of this too. <a href="https://www.codedshapes.com/p/this-is-why-they-dont-trust-us">I&#8217;ve depended on tools that have failed me in critical moments.</a> When no one is around to help and you have something to deliver in 4 hours, you plow through it manually because it has to be done. </p><p>So even though I make the tools, I understand why people are hesitant to adopt new ones. It&#8217;s horrible, being left alone when something you depend on breaks. But the answer is to not avoid tools, it&#8217;s to be on top of the changes and handle them well. </p><h2>So what do you actually do about it?</h2><p>During development, I still test things thoroughly. I still write documentation and run workshops so everyone knows how things work and why. By the time I hand something over, it&#8217;s been put through its paces. Everyone that I work with should have a good understanding of the behavior of the tool. In fact, they should feel confident in it&#8217;s robustness and quality.</p><p>But testing, in all its glory, cannot simulate a Revit update that hasn&#8217;t been released yet. It can&#8217;t predict which API function Autodesk will change six months from now.</p><p>And that&#8217;s exactly why I offer what I call Hypercare support. It&#8217;s a retainer for small features, changes and any critical bugs that come up <em>after</em> deployment. It gives you someone to call when things go wrong, someone who already knows the scripts, knows the dependencies, and can diagnose the problem without starting from scratch.</p><p>I do this because I can&#8217;t predict when a Revit update is going to break something. Nobody can. But I <em>can</em> make sure that when it does, I&#8217;m at least available to hop on and fix that error.</p><p>If I&#8217;d scoped that into Jay&#8217;s original engagement, the Thursday night rewrite wouldn&#8217;t have been unpaid. And more importantly, Jay wouldn&#8217;t have spent two hours watching his screen restart wondering if he&#8217;d made a bad investment. He would have just called me, and we&#8217;d have handled it. Not to mention, everyone would have been less stressed.</p><p>That&#8217;s why you&#8217;ll never see me saying automation is easy. Because the building part is &#8220;easy&#8221;. It&#8217;s the part everyone on LinkedIn shows. But hardly anyone shows what comes after that. The maintenance, the support and bug fixes when other stuff changes. </p><p>Okay, that&#8217;s it from me. </p><p>If you want to talk through whether automation makes sense for your project, or if you&#8217;ve already built something and want to make sure it&#8217;s supported, I&#8217;m always happy to chat. Reply to this email or <a href="https://bradenkoh.com/">schedule a call</a>. That conversation is free.</p><div class="pullquote"><p>Thanks for reading <br>Subscribe to CodedShapes and I&#8217;ll send you my free guide on how to actually apply automation to your projects.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.codedshapes.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.codedshapes.com/subscribe?"><span>Subscribe now</span></a></p></div>]]></content:encoded></item><item><title><![CDATA[The Winton Guest House Modelling Challenge]]></title><description><![CDATA[Try your hand at creating this building]]></description><link>https://www.codedshapes.com/p/the-winton-guest-house-modelling</link><guid isPermaLink="false">https://www.codedshapes.com/p/the-winton-guest-house-modelling</guid><dc:creator><![CDATA[Braden Koh]]></dc:creator><pubDate>Wed, 13 May 2026 02:01:06 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!bH2S!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5bfd913c-bb4b-4df1-b0b0-b8b013979381_3300x1858.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!bH2S!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5bfd913c-bb4b-4df1-b0b0-b8b013979381_3300x1858.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!bH2S!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5bfd913c-bb4b-4df1-b0b0-b8b013979381_3300x1858.png 424w, https://substackcdn.com/image/fetch/$s_!bH2S!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5bfd913c-bb4b-4df1-b0b0-b8b013979381_3300x1858.png 848w, https://substackcdn.com/image/fetch/$s_!bH2S!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5bfd913c-bb4b-4df1-b0b0-b8b013979381_3300x1858.png 1272w, https://substackcdn.com/image/fetch/$s_!bH2S!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5bfd913c-bb4b-4df1-b0b0-b8b013979381_3300x1858.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!bH2S!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5bfd913c-bb4b-4df1-b0b0-b8b013979381_3300x1858.png" width="1456" height="820" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5bfd913c-bb4b-4df1-b0b0-b8b013979381_3300x1858.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:820,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3016514,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.codedshapes.com/i/197181421?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5bfd913c-bb4b-4df1-b0b0-b8b013979381_3300x1858.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!bH2S!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5bfd913c-bb4b-4df1-b0b0-b8b013979381_3300x1858.png 424w, https://substackcdn.com/image/fetch/$s_!bH2S!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5bfd913c-bb4b-4df1-b0b0-b8b013979381_3300x1858.png 848w, https://substackcdn.com/image/fetch/$s_!bH2S!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5bfd913c-bb4b-4df1-b0b0-b8b013979381_3300x1858.png 1272w, https://substackcdn.com/image/fetch/$s_!bH2S!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5bfd913c-bb4b-4df1-b0b0-b8b013979381_3300x1858.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><a href="https://open.substack.com/pub/bradenkoh/p/tutorials-taught-you-everything-except?r=yraxj&amp;utm_campaign=post&amp;utm_medium=web&amp;showWelcomeOnShare=true">Previously</a>, I wrote about why learning with a real problem in front of you is different from any tutorial. But it&#8217;s not good enough for me to just say &#8220;go find your own problems to solve&#8221;. So, this is the first article in rectifying that.</p><p>It&#8217;s the start of me giving you a real problem to work with in case you don&#8217;t have your own.</p><p>Below is everything I had when I started modelling the Winton Guest House. Treat it as a brief. If it helps, think of it as an assignment. Go through the reference images, do some googling of your own and read the modelling approach I have taken.</p><p>Then, when you&#8217;re ready, start modelling it on your own.</p><p>Yes, I know that can be scary and it can be overwhelming but that&#8217;s part of the process and the learning. The struggle is how you earn to look at something and build a Grasshopper script from it.</p><p>Then, when you are truly stuck or maybe you&#8217;ve made your own solution, reference it to mine. In the coming weeks, I&#8217;ll be publishing a modelling guide that shows the script I made. It&#8217;s my answer to the brief.</p><h2>The Winton Guest House</h2><p>It consist of six distinct structures, each with its own type of geometry. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!oJYS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b245668-6e70-42b0-a684-12d44d5f9613_750x400.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!oJYS!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b245668-6e70-42b0-a684-12d44d5f9613_750x400.png 424w, https://substackcdn.com/image/fetch/$s_!oJYS!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b245668-6e70-42b0-a684-12d44d5f9613_750x400.png 848w, https://substackcdn.com/image/fetch/$s_!oJYS!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b245668-6e70-42b0-a684-12d44d5f9613_750x400.png 1272w, https://substackcdn.com/image/fetch/$s_!oJYS!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b245668-6e70-42b0-a684-12d44d5f9613_750x400.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!oJYS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b245668-6e70-42b0-a684-12d44d5f9613_750x400.png" width="750" height="400" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1b245668-6e70-42b0-a684-12d44d5f9613_750x400.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:400,&quot;width&quot;:750,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:749141,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.codedshapes.com/i/197181421?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b245668-6e70-42b0-a684-12d44d5f9613_750x400.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!oJYS!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b245668-6e70-42b0-a684-12d44d5f9613_750x400.png 424w, https://substackcdn.com/image/fetch/$s_!oJYS!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b245668-6e70-42b0-a684-12d44d5f9613_750x400.png 848w, https://substackcdn.com/image/fetch/$s_!oJYS!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b245668-6e70-42b0-a684-12d44d5f9613_750x400.png 1272w, https://substackcdn.com/image/fetch/$s_!oJYS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b245668-6e70-42b0-a684-12d44d5f9613_750x400.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><em>image credit: <a href="https://news.stthomas.edu/next-stop-frank-gehrys-winton-guest-house-new-yorks-hudson-river-valley/">University of St Thomas</a></em></figcaption></figure></div><p>To make sure we are on the same page, here are the names and locations of each structure:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ul8Z!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20d18826-c397-4c99-85a0-c0d113face86_2800x2800.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ul8Z!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20d18826-c397-4c99-85a0-c0d113face86_2800x2800.png 424w, https://substackcdn.com/image/fetch/$s_!ul8Z!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20d18826-c397-4c99-85a0-c0d113face86_2800x2800.png 848w, https://substackcdn.com/image/fetch/$s_!ul8Z!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20d18826-c397-4c99-85a0-c0d113face86_2800x2800.png 1272w, https://substackcdn.com/image/fetch/$s_!ul8Z!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20d18826-c397-4c99-85a0-c0d113face86_2800x2800.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ul8Z!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20d18826-c397-4c99-85a0-c0d113face86_2800x2800.png" width="1456" height="1456" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/20d18826-c397-4c99-85a0-c0d113face86_2800x2800.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1456,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1593530,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.codedshapes.com/i/197181421?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20d18826-c397-4c99-85a0-c0d113face86_2800x2800.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ul8Z!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20d18826-c397-4c99-85a0-c0d113face86_2800x2800.png 424w, https://substackcdn.com/image/fetch/$s_!ul8Z!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20d18826-c397-4c99-85a0-c0d113face86_2800x2800.png 848w, https://substackcdn.com/image/fetch/$s_!ul8Z!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20d18826-c397-4c99-85a0-c0d113face86_2800x2800.png 1272w, https://substackcdn.com/image/fetch/$s_!ul8Z!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20d18826-c397-4c99-85a0-c0d113face86_2800x2800.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><em>image credit: <a href="https://www.behance.net/gallery/20144177/Winton-Guest-House-Project/modules/135705187">Behance</a></em></figcaption></figure></div><p>And the plan view, which, to me, is the most useful reference for setting out the geometry:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!X0di!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61f014a4-a518-40d5-a4c3-76a36bd47c17_500x425.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!X0di!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61f014a4-a518-40d5-a4c3-76a36bd47c17_500x425.png 424w, https://substackcdn.com/image/fetch/$s_!X0di!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61f014a4-a518-40d5-a4c3-76a36bd47c17_500x425.png 848w, https://substackcdn.com/image/fetch/$s_!X0di!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61f014a4-a518-40d5-a4c3-76a36bd47c17_500x425.png 1272w, https://substackcdn.com/image/fetch/$s_!X0di!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61f014a4-a518-40d5-a4c3-76a36bd47c17_500x425.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!X0di!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61f014a4-a518-40d5-a4c3-76a36bd47c17_500x425.png" width="524" height="445.4" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/61f014a4-a518-40d5-a4c3-76a36bd47c17_500x425.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:425,&quot;width&quot;:500,&quot;resizeWidth&quot;:524,&quot;bytes&quot;:91516,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.codedshapes.com/i/197181421?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61f014a4-a518-40d5-a4c3-76a36bd47c17_500x425.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!X0di!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61f014a4-a518-40d5-a4c3-76a36bd47c17_500x425.png 424w, https://substackcdn.com/image/fetch/$s_!X0di!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61f014a4-a518-40d5-a4c3-76a36bd47c17_500x425.png 848w, https://substackcdn.com/image/fetch/$s_!X0di!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61f014a4-a518-40d5-a4c3-76a36bd47c17_500x425.png 1272w, https://substackcdn.com/image/fetch/$s_!X0di!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61f014a4-a518-40d5-a4c3-76a36bd47c17_500x425.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><em>image credit: <a href="https://www.pinterest.com.au/pin/frank-gehry-winton-guest-house--625859679475104378/">Frank Gehry &#8211; Winton Guest House</a></em></figcaption></figure></div><p>If you do need more information, you can always find them online.</p><h2>My (recommended) approach</h2><p>When I look at a building I have never modelled before, I am not thinking about the architecture. I am looking for the logic. Where does this start? What depends on what?</p><p>The Winton Guest House has a clear one to me.</p><p>The fireplace is the anchor. Everything else in the script works from it in some way. The chimney grows out of the fireplace. The living room grows out of the fireplace. The garage grows out of the living room. The loft sits alongside the garage. The second bedroom is the last piece to slot in.</p><p><em>Of course, if you do want to start from another building like the living room, please feel free to</em></p><p>Once you see that flow, the model becomes one problem with six big steps, each one using what came before it as its starting point. That order is why the guide starts with the fireplace rather than whichever structure looks most interesting.</p><p>The fireplace is really just a box with another taller box on top that makes the chimney. The roof of the living room is a trapezium and the rest are also combinations of simple shapes with the exception of the bedroom. So, leave that for last. And if you get really stuck on that, part 3 of my guide will show you how I did it.</p><h2>Start now, don&#8217;t worry about perfection</h2><p>You do not need to get everything right, and you do not need exact dimensions. Focus on the relationships between the structures rather than precise measurements. What we want from these modelling challenges is for you to build the instinct of creating your own workflow and pulling components to solve problems. </p><p>When you are ready to compare notes, or when you hit a wall, the modelling guide is split into four weekly parts:</p><ul><li><p><strong>Part 1:</strong> Fireplace, Living Room and Bedroom</p></li><li><p><strong>Part 2:</strong> Garage and Loft</p></li><li><p><strong>Part 3:</strong> Second Bedroom</p></li><li><p><strong>Part 4:</strong> Script Organisation</p></li></ul><p>Each part has a script file so you can check your work section by section. Part 1, starts next week. </p><p>But as you go through it, remember that my approach is just one way. There is no &#8220;ultimate&#8220; way to model this. But we all have to start somewhere, so if your script differs from my guides, it&#8217;s okay. We&#8217;re just getting the reps in. </p><p></p><p>Happy scripting!</p><div class="pullquote"><p>Thanks for reading <br>Subscribe to CodedShapes to get notified on when part 1 of the modelling guide is published</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.codedshapes.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.codedshapes.com/subscribe?"><span>Subscribe now</span></a></p></div><p></p>]]></content:encoded></item><item><title><![CDATA[Tutorials Taught You Everything Except How to Use Grasshopper]]></title><description><![CDATA[Experience > Tutorials]]></description><link>https://www.codedshapes.com/p/tutorials-taught-you-everything-except</link><guid isPermaLink="false">https://www.codedshapes.com/p/tutorials-taught-you-everything-except</guid><dc:creator><![CDATA[Braden Koh]]></dc:creator><pubDate>Tue, 12 May 2026 02:01:07 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!gpR2!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8db4446-df77-4883-b60e-5a1fb4df8fd8_3300x1858.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!gpR2!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8db4446-df77-4883-b60e-5a1fb4df8fd8_3300x1858.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!gpR2!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8db4446-df77-4883-b60e-5a1fb4df8fd8_3300x1858.png 424w, https://substackcdn.com/image/fetch/$s_!gpR2!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8db4446-df77-4883-b60e-5a1fb4df8fd8_3300x1858.png 848w, https://substackcdn.com/image/fetch/$s_!gpR2!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8db4446-df77-4883-b60e-5a1fb4df8fd8_3300x1858.png 1272w, https://substackcdn.com/image/fetch/$s_!gpR2!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8db4446-df77-4883-b60e-5a1fb4df8fd8_3300x1858.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!gpR2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8db4446-df77-4883-b60e-5a1fb4df8fd8_3300x1858.png" width="1456" height="820" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a8db4446-df77-4883-b60e-5a1fb4df8fd8_3300x1858.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:820,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2608844,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.codedshapes.com/i/196968637?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8db4446-df77-4883-b60e-5a1fb4df8fd8_3300x1858.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!gpR2!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8db4446-df77-4883-b60e-5a1fb4df8fd8_3300x1858.png 424w, https://substackcdn.com/image/fetch/$s_!gpR2!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8db4446-df77-4883-b60e-5a1fb4df8fd8_3300x1858.png 848w, https://substackcdn.com/image/fetch/$s_!gpR2!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8db4446-df77-4883-b60e-5a1fb4df8fd8_3300x1858.png 1272w, https://substackcdn.com/image/fetch/$s_!gpR2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8db4446-df77-4883-b60e-5a1fb4df8fd8_3300x1858.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>There&#8217;s this satisfying feeling that happens after you finish a tutorial or a lesson in a course.</p><p>You know what I mean. You&#8217;ve watched the whole thing, maybe you&#8217;ve followed along, maybe you even took some notes. After that, you&#8217;ve definitely mastered &#8220;data-trees for Grasshopper&#8221;.</p><p>So, why is it that when you open up Grasshopper on your own, the only thing you can do is stare? You should have mastered this, you watched the tutorial. You even took notes. But all you have are more questions.</p><p>What components do you use ?<br>How do you even start, a point ? a curve ?<br>Where&#8217;s the list to <em>graft</em> ?</p><p>If any of that sounds familiar, it&#8217;s because it&#8217;s the classic &#8220;I don&#8217;t know how to apply what I&#8217;ve just learnt to the real world&#8221; problem. That&#8217;s why even after 4 years of going to Unviersity, most people will still treat graduates as &#8220;starry eyed fledglings&#8221;.</p><p>I have written about this a couple of times now. <a href="https://open.substack.com/pub/bradenkoh/p/a-week-of-tutorials-and-i-still-couldnt">One piece</a> was about why I would learn Grasshopper differently if I started over. <a href="https://www.codedshapes.com/p/the-moment-grasshopper-finally-made">Another</a>, was about the moment the tool finally made sense to me. And <a href="https://www.codedshapes.com/p/why-tutorials-alone-wont-get-you?r=yraxj">this one</a> was about why learning through tutorials only won&#8217;t get you very far. I even made a <a href="https://www.linkedin.com/posts/bradenkkz_tutorials-alone-are-not-enough-ugcPost-7457373501122068480--J19?utm_source=share&amp;utm_medium=member_desktop&amp;rcm=ACoAAB8bgSMBqS9EG1ppwaYkmHxqK8QaquDcprk">LinkedIn post</a> about it.</p><p>The TLDR of all of them is that tutorials and online courses teach you what the components do and where they are. But they don&#8217;t teach you how to use them to solve real world problems. That part only comes from getting more experience.</p><p>The responses I got from those pieces told me that a lot of people understand this. They have done the tutorials. Understand the material in the moment. And then nothing transfers to their jobs. They can take every &#8220;masterclass&#8221; under the sun and still feel like they are starting from scratch every time they open Grasshopper.</p><h2>Context is key when learning</h2><p>I got lucky because my job at the time gave me context while I was learning Grasshopper for the first time. I had a real task with real deadlines and a real manager to hold me accountable. He was also a manager that would occasionally pull up a chair when I was completely lost and say, here, think about it like this. </p><p>He gave me <em>direction</em>, so that I wasn&#8217;t completely lost. He gave me some  <em>breadcrumbs</em> to follow. But I still had to find my way there. It was still up to me to learn the right techniques to solve the problem.</p><p>I did end up learning the fundamentals of Grasshopper though. But not because a course told me to, because it was the only way I was going to solve my problem. I had to learn about <em>data-trees</em> because my situation demanded it. I wanted my scripts to work well and for that, the fundamentals are important. But doing it for the sake of doing it is how you get so bored that you rather run into a wall.</p><p>Learning in context is different to your regular online course or tutorial. Because it means you have to intentionally get lost and find your way back on your own. Which can be an extremely uncomfortable feeling, especially if you&#8217;re paying for a course to be reassured you&#8217;re on the &#8220;right&#8221; path. It&#8217;s weird to say &#8220;I am buying this course to feel lost and find my way back&#8221;. It&#8217;s much easier to buy a course that spoon feeds you problems and answers.</p><p>But all you&#8217;re doing is accumulating <a href="https://www.codedshapes.com/p/why-tutorials-alone-wont-get-you?r=yraxj">carnival cash</a>. It feels great in the moment but means nothing in the real world.</p><h2>The part that is hard to replicate</h2><p>The problem is that most people learning Grasshopper today don&#8217;t have access to their own problems. They have jobs, but Grasshopper is not central to them yet. Or they are students, or they are trying to upskill before a role that needs it. They can&#8217;t find their own context to make the learning stick.</p><p>Telling you to find your own problems doesn&#8217;t help if you don&#8217;t know what can be done. It also doesn&#8217;t help if it&#8217;s too overwhelming to go through it on your own. I even made <a href="https://www.codedshapes.com/p/applying-computational-design-where">a course on how to find your own problems</a> but it still doesn&#8217;t help if you are very new at this.</p><p>So, I have been trying to figure out how to give someone that project experience if they don&#8217;t have one? How do I structure a problem in a way that is not too overwhelming, that challenges you and still gives you enough direction?</p><h2>The inspiration of modelling challenges</h2><p>That is what I am trying to build here. A series of modelling challenges that give you that context for learning and forces you to come up with your own workflows. </p><p>Okay, why modelling?</p><p>For starters, I think it&#8217;s the most common use case for Grasshopper. I also think it teaches you the most about how the tool works. From there on, if you wanted to branch off to urban analysis or optimization, it&#8217;s not a huge leap anymore.</p><p>I know how overwhelming that all sounds. But the point here is to challenge yourself to come up with your own way of solving problems. That&#8217;s how you build that instinct. </p><p>So, if you&#8217;re interested in getting some reps in for Grasshopper or you want hone your skills, I encourage you to join me. </p><p>We are going to start with a <em>model brief </em>which is basically summary of what you are going to start modelling. In the brief, you&#8217;ll have reference images, how I would model it and also what to look out for. Then, you just have to start. </p><p>But I did say that to learn effectively, you also need <em>direction</em>. Which is why after you&#8217;ve tried or if you&#8217;re feeling extra stuck, I&#8217;ll be publishing a modelling guide too. It&#8217;s basically my &#8220;answer&#8221; to the brief. </p><p>It&#8217;s not like I am giving you a problem and then leaving you alone. I am going to solve it too and show you how I did it. Mostly for you to reference and compare against your method. The key here though is that you have to try and solve it on your own first.</p><p><em>P.S. if you&#8217;ve never opened Grasshopper before, I&#8217;d suggest going through <a href="https://open.substack.com/pub/bradenkoh/p/i-couldnt-find-a-grasshopper-course">my primer in Grasshopper</a> first to get up to speed on the basics. It&#8217;s only six lessons and it gets you to the point where you can read a script and know what you are looking at. Start there and come back.</em></p><h2>What we are working through</h2><p>Starting tomorrow, I am introducing the first building we are going to look at: Frank Gehry&#8217;s Winton Guest House, completed in 1987. It&#8217;s six distinct structures, each with its own geometry.</p><p>I chose it deliberately because it is complex enough to be challenging. But it also has a quality that I think makes it a good teaching vehicle, there is a clear logic to the order of things. Each part of the building follows what came before it.</p><p>The brief will walk through what the building is, how I see the building in terms of &#8220;plan of attack&#8221; and how to approach modelling it. Think of it like a mentor giving you a <em>task and some direction</em> and your job is to use Grasshopper to solve it.</p><p>From then on, there will be four parts to the guide, published every Tuesday for next few weeks. Each guide also comes with a script, so you can see how the solution progresses along with my thinking. And they are all available for paid members of CodedShapes.</p><p>If you are on the fence about subscribing, this might be a good chance. You can always subscribe to learn from it and then quit after you got what you needed, no hard feelings at all. The pool of resources will always be here. </p><h2>Closing thoughts</h2><p>Learning in context is one of the most effective ways I&#8217;ve found to learn. After going through it, it&#8217;s hard to imagine ever sitting in a classroom or a tutorial learning for no reason. With anything that I am trying to learn (Grasshopper or not), I always anchor it to a problem/project.</p><p>This though, is a much harder way of learning and the effort you need is a lot higher than just kicking back and watching tutorials. Just be mindful of that. But that is the point of all of this. I don&#8217;t want you to memorize things for the sake of it, I want to give you a reason and some meaning to it.</p><p>The first model brief is now live! </p><p>Check it out here : </p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;d052d563-1e33-4109-8765-8fd54381bdae&quot;,&quot;caption&quot;:&quot;&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;The Winton Guest House Modelling Challenge&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:58380823,&quot;name&quot;:&quot;Braden Koh&quot;,&quot;bio&quot;:&quot;I write about computational design, a field focused on using computers to solve practical problems. I try to show where computational thinking actually makes a difference and where it doesn&#8217;t.&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4dacec5b-718a-406b-a6f4-c06367f8cfdf_2081x2081.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2026-05-13T02:01:06.858Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!bH2S!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5bfd913c-bb4b-4df1-b0b0-b8b013979381_3300x1858.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://www.codedshapes.com/p/the-winton-guest-house-modelling&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:197181421,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:0,&quot;comment_count&quot;:0,&quot;publication_id&quot;:1310749,&quot;publication_name&quot;:&quot;CodedShapes&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!DATU!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8783c1e-94bb-4979-9c47-889d3da8083d_500x500.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div class="pullquote"><p>Thanks for reading <br>Subscribe to CodedShapes and I&#8217;ll send you my free guide on how to actually apply computational design to your projects.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.codedshapes.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.codedshapes.com/subscribe?"><span>Subscribe now</span></a></p></div>]]></content:encoded></item><item><title><![CDATA[This is Why They Don't Trust Us]]></title><description><![CDATA[It's not overselling anymore, it's using their trust against them]]></description><link>https://www.codedshapes.com/p/this-is-why-they-dont-trust-us</link><guid isPermaLink="false">https://www.codedshapes.com/p/this-is-why-they-dont-trust-us</guid><dc:creator><![CDATA[Braden Koh]]></dc:creator><pubDate>Thu, 07 May 2026 02:00:24 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!yGoM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F615b1969-73ac-4d83-9dcb-12c96eb09591_3300x1858.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!yGoM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F615b1969-73ac-4d83-9dcb-12c96eb09591_3300x1858.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!yGoM!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F615b1969-73ac-4d83-9dcb-12c96eb09591_3300x1858.png 424w, https://substackcdn.com/image/fetch/$s_!yGoM!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F615b1969-73ac-4d83-9dcb-12c96eb09591_3300x1858.png 848w, https://substackcdn.com/image/fetch/$s_!yGoM!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F615b1969-73ac-4d83-9dcb-12c96eb09591_3300x1858.png 1272w, https://substackcdn.com/image/fetch/$s_!yGoM!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F615b1969-73ac-4d83-9dcb-12c96eb09591_3300x1858.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!yGoM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F615b1969-73ac-4d83-9dcb-12c96eb09591_3300x1858.png" width="1456" height="820" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/615b1969-73ac-4d83-9dcb-12c96eb09591_3300x1858.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:820,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2526969,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.codedshapes.com/i/196075736?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F615b1969-73ac-4d83-9dcb-12c96eb09591_3300x1858.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!yGoM!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F615b1969-73ac-4d83-9dcb-12c96eb09591_3300x1858.png 424w, https://substackcdn.com/image/fetch/$s_!yGoM!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F615b1969-73ac-4d83-9dcb-12c96eb09591_3300x1858.png 848w, https://substackcdn.com/image/fetch/$s_!yGoM!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F615b1969-73ac-4d83-9dcb-12c96eb09591_3300x1858.png 1272w, https://substackcdn.com/image/fetch/$s_!yGoM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F615b1969-73ac-4d83-9dcb-12c96eb09591_3300x1858.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I was part of a digital team that built an analysis tool for a project.</p><p>It managed data between a main model and many sub models for structural analysis. The idea was for each engineer on the team to work on their own model, then use our tool to combine everything into a single main model. It made modelling collaborative which if you know how analysis programs worked, was a big deal. Most, if not all analysis programs only allow one person at a time.</p><p>That meant the project team could put almost every engineer (junior to senior) on the modelling without having to copy and paste between models. This was actually where most of the errors and problems come from. People model the paste the wrong thing or they accidentally delete something important in the main model.</p><p>But with our tool, a click of button would solve all of that. You&#8217;d get a team-built and expertly led analysis model as many times as you needed.</p><p>It was so good and we wanted to present it to other project teams. The hope was that they, too, could experience the future of modelling through the same system. Even though our tool only worked for this project, it wouldn&#8217;t have been hard to tweak it for others. In fact, with enough motivation, we could build the same system for everyone. We were creating collaborative editing for models</p><p>So, present we did. Hoping to get more interests and ideally, more funding. For 30 minutes, everyone watched us explain this magical process. Parallelize the modelling, click this button, and have all your complex analysis woes solved.</p><p>At the end of it, all I could think was: &#8220;This is why no one trusts us.&#8221;</p><h2>Because the truth hurts</h2><p>The tool actually made the project worse.</p><p>The one-click reality was people still had to manually copy and paste between models. The very thing the tool was designed to prevent. But now, they also had a tool that would get it wrong, so sometimes, they had to spend even more time cleaning up after the tool.</p><p>To make things worse, after we made the tool, there was also a period where the original developer who built the tool was on leave. He didn&#8217;t give any handover notes or access to the original code. So, when the tool broke and there was no one around to fix it. I helped out the project team by also manually copying and pasting between models. Not fixing the tool, actually placing lines and copying numbers. Again, the very thing the tool was designed to prevent.</p><p>Before we showed up to this project, the team had a workflow. It was manual, error prone and slow, but it was <em>theirs</em>. They understood it and knew exactly what to do. Now, they had a tool they didn&#8217;t fully understand, that occasionally saved them time and occasionally broke at the worst possible moment. So, they ended up with a workflow that was slower, more error prone than just doing it manually.</p><p>Now, imagine you&#8217;re a manager. You&#8217;ve been promised that you get a tool that would almost half your turnaround time. What do you tell the clients?</p><p>Well, you tell them you can do it faster.</p><p>Which is exactly what made the deadlines of this project so tight. The team was <em>depending</em> on the tool working. They&#8217;d planned a tighter turnaround because the tool was meant to handle it. But because the tool broke so often and the team weren&#8217;t available, they dug their own graves. They had to work long hours to make up the tight deadline that the tool was supposed to prevent.</p><p>And after everything, we still presented it to everyone like it was the next best thing since sliced bread.</p><p>I bet the project team were laughing at us during the presentation. They would never work with the digital team again. I mean would you ?</p><p>That feeling must have bled to the other teams too. Because as &#8220;game-changing&#8221; as our tool was, no one reached out to us. I swear we looked like clowns up there. The tool also never saw the light of day again.</p><div class="pullquote"><p>Subscribe to CodedShapes and I&#8217;ll send you my free guide on how to actually apply it to your projects.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.codedshapes.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.codedshapes.com/subscribe?"><span>Subscribe now</span></a></p></div><h2>We sold the dream, not the reality</h2><p>The thing that bothers me most about that presentation isn&#8217;t the overselling. It&#8217;s the eroded trust with the team.</p><p>The project team trusted us. They built their entire schedule around it. They told their clients they could turn things around faster. They took on tighter deadlines. They made commitments based on our promises.</p><p>They basically believed that we would together to deliver a product that was better than the sum of it&#8217;s parts. And we let them down an threw them under the bus.</p><p>And while they (and I) stayed late delivering the project while the tool broke, we still stood up there and called it the best tool.</p><p>That&#8217;s no longer overselling, that&#8217;s taking someone&#8217;s trust and using it against them.</p><p>I don&#8217;t blame people for not trusting the team again.</p><h2>Then we disappeared</h2><p>But the biggest crime isn&#8217;t the broken tool. It&#8217;s disappearing after you&#8217;ve sold the magic. Especially when people have build their deadlines and budgets around it actually working.</p><p>The guilt from this project still stays with me.</p><p>There were days where the project team needed help. The tool broke, which was common, but our team had moved on to other things.</p><p>I remember our replies all fell along the lines of: &#8220;Yes, that&#8217;s a bug, but I&#8217;m busy. I&#8217;ll get to it in 2-3 days.&#8221;</p><p>But they had a deadline <em>tomorrow</em>. So they stayed up that night doing things manually. And eventually, they stopped asking.</p><p>The kicker? When we finally had time to look at it, we&#8217;d say something like:</p><p>&#8220;Oh, you shifted the geometry. Our tool doesn&#8217;t support that. So, you broke it.&#8221;</p><p>The tool broke and we didn&#8217;t fix it. They still had a deadline, so they fell back to the manual way to get it over the line. And then, when we did have time, we <em>blamed them</em> for breaking the tool that we made.</p><p>If that happened to you, how hard would you kick us?</p><h2>Two sides of the same coin</h2><p>Of course, it&#8217;s not always this one-sided. There have been times where there are bad inputs or assumptions. Or people try to use the tool outside it&#8217;s design and expect it to perform magic.</p><p>But the common piece on both sides is <em>trust and reliability</em>.</p><p>Trust goes both ways. You need to trust that the tool will consistently deliver. And I need to trust that you&#8217;ll use it within the agreed conditions.</p><p>Reliability also goes both ways. Before I completely handover the tool to you, <em>we</em> have to ensure that it&#8217;s tested well and that you&#8217;re confident it works the way you need it to. Of course, there is another piece that when something breaks after, I&#8217;m there to fix it, not leave you hanging.</p><p>If you can&#8217;t trust or rely on the digital solution, then nothing will go well.</p><h2>We have to align on the direction</h2><p>I still think computational design is worth it. I wouldn&#8217;t be writing this newsletter if I didn&#8217;t. The time savings are real, and the problems we can solve now are genuinely amazing. And the whole idea is to build something better than the sum of it&#8217;s parts.</p><p>But we need that trust and reliability on both sides first.</p><p>We can&#8217;t sell magic and then disappear when it breaks. And we can&#8217;t expect our tools to solve every problem when the only instruction was &#8220;fix it for me&#8221;</p><p>The way to close that gap isn&#8217;t to be more impressive. It isn&#8217;t to use more AI. It&#8217;s to be more reliable and honest about everything we make, like what it can do, what it can&#8217;t, and what happens when it breaks.</p><div class="pullquote"><p><em>If you&#8217;re working through an automation problem and want to think it through before you build, reply to this email or <a href="https://calendly.com/braden-codedconstructs/30-minute-chat">reach out</a>. I&#8217;m always happy to talk through what&#8217;s worth automating and what isn&#8217;t before anyone commits to a tool that might not hold up.</em></p></div><p>Thanks for reading.</p>]]></content:encoded></item><item><title><![CDATA[The False Start Toggle: How to Control When Grasshopper Runs Things]]></title><description><![CDATA[Automatic solving isn't a good thing all the time]]></description><link>https://www.codedshapes.com/p/the-false-start-toggle-how-to-control</link><guid isPermaLink="false">https://www.codedshapes.com/p/the-false-start-toggle-how-to-control</guid><dc:creator><![CDATA[Braden Koh]]></dc:creator><pubDate>Tue, 05 May 2026 02:00:52 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!NIEl!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5c05b74-7efc-44ab-bba6-f07af8395831_3300x1858.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!NIEl!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5c05b74-7efc-44ab-bba6-f07af8395831_3300x1858.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!NIEl!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5c05b74-7efc-44ab-bba6-f07af8395831_3300x1858.png 424w, https://substackcdn.com/image/fetch/$s_!NIEl!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5c05b74-7efc-44ab-bba6-f07af8395831_3300x1858.png 848w, https://substackcdn.com/image/fetch/$s_!NIEl!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5c05b74-7efc-44ab-bba6-f07af8395831_3300x1858.png 1272w, https://substackcdn.com/image/fetch/$s_!NIEl!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5c05b74-7efc-44ab-bba6-f07af8395831_3300x1858.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!NIEl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5c05b74-7efc-44ab-bba6-f07af8395831_3300x1858.png" width="1456" height="820" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a5c05b74-7efc-44ab-bba6-f07af8395831_3300x1858.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:820,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2649343,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.codedshapes.com/i/196076442?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5c05b74-7efc-44ab-bba6-f07af8395831_3300x1858.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!NIEl!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5c05b74-7efc-44ab-bba6-f07af8395831_3300x1858.png 424w, https://substackcdn.com/image/fetch/$s_!NIEl!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5c05b74-7efc-44ab-bba6-f07af8395831_3300x1858.png 848w, https://substackcdn.com/image/fetch/$s_!NIEl!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5c05b74-7efc-44ab-bba6-f07af8395831_3300x1858.png 1272w, https://substackcdn.com/image/fetch/$s_!NIEl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5c05b74-7efc-44ab-bba6-f07af8395831_3300x1858.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>If you&#8217;ve used Grasshopper for anything remotely complex, you&#8217;ll know how annoying it is when you open the script and forgot to lock your canvas.</p><p>Even worse is if you&#8217;ve forgotten a stream of components that take a lot of time to run and you accidentally &#8220;resolve&#8221; the canvas.</p><p>Obviously, I&#8217;m speaking from experience here.</p><p>A small but vital component is the <em>False Start Toggle</em>.</p><p>It looks like an ordinary <em>Toggle</em> but <em><strong>defaults to False</strong></em> all the time. That means when you restart your script, the value of the toggle will be False.</p><div class="pullquote"><p>Subscribe to CodedShapes and I&#8217;ll send you my free guide on how to actually apply it to your projects.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.codedshapes.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.codedshapes.com/subscribe?"><span>Subscribe now</span></a></p></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!_Ckt!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ce17315-d435-4e3e-94ff-4358594cf345_805x453.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!_Ckt!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ce17315-d435-4e3e-94ff-4358594cf345_805x453.png 424w, https://substackcdn.com/image/fetch/$s_!_Ckt!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ce17315-d435-4e3e-94ff-4358594cf345_805x453.png 848w, https://substackcdn.com/image/fetch/$s_!_Ckt!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ce17315-d435-4e3e-94ff-4358594cf345_805x453.png 1272w, https://substackcdn.com/image/fetch/$s_!_Ckt!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ce17315-d435-4e3e-94ff-4358594cf345_805x453.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!_Ckt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ce17315-d435-4e3e-94ff-4358594cf345_805x453.png" width="805" height="453" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2ce17315-d435-4e3e-94ff-4358594cf345_805x453.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:453,&quot;width&quot;:805,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:24122,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.codedshapes.com/i/196076442?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ce17315-d435-4e3e-94ff-4358594cf345_805x453.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!_Ckt!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ce17315-d435-4e3e-94ff-4358594cf345_805x453.png 424w, https://substackcdn.com/image/fetch/$s_!_Ckt!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ce17315-d435-4e3e-94ff-4358594cf345_805x453.png 848w, https://substackcdn.com/image/fetch/$s_!_Ckt!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ce17315-d435-4e3e-94ff-4358594cf345_805x453.png 1272w, https://substackcdn.com/image/fetch/$s_!_Ckt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ce17315-d435-4e3e-94ff-4358594cf345_805x453.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Now, why?</p><p>Well, like a <em>data dam</em>, that means you can actually choose when to run things in Grasshopper instead of having it run all the time.</p><p>The biggest difference between the <em>false start toggle</em> and a <em>data dam</em>, is that I don&#8217;t have to click on it every time. I just have to do it when I restart my script.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!rZGv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F848fabfd-a1bc-4b6e-b33b-fbe859955643_4204x1162.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!rZGv!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F848fabfd-a1bc-4b6e-b33b-fbe859955643_4204x1162.png 424w, https://substackcdn.com/image/fetch/$s_!rZGv!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F848fabfd-a1bc-4b6e-b33b-fbe859955643_4204x1162.png 848w, https://substackcdn.com/image/fetch/$s_!rZGv!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F848fabfd-a1bc-4b6e-b33b-fbe859955643_4204x1162.png 1272w, https://substackcdn.com/image/fetch/$s_!rZGv!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F848fabfd-a1bc-4b6e-b33b-fbe859955643_4204x1162.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!rZGv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F848fabfd-a1bc-4b6e-b33b-fbe859955643_4204x1162.png" width="1456" height="402" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/848fabfd-a1bc-4b6e-b33b-fbe859955643_4204x1162.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:402,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:282936,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.codedshapes.com/i/196076442?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F848fabfd-a1bc-4b6e-b33b-fbe859955643_4204x1162.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!rZGv!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F848fabfd-a1bc-4b6e-b33b-fbe859955643_4204x1162.png 424w, https://substackcdn.com/image/fetch/$s_!rZGv!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F848fabfd-a1bc-4b6e-b33b-fbe859955643_4204x1162.png 848w, https://substackcdn.com/image/fetch/$s_!rZGv!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F848fabfd-a1bc-4b6e-b33b-fbe859955643_4204x1162.png 1272w, https://substackcdn.com/image/fetch/$s_!rZGv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F848fabfd-a1bc-4b6e-b33b-fbe859955643_4204x1162.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>Where to find this ?</h2><p>Like most things, it&#8217;s a plugin and it&#8217;s actually part of the entire suite of components in <a href="https://www.food4rhino.com/en/app/ladybug-tools">LadyBug</a>.</p><p>Which yes, I know it&#8217;s annoying to install the entire suite of tools just to get the False Start Toggle. So, I&#8217;ve actually separated it out for you.</p><p>I&#8217;ve attached the standalone component file below. You can drop it directly into your Grasshopper libraries folder without installing anything else.</p><p><a href="https://drive.google.com/file/d/1O0lYIJbujlDNh3_MywaDJZKTCIvY1LWT/view?usp=sharing">&#8594; Get the False Start Toggle here </a></p><p>I hope that helps.</p><div class="pullquote"><p>If you&#8217;re thinking about bringing computational design into a project, I&#8217;m happy to talk through how you&#8217;re framing the problem and if it&#8217;s the right solution.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://calendly.com/braden-codedconstructs/30-minute-chat&quot;,&quot;text&quot;:&quot;Chat With Me&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://calendly.com/braden-codedconstructs/30-minute-chat"><span>Chat With Me</span></a></p></div><p>Thanks for reading.</p>]]></content:encoded></item><item><title><![CDATA[It Takes Two to Build the Right Thing]]></title><description><![CDATA[Conversation not instructions is right way to build things]]></description><link>https://www.codedshapes.com/p/it-takes-two-to-build-the-right-thing</link><guid isPermaLink="false">https://www.codedshapes.com/p/it-takes-two-to-build-the-right-thing</guid><dc:creator><![CDATA[Braden Koh]]></dc:creator><pubDate>Thu, 30 Apr 2026 02:00:52 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!zXiH!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58c101e4-f836-4de7-9bb6-c040cbe71057_3300x1858.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!zXiH!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58c101e4-f836-4de7-9bb6-c040cbe71057_3300x1858.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!zXiH!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58c101e4-f836-4de7-9bb6-c040cbe71057_3300x1858.png 424w, https://substackcdn.com/image/fetch/$s_!zXiH!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58c101e4-f836-4de7-9bb6-c040cbe71057_3300x1858.png 848w, https://substackcdn.com/image/fetch/$s_!zXiH!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58c101e4-f836-4de7-9bb6-c040cbe71057_3300x1858.png 1272w, https://substackcdn.com/image/fetch/$s_!zXiH!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58c101e4-f836-4de7-9bb6-c040cbe71057_3300x1858.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!zXiH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58c101e4-f836-4de7-9bb6-c040cbe71057_3300x1858.png" width="1456" height="820" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/58c101e4-f836-4de7-9bb6-c040cbe71057_3300x1858.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:820,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2845785,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.codedshapes.com/i/195512002?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58c101e4-f836-4de7-9bb6-c040cbe71057_3300x1858.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!zXiH!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58c101e4-f836-4de7-9bb6-c040cbe71057_3300x1858.png 424w, https://substackcdn.com/image/fetch/$s_!zXiH!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58c101e4-f836-4de7-9bb6-c040cbe71057_3300x1858.png 848w, https://substackcdn.com/image/fetch/$s_!zXiH!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58c101e4-f836-4de7-9bb6-c040cbe71057_3300x1858.png 1272w, https://substackcdn.com/image/fetch/$s_!zXiH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58c101e4-f836-4de7-9bb6-c040cbe71057_3300x1858.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>About a year ago, a site coordinator came to me with a request. Let&#8217;s call him Marcus.</p><p>He was confident, specific, and he knew <em>exactly</em> what he wanted. That&#8217;s actually a rare case. Most of the time, people know they have a problem but they don&#8217;t know what they need to solve it.</p><p>Marcus wanted a script that colours panels in a Revit model based on their installation status. His company was installing panels across a few storage warehouses and he wanted to know the statuses of the panels. The current workflow was every day, contractors on site would update an Excel sheet with that status. Marcus would then review that status but it was hard to know where those panels actually were. I mean they had IDs but how do you know where those panels actually are ?</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!tNzP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F868f5055-12cf-4fab-8ce0-9b7a1a93b47c_2560x1126.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!tNzP!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F868f5055-12cf-4fab-8ce0-9b7a1a93b47c_2560x1126.png 424w, https://substackcdn.com/image/fetch/$s_!tNzP!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F868f5055-12cf-4fab-8ce0-9b7a1a93b47c_2560x1126.png 848w, https://substackcdn.com/image/fetch/$s_!tNzP!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F868f5055-12cf-4fab-8ce0-9b7a1a93b47c_2560x1126.png 1272w, https://substackcdn.com/image/fetch/$s_!tNzP!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F868f5055-12cf-4fab-8ce0-9b7a1a93b47c_2560x1126.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!tNzP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F868f5055-12cf-4fab-8ce0-9b7a1a93b47c_2560x1126.png" width="1456" height="640" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/868f5055-12cf-4fab-8ce0-9b7a1a93b47c_2560x1126.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:640,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:248240,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.codedshapes.com/i/195512002?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F868f5055-12cf-4fab-8ce0-9b7a1a93b47c_2560x1126.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!tNzP!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F868f5055-12cf-4fab-8ce0-9b7a1a93b47c_2560x1126.png 424w, https://substackcdn.com/image/fetch/$s_!tNzP!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F868f5055-12cf-4fab-8ce0-9b7a1a93b47c_2560x1126.png 848w, https://substackcdn.com/image/fetch/$s_!tNzP!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F868f5055-12cf-4fab-8ce0-9b7a1a93b47c_2560x1126.png 1272w, https://substackcdn.com/image/fetch/$s_!tNzP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F868f5055-12cf-4fab-8ce0-9b7a1a93b47c_2560x1126.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>So, he wants a script to read it and update the colours in the model.</p><p>I remember thinking, <em>oh, this is straightforward</em>. He&#8217;s already done the thinking, I just need to build it. The problem was clear and the solution made perfect sense. We signed. And a week later, I showed him the script.</p><p>Marcus nodded. &#8220;Yeah, that&#8217;s cool and all, but how do I see what the panels the contractors last installed? I need to see if we are on schedule&#8221;</p><p>I replied, &#8220;Uh.... you don&#8217;t. This reads the Excel sheet and colours the model. Like you wanted.&#8221;</p><p>&#8220;Okay, but I need to see which panels were installed before and which are installed today&#8221;</p><p>It turns out what Marcus actually needed was a way to retain the <em>history</em> of installation not just show the status of the panels. He wanted to see movement and statuses over time, not just update the model with the latest information.</p><p>The script worked perfectly. It just solved the wrong problem.</p><p>It would have been easy to blame Marcus for not communicating properly. But I also never asked <em>why</em> he needed to see the install statuses in the model. I didn&#8217;t ask <em>why</em> he wanted that information. He only told me after seeing the script for the first time.</p><p>I got lucky though. The rework was a straightforward addition. But if Marcus had wanted the site contractors to run the tool, or if there were more complex requirements buried in that brief, I would have been rebuilding from scratch. And I would be having an awkward conversation with Marcus about the fee.</p><div class="pullquote"><p>Subscribe to CodedShapes and I&#8217;ll send you my free guide on how to actually do that.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.codedshapes.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.codedshapes.com/subscribe?"><span>Subscribe now</span></a></p></div><h2>Walking Into the Middle</h2><p>This is, unfortunately, a more common experience that I would like.</p><p>Digital projects almost never start from a blank slate. Normally, someone already has some ideas about what should happen but they may not communicate that to you because it&#8217;s &#8220;common knowledge&#8221;. And if we take them at face value, we might end up building something completely off the mark.</p><p>I remember another time where I walked into the middle of a client&#8217;s political debate to switch from using Solidworks to Tekla Structures. I was told to write two proposals for two different programs because they wanted to understand the impact of switching programs. </p><p>To them, it made sense. Get the expert to vet the processes and then figure out which is the better option. But they wanted two proposals written up in a week without any additional meetings. They said &#8220;it&#8217;s all common sense&#8221;, so this should be easy.</p><p>But I am not apart of their processes, what may seem like common sense to them are assumptions and decisions that I don&#8217;t know. So, it was damn near impossible to come up with accurate requirements.</p><h2>There&#8217;s always more than meets the eye</h2><p>The better the work looks, the easier it seems. And the easier it seems, the more likely you will build the wrong thing.</p><p>&#8220;Just add this&#8221; is never just adding a feature. If something sounds too good to be true, we have to stop and assess whether there are any other hidden complexities behind it. </p><p>Of course, we won&#8217;t be able to predict everything but we can&#8217;t be too reductive about complexity. Especially, when we aren&#8217;t steep in their environment.</p><h2>It takes two to build the right thing</h2><p>I had another client who wanted a plugin in Tekla. The brief was was also clean, go from a quotation spreadsheet to a 3D model. And their instinct, like Marcus&#8217;s, was to fast track things. Give the fee, the timeline, approve it, and let me handle it.</p><p>After having learnt my lesson with Marcus, I reined it in and asked more questions.</p><p>It was uncomfortable because it seemed like I was skeptical but it was actually because they didn&#8217;t have a clear picture of what a Tekla plugin meant for their workflow. I was worried that they were developing their workflow and plugin at the same time, which is never a good idea. A good plugin needs to be embedded into a process not a new one. </p><p>After some pushing and prodding, we finally agreed to a discovery phase first. We went through the spreadsheet together. We explored what deployment would look like. We even checked if another program was a better fit.</p><p>And two things came out of that phase that we couldn&#8217;t have found on our own.</p><p>First, they were already working on a new version of the spreadsheet. If I&#8217;d built the plugin to the existing one, it would have broke within months.</p><p>Second, they had only one Tekla license, which meant only one person needed to run it. That cut the deployment complexity significantly because I didn&#8217;t have to worry about company wide IT policies yet.</p><p>We ended up waiting two more months to build the plugin. And, I&#8217;m glad that we did because it ended up being more stable and much closer to the workflow they wanted. The overall delivery was slower but it was more intentional and more valuable to everyone. </p><h2>You want a discussion not instruction</h2><p>The best tool or script isn&#8217;t one person building exactly what the other person asked for. If you want that, LLMs are getting really good at that.</p><p>It&#8217;s actually, two people figuring out what should actually be built given the situation and the problem.</p><p>That starts with a client who&#8217;s willing to share the context, not just the brief. And a digital person who&#8217;s willing to ask, not just build.</p><div class="pullquote"><p>If you&#8217;re thinking about bringing computational design into a project, I&#8217;m happy to talk through how you&#8217;re framing the problem and if it&#8217;s the right solution.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://calendly.com/braden-codedconstructs/30-minute-chat&quot;,&quot;text&quot;:&quot;Chat with me&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://calendly.com/braden-codedconstructs/30-minute-chat"><span>Chat with me</span></a></p></div>]]></content:encoded></item></channel></rss>