<?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[The Spatial Heritage Review: Tutorials & Tools]]></title><description><![CDATA[Learn how to create and work with cultural heritage 3D data, plus news and reviews of creative tools & services.]]></description><link>https://nebulousflynn.substack.com/s/spatial-heritage-tutorials-and-tools</link><image><url>https://substackcdn.com/image/fetch/$s_!F11G!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83f1a1a7-39fe-4baa-86e3-c276c9978441_501x501.png</url><title>The Spatial Heritage Review: Tutorials &amp; Tools</title><link>https://nebulousflynn.substack.com/s/spatial-heritage-tutorials-and-tools</link></image><generator>Substack</generator><lastBuildDate>Sun, 03 May 2026 23:54:19 GMT</lastBuildDate><atom:link href="https://nebulousflynn.substack.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Thomas Flynn]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[nebulousflynn@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[nebulousflynn@substack.com]]></itunes:email><itunes:name><![CDATA[Thomas Flynn]]></itunes:name></itunes:owner><itunes:author><![CDATA[Thomas Flynn]]></itunes:author><googleplay:owner><![CDATA[nebulousflynn@substack.com]]></googleplay:owner><googleplay:email><![CDATA[nebulousflynn@substack.com]]></googleplay:email><googleplay:author><![CDATA[Thomas Flynn]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Optimising 3D for the Web, AR, & VR]]></title><description><![CDATA[5 tools you can use to help your 3D data satisfy the widest online audience.]]></description><link>https://nebulousflynn.substack.com/p/optimising-3d-for-the-web-ar-and</link><guid isPermaLink="false">https://nebulousflynn.substack.com/p/optimising-3d-for-the-web-ar-and</guid><dc:creator><![CDATA[Thomas Flynn]]></dc:creator><pubDate>Thu, 20 Feb 2025 12:27:08 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!5ars!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F374f77bf-f39b-47b0-9f06-7678f54f8f12_1422x800.gif" length="0" type="image/jpeg"/><content:encoded><![CDATA[<blockquote><p>This post demonstrates several tools to optimise a 3D asset for publishing online, AR, &amp; VR. It doesn&#8217;t go into huge detail for each tool, but hopefully it gives you a starting point for your own investigations!</p></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!5ars!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F374f77bf-f39b-47b0-9f06-7678f54f8f12_1422x800.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!5ars!,w_424,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F374f77bf-f39b-47b0-9f06-7678f54f8f12_1422x800.gif 424w, https://substackcdn.com/image/fetch/$s_!5ars!,w_848,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F374f77bf-f39b-47b0-9f06-7678f54f8f12_1422x800.gif 848w, https://substackcdn.com/image/fetch/$s_!5ars!,w_1272,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F374f77bf-f39b-47b0-9f06-7678f54f8f12_1422x800.gif 1272w, https://substackcdn.com/image/fetch/$s_!5ars!,w_1456,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F374f77bf-f39b-47b0-9f06-7678f54f8f12_1422x800.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!5ars!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F374f77bf-f39b-47b0-9f06-7678f54f8f12_1422x800.gif" width="1422" height="800" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/374f77bf-f39b-47b0-9f06-7678f54f8f12_1422x800.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:800,&quot;width&quot;:1422,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:5610303,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/gif&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://nebulousflynn.substack.com/i/156920696?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F374f77bf-f39b-47b0-9f06-7678f54f8f12_1422x800.gif&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!5ars!,w_424,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F374f77bf-f39b-47b0-9f06-7678f54f8f12_1422x800.gif 424w, https://substackcdn.com/image/fetch/$s_!5ars!,w_848,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F374f77bf-f39b-47b0-9f06-7678f54f8f12_1422x800.gif 848w, https://substackcdn.com/image/fetch/$s_!5ars!,w_1272,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F374f77bf-f39b-47b0-9f06-7678f54f8f12_1422x800.gif 1272w, https://substackcdn.com/image/fetch/$s_!5ars!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F374f77bf-f39b-47b0-9f06-7678f54f8f12_1422x800.gif 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 think that a lot of folks in the heritage sector are publishing interactive 3D data online that is a little too heavy for &#8216;regular people&#8217; to enjoy. There, I said it &#128569;.</p><p>Just to be clear I am referring to <em>interactive </em>3D data: for the record I think it is great to offer academics and creatives open access to high resolution data sets. For most people in the world, however, interacting with an optimised 3D file will be a <em>much</em> better experience: faster to download, better performance on all devices. </p><p>I&#8217;ve said as much in many keynotes and presentations over the years, but I still note the tension between professionals wanting to demonstrate their work at the highest resolution, but also wanting to reach wider audiences.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!wljZ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63633185-85af-4733-9763-4abbf5f8f794_3840x1080.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!wljZ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63633185-85af-4733-9763-4abbf5f8f794_3840x1080.jpeg 424w, https://substackcdn.com/image/fetch/$s_!wljZ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63633185-85af-4733-9763-4abbf5f8f794_3840x1080.jpeg 848w, https://substackcdn.com/image/fetch/$s_!wljZ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63633185-85af-4733-9763-4abbf5f8f794_3840x1080.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!wljZ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63633185-85af-4733-9763-4abbf5f8f794_3840x1080.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!wljZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63633185-85af-4733-9763-4abbf5f8f794_3840x1080.jpeg" width="1456" height="410" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/63633185-85af-4733-9763-4abbf5f8f794_3840x1080.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:410,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:790280,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!wljZ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63633185-85af-4733-9763-4abbf5f8f794_3840x1080.jpeg 424w, https://substackcdn.com/image/fetch/$s_!wljZ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63633185-85af-4733-9763-4abbf5f8f794_3840x1080.jpeg 848w, https://substackcdn.com/image/fetch/$s_!wljZ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63633185-85af-4733-9763-4abbf5f8f794_3840x1080.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!wljZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63633185-85af-4733-9763-4abbf5f8f794_3840x1080.jpeg 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><figcaption class="image-caption">Some slides I&#8217;ve trotted out in presentation decks from time to time. </figcaption></figure></div><div class="pullquote"><p>Optimising your 3D assets for online audiences is essential for reaching the widest audience.</p></div><p>An added bonus of optimising your 3D data for the web is that it is then often suitable for AR, VR, and game engine applications. In this way you&#8217;re facilitating more use cases for the fruits of your digitisation work. Nice.</p><p><strong>So how much should you optimise a given 3D asset?</strong> </p><p>My answer is always the same: as much as you can while still meeting the needs of your chosen audience. I always think of 3D as &#8216;just another kind of image&#8217; and I don&#8217;t think anyone regularly expects an end user to load (for comparison) a TIFF image that weighs 100s of megabytes in their web browser: we convert images to nice, tiny, web friendly JPGs. Let&#8217;s do the same for our 3D! &#128170;</p><h1>Time. To. Optimise.</h1><p>Scroll on and you will find short tutorials showing you how to optimise the same 3D asset using 5 different tools. &#128071; </p><p>Some notes before we begin:</p><ul><li><p>We&#8217;ll going from a 3D model of 1,000,000 face geometry and an 8192x8192 PNG colour texture map (<a href="https://sketchfab.com/models/c46afe2f573341469fa41b758e627f45/embed">link</a>) to a model of 50,000 faces + 4096x4096 colour texture map (links to output 3D files from each tool can be found in each article subsection below).</p></li><li><p>For the sake of simplicity, I&#8217;m not worried about generating normal maps for now (&#128576; scandalous, I know).</p></li><li><p>The example 3D model (single mesh, single texture) used in these demos is pretty straight forward, things can get more complicated with some of the workflows depending on file formats, animated meshes, multiple textures, etc. etc.</p></li><li><p>Of course you can output an optimised 3D model directly from e.g. your photogrammetry software, but these tutorials are for those occasions when a 3D model already exists and you don&#8217;t have access to the source project data.</p></li><li><p>As a baseline, <a href="https://sketchfab.com/models/af8a03386eac4acdb0c8959a79dcb103/embed">here is a link</a> to a version of the 3D model optimised to 50,000 faces + 4k PNG texture using the original RealityCapture photogrammetry project. </p></li></ul><p>OK, now on with the demonstrations!</p><div><hr></div><h1>Meshlab</h1><div id="youtube2-cLEdKYdFtNw" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;cLEdKYdFtNw&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/cLEdKYdFtNw?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><h2>Quick Guide:</h2><ol><li><p>Import.</p></li><li><p>Apply filter.</p></li><li><p>Export.</p></li><li><p>Resize texture map (I used https://onlinepngtools.com/resize-png, renamed it and replaced it in the source directory.)</p></li><li><p>In my experience, the image texture became disassociated from the .obj/.mtl and I had to re-link in my final 3D viewer.</p></li><li><p>Done!</p></li></ol><p>&#128190; <a href="https://sketchfab.com/3d-models/water-moon-guanyin-50k-4k-meshlab-675154dfe63b4ff39dea4fdded9d1007">Link to output 3D file on Sketchfab</a>.</p><h2>Summary</h2><p>Price: FREE!<br>Get <a href="https://www.meshlab.net/#download">Meshlab</a>.<br>Time it took: 5 minutes. <br>Difficulty: 1/5<br>User control: 2/5<br>Output file size: 6mb</p><div><hr></div><h1>Blender</h1><div id="youtube2-sZi-CnGRnGA" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;sZi-CnGRnGA&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/sZi-CnGRnGA?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><h2>Quick Guide:</h2><ol><li><p>Import mesh, scale to approximate dimensions in metres.</p></li><li><p>Duplicated mesh.</p></li><li><p>Decimated Mesh &gt; 50,000 faces (ration of 0.05).</p></li><li><p>Removed Material, created new Material.</p></li><li><p>Create new image 4096x4096, assign to material diffuse slot.</p></li><li><p>Add to shader editor.</p></li><li><p>Select high res mesh, shift-select low res mesh, select texture to bake to.</p></li><li><p>Bake using Cycles render:</p><ul><li><p>Bake type diffuse.</p></li><li><p>Influence contributions: colour only</p></li><li><p>Enable <strong>Selected to active</strong></p><ul><li><p><a href="https://docs.blender.org/manual/en/latest/render/cycles/baking.html">Extrusion</a> (how far outside of the low res mesh the bake will look for data) 0.02m</p></li></ul></li></ul></li><li><p>Connect baked texture in shader editor to check result.</p></li><li><p>Export mesh &amp; texture map.</p></li><li><p>Done!</p></li></ol><p>&#128190; <a href="https://sketchfab.com/3d-models/water-moon-guanyin-50k-4k-blender-73e122dd932742e7ae23d8b5948de2a8">Link to the output 3D model on Sketchfab</a>.</p><h2>Summary</h2><p>Price: FREE!<br>Get <a href="https://www.blender.org/">Blender</a>.<br>Time it took: 15 minutes. <br>Time it took to figure out: Hours &#128517;<br>Difficulty: 4/5<br>User control: 5/5<br>Output file size: 11MB</p><div><hr></div><h1>RapidPipeline</h1><div id="youtube2-mKP4yjMIQU4" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;mKP4yjMIQU4&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/mKP4yjMIQU4?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><h2>Quick Guide:</h2><ol><li><p>Sign up, log in.</p></li><li><p>Upload asset.</p></li><li><p>Choose / edit a 3D processing preset.</p></li><li><p>Hit &#8216;Run 3D Processor&#8217;</p></li><li><p>Done!</p></li></ol><p>&#128190; <a href="https://api.rapidpipeline.com/viewer?id=AES4HUQtYd">Link to optimised file hosted on rapidpipeline.com</a>.</p><h2>Summary</h2><p>Price: Starts at $15 /month billed annually, FREE trial available.<br>Get <a href="https://rapidpipeline.com/">RapidPipeline</a><br>Time it took: 10 minutes. <br>Difficulty: 1/5<br>User control: 5/5<br>Output file size: 7MB</p><div><hr></div><h1>Needle Cloud (Beta)</h1><div id="youtube2-cyVbf_1MKiU" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;cyVbf_1MKiU&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/cyVbf_1MKiU?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><h2>Quick Guide</h2><ol><li><p>Sign up, log in.</p></li><li><p>Upload 3D asset.</p></li><li><p>Done!</p></li></ol><p>Needle Cloud automatically produces a number of 3D outputs derived from your input file:</p><ul><li><p>A converted GLB.</p></li><li><p>An optimised GLB.</p></li><li><p> 2x progressive loading GLBs (multiple levels of detail for meshes and textures)  </p></li></ul><p>&#128190; <a href="https://cloud.needle.tools/view?file=Z2uN6eGZ2e2aBN-2hTucu-product">Link to 3D file hosted on Needle Cloud</a></p><p>&#9888;&#65039; I may be doing something wrong, but from my experience, optimised output files were not compatible with Sketchfab, Windows 3D Viewer, or Blender due to their using glTF extensions unsupported by those tools.</p><h2>Summary</h2><p>Price: FREE for evaluation purposes, artistic expression or non-commercial use. Commercial plans start at &#8364;17/month billed annually.<br>Get <a href="https://cloud.needle.tools/">Needle Cloud</a>.<br>Time it took: 10 minutes. <br>Difficulty: 1/5<br>User control: 1/5<br>Output file size: 4.5 - 11MB</p><div><hr></div><h1>Polycam</h1><div id="youtube2-_Xg3sZdAnec" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;_Xg3sZdAnec&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/_Xg3sZdAnec?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><h2>Quick Guide</h2><ol><li><p>Sign up, log in.</p></li><li><p>Hit &#8216;+ Create&#8217; button, choose &#8216;Upload 3D Asset&#8217;</p></li><li><p>Select your files, upload.</p></li><li><p>Open uploaded asset, select &#8216;Remesh&#8217;.</p></li><li><p>Adjust remeshing parameters, hit &#8216;Remesh&#8217;.</p></li><li><p>Done!</p></li></ol><p>&#128190; <a href="https://sketchfab.com/models/99ca23345b6a4e0c8917bada04f90f3f/embed">Link to optimised 3D file hosted on sketchfab.com</a>.</p><h2>Summary</h2><p>Price: FREE plan available. Pro plan starts at $24.99/month billed annually.<br>Get <a href="https://poly.cam/pricing">Polycam</a>.<br>Time it took: 15 minutes. <br>Difficulty: 1/5<br>User control: 3/5 <br>Output filesize: 41MB</p><div><hr></div><h1>Conclusion</h1><p>Happily, there are lots of ways to achieve 3D model simplification and several of them completely free. Which tools did I miss which you use regularly for this kind of task?</p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://nebulousflynn.substack.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">Thanks for reading The Spatial Heritage Review! Subscribe for free to receive new posts and support my work.</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>]]></content:encoded></item><item><title><![CDATA[How many ways can you experience an Iron Age Roundhouse in 3D?]]></title><description><![CDATA[Quite a few actually!]]></description><link>https://nebulousflynn.substack.com/p/how-many-ways-can-you-experience</link><guid isPermaLink="false">https://nebulousflynn.substack.com/p/how-many-ways-can-you-experience</guid><dc:creator><![CDATA[Thomas Flynn]]></dc:creator><pubDate>Mon, 13 May 2024 10:01:05 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F458cf35a-9a84-4ebc-aa31-24613b20263f_800x450.gif" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p></p><div class="image-gallery-embed" data-attrs="{&quot;gallery&quot;:{&quot;images&quot;:[{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/011de2e8-b90b-48ba-8ae5-55cd258aadbb_2268x4032.jpeg&quot;},{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/496fda80-0bd4-4f32-88d5-148b81dfa8fa_4032x2268.jpeg&quot;}],&quot;caption&quot;:&quot;A classic overcast spring day in the UK - perfect for photogrammetry! &quot;,&quot;alt&quot;:&quot;&quot;,&quot;staticGalleryImage&quot;:{&quot;type&quot;:&quot;image/png&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7fa04879-2106-4b75-b6dd-0b8f2ffd34f2_1456x720.png&quot;}},&quot;isEditorNode&quot;:true}"></div><p>You may remember that I paid a visit to a local historical site and <a href="https://nebulousflynn.substack.com/p/can-you-digitise-an-iron-age-roundhouse">made some 3D captures</a> of the in-progress reconstruction of an Iron Age roundhouse. Well I&#8217;ve been back to the site and during better weather (and with a bit more planning) I captured a more complete scan of the exterior. Then I had some fun&#8230;</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://nebulousflynn.substack.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://nebulousflynn.substack.com/subscribe?"><span>Subscribe now</span></a></p><h1>A whole new scan<a href="https://www.youtube.com/watch?v=hZ1Rb9hC4JY">.</a></h1><p>After my last capture, I realised that capturing the complete roundhouse from the ground would be tricky without the ability to elevate my camera. As I don&#8217;t own a drone I had to resort to something a little less high tech: a camera on a pole.</p><p>I own <a href="https://www.bax-shop.co.uk/boom-pole/konig-meyer-23770-fibreglass-telescope">this</a> microphone boom pole from a previous life as a sound recordist, and as my <a href="https://www.mpb.com/en-uk/product/canon-powershot-g7-x/sku-2511406">Canon G7X</a> camera isn&#8217;t too heavy (302 grams) I was able to hoist the device 5 metres into the air fairly easily. Even so, things were still a little bit wobbly.</p><p>I could trigger the shutter from my smartphone using the <a href="https://www.canon.co.uk/apps/canon-camera-connect/">Canon Camera Connect app</a> over a direct wifi connection, which also gives you a preview of the viewfinder. It&#8217;s all pretty basic, but it does the job!</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!FqxM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d6392ce-d691-48cc-85bb-81ff2b9416f3_1920x1200.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!FqxM!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d6392ce-d691-48cc-85bb-81ff2b9416f3_1920x1200.jpeg 424w, https://substackcdn.com/image/fetch/$s_!FqxM!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d6392ce-d691-48cc-85bb-81ff2b9416f3_1920x1200.jpeg 848w, https://substackcdn.com/image/fetch/$s_!FqxM!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d6392ce-d691-48cc-85bb-81ff2b9416f3_1920x1200.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!FqxM!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d6392ce-d691-48cc-85bb-81ff2b9416f3_1920x1200.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!FqxM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d6392ce-d691-48cc-85bb-81ff2b9416f3_1920x1200.jpeg" width="1456" height="910" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0d6392ce-d691-48cc-85bb-81ff2b9416f3_1920x1200.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:910,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Image&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Image" title="Image" srcset="https://substackcdn.com/image/fetch/$s_!FqxM!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d6392ce-d691-48cc-85bb-81ff2b9416f3_1920x1200.jpeg 424w, https://substackcdn.com/image/fetch/$s_!FqxM!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d6392ce-d691-48cc-85bb-81ff2b9416f3_1920x1200.jpeg 848w, https://substackcdn.com/image/fetch/$s_!FqxM!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d6392ce-d691-48cc-85bb-81ff2b9416f3_1920x1200.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!FqxM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d6392ce-d691-48cc-85bb-81ff2b9416f3_1920x1200.jpeg 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>All in all I captured 587 images in just under one hour of shooting, then processed the set in <a href="https://www.agisoft.com/">Metashape</a> (I had issues aligning using RealityCapture), finally making some basic cropping edits in <a href="https://www.blender.org/">Blender</a>.</p><h2>Bonus: a quick splat</h2><p>The iOS 3D scanning app <a href="https://scaniverse.com/">Scaniverse</a>, recently added support for capturing <a href="https://nebulousflynn.substack.com/p/3d-gaussian-splats-of-local-flora">gaussian splats</a>. The <a href="https://scaniverse.com/scan/xz76y2u3jlga3fnk">resulting 3D scene</a> is a little noisy  with lots of &#8216;floaters&#8217; from the sky but still pretty neat IMO, for under 2 minutes of capture time.</p><h1>Time for some fun<a href="https://youtu.be/GG_aCRrLCWs">.</a></h1><p>While capturing the roundhouse and processing the 3D model is rewarding in itself, the possibilities to use and re-use the data are even more exciting (for a nerd like me).</p><h2>Reaching online audiences with Sketchfab</h2><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;2948f1d0-71a0-427b-bc60-16b689b1f3fb&quot;,&quot;duration&quot;:null}"></div><p>You can explore and download the output <a href="https://sketchfab.com/3d-models/iron-age-roundhouse-reconstruction-april-2024-0608ab8dcf3d4a9183c01e87eb1c4bcf">mesh model</a> as well as a <a href="https://sketchfab.com/3d-models/iron-age-roundhouse-pointcloud-6e676c24a8194420b6fdc80a0525211b">point cloud</a> on Sketchfab.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!BNBx!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F458cf35a-9a84-4ebc-aa31-24613b20263f_800x450.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!BNBx!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F458cf35a-9a84-4ebc-aa31-24613b20263f_800x450.gif 424w, https://substackcdn.com/image/fetch/$s_!BNBx!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F458cf35a-9a84-4ebc-aa31-24613b20263f_800x450.gif 848w, https://substackcdn.com/image/fetch/$s_!BNBx!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F458cf35a-9a84-4ebc-aa31-24613b20263f_800x450.gif 1272w, https://substackcdn.com/image/fetch/$s_!BNBx!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F458cf35a-9a84-4ebc-aa31-24613b20263f_800x450.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!BNBx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F458cf35a-9a84-4ebc-aa31-24613b20263f_800x450.gif" width="800" height="450" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/458cf35a-9a84-4ebc-aa31-24613b20263f_800x450.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:450,&quot;width&quot;:800,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2878513,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/gif&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!BNBx!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F458cf35a-9a84-4ebc-aa31-24613b20263f_800x450.gif 424w, https://substackcdn.com/image/fetch/$s_!BNBx!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F458cf35a-9a84-4ebc-aa31-24613b20263f_800x450.gif 848w, https://substackcdn.com/image/fetch/$s_!BNBx!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F458cf35a-9a84-4ebc-aa31-24613b20263f_800x450.gif 1272w, https://substackcdn.com/image/fetch/$s_!BNBx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F458cf35a-9a84-4ebc-aa31-24613b20263f_800x450.gif 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><p>If you can think of  a better place to publish 3D data online, I am ready to hear it :) Of course Sketchfab is no replacement for a proper data repository (&#8230;and the core product has not been updated in some time &#8230;and the impending transformation into <a href="https://www.fab.com/">Fab</a> is a bit of an unknown for the cultural heritage community) but, honestly, the more I explore self hosting of 3D, the more impressed I am by the product that the Sketchfab team has built.</p><h2>Bonus: taking the roundhouse to the beach.</h2><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;8c99c5ad-10f0-4aee-b822-d833d61626ba&quot;,&quot;duration&quot;:null}"></div><p>The roundhouse is located inland facing north, away from the sea ...so using Sketchfab&#8217;s AR view, I took it to the beach to enjoy the sunset view &#127754;&#128524;&#127749;.</p><h2>Exploring visualisation with Twinmotion</h2><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;44a4e185-0259-432d-877a-f57cf86ccf07&quot;,&quot;duration&quot;:null}"></div><p><a href="https://www.twinmotion.com/en-US">Twinmotion</a> is a piece of visualization and rendering software based on Unreal Engine - it has all the power of that game engine&#8217;s rendering capabilities, but with a <strong>much </strong>more non-game-developer-friendly user interface and user experience.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!MQb_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2735ba5c-4c1d-410f-bcd4-884846c15cdc_1920x1200.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!MQb_!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2735ba5c-4c1d-410f-bcd4-884846c15cdc_1920x1200.png 424w, https://substackcdn.com/image/fetch/$s_!MQb_!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2735ba5c-4c1d-410f-bcd4-884846c15cdc_1920x1200.png 848w, https://substackcdn.com/image/fetch/$s_!MQb_!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2735ba5c-4c1d-410f-bcd4-884846c15cdc_1920x1200.png 1272w, https://substackcdn.com/image/fetch/$s_!MQb_!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2735ba5c-4c1d-410f-bcd4-884846c15cdc_1920x1200.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!MQb_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2735ba5c-4c1d-410f-bcd4-884846c15cdc_1920x1200.png" width="1456" height="910" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2735ba5c-4c1d-410f-bcd4-884846c15cdc_1920x1200.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:910,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1809451,&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;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!MQb_!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2735ba5c-4c1d-410f-bcd4-884846c15cdc_1920x1200.png 424w, https://substackcdn.com/image/fetch/$s_!MQb_!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2735ba5c-4c1d-410f-bcd4-884846c15cdc_1920x1200.png 848w, https://substackcdn.com/image/fetch/$s_!MQb_!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2735ba5c-4c1d-410f-bcd4-884846c15cdc_1920x1200.png 1272w, https://substackcdn.com/image/fetch/$s_!MQb_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2735ba5c-4c1d-410f-bcd4-884846c15cdc_1920x1200.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">The Twimotion user interface.</figcaption></figure></div><p>Primarily intended for use in the architectural industry, Twinmotion has an impressive array of tools for importing 3D models, adding landscapes, scenery, vegetation, setting lighting, weather conditions, and more. </p><p>Once you get the hang of using the app it is very easy to create some great looking images and video renders: I created the scenes shown in the video above in about an hour or two. </p><p>After exporting my rendered videos, I added some sound suitable recordings from my <a href="https://freesound.org/people/nebulousflynn/">personal Freesound library</a> for a little more ambiance. While none of what I created is backed by academic research, I hope I have demonstrated the possibilities of adding some life and context to a 3D scan.</p><h2>Geolocation with Cesium</h2><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;e0f3e7a3-76f8-4a80-8fc3-91c817a0bf7a&quot;,&quot;duration&quot;:null}"></div><p><a href="https://cesium.com/">Cesium</a> is a platform for geospatial 3D, one of the biggest players in fact and (as far as I can see) the most easy to use for creating online content. While there is a whole lot  more to the platform than I will write here, the main affordance of Cesium for me is to plonk a 3D model somewhere on a 3D globe, and share a link.</p><p>I used <a href="https://cesium.com/platform/cesium-ion/cesium-stories/">Cesium Stories</a> to create the demo here. This free service lets you import 3D data (which Cesium then automatically optimises, compresses, and tiles), place it precisely on a 3D globe, and create a step by step realtime 3D tour for your end user.</p><p>You can try the simple experience shown in the video yourself <a href="https://ion.cesium.com/stories/viewer/?id=1a8318ca-ae34-4de4-acd9-9fbd68005945">here</a>.</p><h2>Interactive AR with Adobe Aero</h2><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;dcbc95ba-f5c5-4522-9562-b649a89a0342&quot;,&quot;duration&quot;:null}"></div><p><a href="https://www.adobe.com/products/aero.html">Aero</a> is part of the Adobe suite of 3D tools, designed for authoring <em>interactive</em> augmented reality content. I use italics there because this differs quite a bit from the simple Sketchfab AR demo shown earlier in this article.</p><p>I&#8217;ve only just started using Aero, but my impression is that it is quite a capable app with a fairly intuitive user interface and &#8216;behaviours&#8217; node system for no-code programming of interactivity. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!FvfF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdafbf830-8be3-41c8-90e4-0c73aa193605_1920x1200.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!FvfF!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdafbf830-8be3-41c8-90e4-0c73aa193605_1920x1200.png 424w, https://substackcdn.com/image/fetch/$s_!FvfF!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdafbf830-8be3-41c8-90e4-0c73aa193605_1920x1200.png 848w, https://substackcdn.com/image/fetch/$s_!FvfF!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdafbf830-8be3-41c8-90e4-0c73aa193605_1920x1200.png 1272w, https://substackcdn.com/image/fetch/$s_!FvfF!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdafbf830-8be3-41c8-90e4-0c73aa193605_1920x1200.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!FvfF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdafbf830-8be3-41c8-90e4-0c73aa193605_1920x1200.png" width="1456" height="910" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/dafbf830-8be3-41c8-90e4-0c73aa193605_1920x1200.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:910,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:981549,&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;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!FvfF!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdafbf830-8be3-41c8-90e4-0c73aa193605_1920x1200.png 424w, https://substackcdn.com/image/fetch/$s_!FvfF!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdafbf830-8be3-41c8-90e4-0c73aa193605_1920x1200.png 848w, https://substackcdn.com/image/fetch/$s_!FvfF!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdafbf830-8be3-41c8-90e4-0c73aa193605_1920x1200.png 1272w, https://substackcdn.com/image/fetch/$s_!FvfF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdafbf830-8be3-41c8-90e4-0c73aa193605_1920x1200.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><p>In my first few minutes using the app I was able to load two versions of my roundhouse scans (one before thatching, one after) and program a tap interaction that would fade between the two scans. Duplicating the project meant I could publish it both anchored to a generic horizontal surface, as well as anchored to an image (I used <a href="https://commons.wikimedia.org/wiki/File:Iron_Age_Roundhouse,_Chiltern_Open_Air_Museum_Geograph-5576531-by-Mark-Percy.jpg">this image</a> from Wikimedia Commons for my test), which worked pretty well on a secondary phone screen.</p><p>When loading the the scenes on my Android phone I was prompted to use Adobe Aero via &#8216;app on demand&#8217;, which meant I did not need to install anything to view it (on my iOS device I already have the Aero mobile app installed). Pretty neat!</p><h2>Manipulating in VR with Spatial.io</h2><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;49a31daa-de9d-45bf-89b8-5aac8ca8797c&quot;,&quot;duration&quot;:null}"></div><p><a href="https://www.spatial.io/">Spatial.io</a> bills itself as &#8220;Spatial is a 3D gaming hub where creators craft and share immersive social experiences for web, mobile, and VR&#8221;. I knew I wanted to try loading my roundhouse scans and manipulating them (picking them up, scaling them, moving around them, etc.) in VR on my Quest 3, but I have yet to find a simple (and free) &#8220;3D model viewer&#8221; app. </p><p>I remembered Spatial from my days at Sketchfab (a 3D model import integration <a href="https://www.youtube.com/watch?v=3YcCvuQyO6I">exists</a>), and figured I&#8217;d give it a go. As well as creating and publishing your own spaces and content, you can explore other user generated content via a search/discovery system in app. It&#8217;s all a bit like Mozilla Hubs (R.I.P), but a bit more game-ified.</p><p>I was able to search for my roundhouse model on Sketchfab, import it (with attribution), &#8216;hold&#8217;, scale, and move the model using hand tracking and view it from different angles by moving my head about the place.</p><p>There&#8217;s lots to like about the tech going on here (for the most part it just works&#8482;), but I also received an alarming warning when I tried to connect my Google Drive: &#8220;This app is blocked. This app tried to access sensitive info in your Google Account. To keep your account safe, Google blocked this access.&#8221; So&#8230; I&#8217;m not sure if I can confidently recommend this app at the moment.</p><h1>What&#8217;s next?</h1><p>These are just a few ways that it&#8217;s possible to use and re-use a piece of 3D data within the context of education and engagement and hope this post has given you some ideas for your own work. </p><p>I really enjoy exploring new platforms and services to share with you so do let me know what you think!</p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://nebulousflynn.substack.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">The Spatial Heritage Review 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>]]></content:encoded></item><item><title><![CDATA[Can You Digitise an Iron Age Roundhouse With Your Phone?]]></title><description><![CDATA[Yes, but there's plenty of ways to improve the results.]]></description><link>https://nebulousflynn.substack.com/p/can-you-digitise-an-iron-age-roundhouse</link><guid isPermaLink="false">https://nebulousflynn.substack.com/p/can-you-digitise-an-iron-age-roundhouse</guid><dc:creator><![CDATA[Thomas Flynn]]></dc:creator><pubDate>Mon, 04 Mar 2024 19:57:34 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/291f8212-97f1-4da7-ab13-f902c8b57831_800x451.gif" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>A while a go I had the pleasure of paying a visit to Bournemouth University&#8217;s Archaeology Department, and meeting some very nice folks who are also interested in 3D and cultural heritage. </p><p>One of the people I met was <a href="https://www.instagram.com/prehistoric_pyrotechnology">Dr Hayden Scott-Pratt</a> who, among other things, is leading a project to reconstruct an Iron Age roundhouse at Hengistbury Head in Dorset. The project is called <em><a href="https://www.bcpcouncil.gov.uk/news-hub/news-articles/iron-age-history-to-be-brought-to-life">Living in the Round</a></em>. </p><p>Hayden is exploring the use cases for 3D digitisation in relation to archaeological work and, as the site of the site of the <em>Living in the Round </em>project is not too far from me, I agreed to pop down for a chat about the topic.</p><div class="image-gallery-embed" data-attrs="{&quot;gallery&quot;:{&quot;images&quot;:[{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/95c573dc-a2fa-4ce7-a31a-024576140e8a_4032x3024.jpeg&quot;},{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/dc23a9e9-a9bc-4717-aa70-ce85dd5d4793_4032x3024.jpeg&quot;},{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6ec4b4c4-f263-498e-9532-8df7d9c94066_4032x3024.jpeg&quot;}],&quot;caption&quot;:&quot;&quot;,&quot;alt&quot;:&quot;&quot;,&quot;staticGalleryImage&quot;:{&quot;type&quot;:&quot;image/png&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/26f4139c-7902-4991-adca-ec071f2c551c_1456x474.png&quot;}},&quot;isEditorNode&quot;:true}"></div><p>As it turned out, Hayden and a band of volunteers were quite busy doing the actual reconstruction work on the roundhouse when I arrived, so there wasn't much time to talk. The work they were doing was time sensitive as the thatchers were arriving the following week and the roof frame was not yet finished. I didn&#8217;t want to hold things up so I agreed to meet Hayden to talk about 3D another time.</p><p>As I was there anyway, I thought it might be fun to capture some 3D data&#8212;aside from the roundhouse, there are lots of other interesting things at the site one could capture. If I could, I thought I could also try to digitise the thatch-less roundhouse as it was, as a quick record of the building process. </p><p>Here are some of the constraints I was working with:</p><ul><li><p>everything was completely unplanned</p></li><li><p>I only had my smartphone with me (an iPhone 15)</p></li><li><p>it was raining the whole time</p></li><li><p>I had a a limited amount of time (~30 mins to capture the roundhouse)</p></li><li><p>I could only capture images from ground level </p></li></ul><p>As you can imagine I was not hoping to capture research grade data, rather experimenting with simple and easy to use workflows to see what was possible.</p><h1>While I was waiting&#8230;</h1><p>I had to wait until the volunteers and Hayden took their lunch break before trying to capture the roundhouse so in the meantime I grabbed a couple LiDAR captures using Scaniverse, and a couple of videos that I would process with Luma AI.</p><h2>Luma AI</h2><p><a href="https://lumalabs.ai/">Luma AI</a> takes video as its input and converts the data into a <a href="https://www.matthewtancik.com/nerf">NeRF</a>, <a href="https://repo-sam.inria.fr/fungraph/3d-gaussian-splatting/">Gaussian Splat</a>, and surface 3D model. The capture process is very easy: just shoot a video of your subject making sure that all the features you want to reconstruct are visible at some point in the sequence. You then upload your video to Luma AI&#8217;s servers where it will be processed into several formats which can be viewed on <a href="https://lumalabs.ai/">lumalabs.ai</a>, embedded elsewhere, or downloaded.</p><p>I captured a brazier (56 second video), a bit of pottery (48s video), and the roundhouse itself (62s video):</p><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;bf265a73-fcac-49dd-b6fb-1c094fa3788f&quot;,&quot;duration&quot;:null}"></div><p>You can view the gaussian splat scenes over on lumalabs.ai: <a href="https://lumalabs.ai/capture/9e1d0b9b-57c5-4bdb-aa18-f3af691360ce">brazier</a>, <a href="https://lumalabs.ai/capture/47997eb5-095b-4c81-8f93-f84d9fcdabb4">pottery</a>, <a href="https://lumalabs.ai/capture/a367a4da-76c3-4a6b-bc70-ee50ae54128d">roundhouse</a>.</p><h2>Scaniverse</h2><p><a href="https://scaniverse.com/">Scaniverse</a> is one of the earliest 3D scanning apps to appear for LiDAR enabled iPhones and while it does not provide especially high fidelity 3D outputs, it is great for making quick scans on the go. Compared to themore laborious &#8220;shoot-move-shoot&#8230;&#8221; process of capturing a photogrammetry image set, using Scaniverse feels very fluid and fun. The textured surface 3D model outputs can be uploaded directly to Sketchfab from the app, or published on Scaniverse&#8217;s own platform.</p><p>I grabbed two scans with this app: one of a pottery station and another of a flint knapping station. Each scene took approximately 3 minutes to capture:</p><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;fdcd8f1f-7e79-4e28-8e83-fb4270996267&quot;,&quot;duration&quot;:null}"></div><p>You can explore these scenes in 3D <a href="https://sketchfab.com/nebulousflynn/collections/living-in-the-round-8dd663ef2e364b97b00c9f1c92f0cb58">on Sketchfab</a>.</p><h1>Capturing the roundhouse</h1><p>Once the roundhouse itself was clear of volunteers, I sprang into action and started snapping photos of it with my iPhone. Although it had been raining a little the whole time I was on site, it was only at this point that a proper downpour began&#8212;typical! &#127783;&#65039;</p><p>To start with, I began by circling crab-wise around the roundhouse, snapping photos while holding my phone at 3 different heights: arms in the air, chest height, squatting down. After circling once, I moved in a bit closer and took a second round. I then entered the roundhouse and captured some images facing into the centre of the structure.</p><p>It was by no means a smooth or easy process: </p><ul><li><p> it was <em>pouring </em>with rain as I took the photos. I could barely see what was on the phone screen and water droplets kept causing false touch events.</p></li><li><p>I ran out of storage space on my phone before gathering what I would consider a complete image set for the capture.</p></li><li><p>The roof beams as imaged from within the roundhouse are woefully underexposed due to the phone compensating for me pointing it at the sky. </p></li><li><p>I didn&#8217;t capture every nook and cranny of the roundhouse.</p></li></ul><p>I captured 1070 JPG images in approximately 30 minutes with the default iPhone camera on full auto before the volunteers returned to their work. You can get an idea of the camera positions from the screenshots below with each blue rectangle representing the capture location of an individual photo:</p><div class="image-gallery-embed" data-attrs="{&quot;gallery&quot;:{&quot;images&quot;:[{&quot;type&quot;:&quot;image/png&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d13bff38-9388-45ed-bc24-eeb3be71a0ce_1920x1200.png&quot;},{&quot;type&quot;:&quot;image/png&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f7054aa7-5fa7-4217-bf76-0c7965a0b54f_1920x1200.png&quot;},{&quot;type&quot;:&quot;image/png&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/84fa73bb-799b-49f4-a1a2-5726fbd6749e_1920x1200.png&quot;}],&quot;caption&quot;:&quot;1000+ camera positions&quot;,&quot;alt&quot;:&quot;&quot;,&quot;staticGalleryImage&quot;:{&quot;type&quot;:&quot;image/png&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/aede026d-0c4f-4209-8b86-7e1bfa4beb7a_1456x474.png&quot;}},&quot;isEditorNode&quot;:true}"></div><h1>Reconstructing the Roundhouse in 3D </h1><p>I knew my dataset was not ideal and the time available for me to work on this project is limited, so my plan was always to just throw my images at some photogrammetry software and see what happened. I didn&#8217;t pre-process my images in any way (adjusting exposure etc.) and I didn&#8217;t mask the subject from the background either (e.g. to ignore the sky). </p><p>Here&#8217;s how a few pieces of software performed:</p><h2>Polycam</h2><p><a href="https://polycam.ai/">Polycam</a> is a cloud based service used to produce surface 3D models, gaussian splats, 360 images, floorplans and more. I had high hopes that Polycam would be able to produce a decent gaussian splat, but alas the processing failed multiple times &#129394;. Polycam was also unable to align the entire image set and only produced a partial 3D mesh, but it is quite cool to be able to capture a 360 background image for the scene all in the same app:</p><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;3b40cdfc-9123-4550-9bf9-ddec2b16cbc5&quot;,&quot;duration&quot;:null}"></div><p>As I like the simplicity of using a cloud based service, I also thought I&#8217;d try a couple of other apps that I haven&#8217;t used before or used in a while &#128071;</p><h2>Pixpro</h2><p>I&#8217;d never really heard of <a href="https://www.pix-pro.com/">Pixpro</a> being used in the context of cultural heritage before, but I thought I&#8217;d give it a go as they offer a free 14 day trial ($600/yr thereafter). Their desktop app can be used to process data locally, but can also be used to upload image sets for cloud based processing which is what I did in this case. </p><p>Despite having never used the app before I found the experience pretty intuitive and the 3D outputs were not bad at all.  Pixpro aligned pretty much all the images and there was a neat geo-located preview of my image set, drawn from the image EXIF data:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!uwNX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F90cda367-80a1-42a6-9b3d-d07fa22fb947_800x500.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!uwNX!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F90cda367-80a1-42a6-9b3d-d07fa22fb947_800x500.gif 424w, https://substackcdn.com/image/fetch/$s_!uwNX!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F90cda367-80a1-42a6-9b3d-d07fa22fb947_800x500.gif 848w, https://substackcdn.com/image/fetch/$s_!uwNX!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F90cda367-80a1-42a6-9b3d-d07fa22fb947_800x500.gif 1272w, https://substackcdn.com/image/fetch/$s_!uwNX!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F90cda367-80a1-42a6-9b3d-d07fa22fb947_800x500.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!uwNX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F90cda367-80a1-42a6-9b3d-d07fa22fb947_800x500.gif" width="800" height="500" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/90cda367-80a1-42a6-9b3d-d07fa22fb947_800x500.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:500,&quot;width&quot;:800,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:655828,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/gif&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!uwNX!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F90cda367-80a1-42a6-9b3d-d07fa22fb947_800x500.gif 424w, https://substackcdn.com/image/fetch/$s_!uwNX!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F90cda367-80a1-42a6-9b3d-d07fa22fb947_800x500.gif 848w, https://substackcdn.com/image/fetch/$s_!uwNX!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F90cda367-80a1-42a6-9b3d-d07fa22fb947_800x500.gif 1272w, https://substackcdn.com/image/fetch/$s_!uwNX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F90cda367-80a1-42a6-9b3d-d07fa22fb947_800x500.gif 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><p>The mesh wasn&#8217;t too bad either:</p><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;21cef360-ae8d-433c-8f44-faf09de79bb4&quot;,&quot;duration&quot;:null}"></div><p>You can explore the output mesh model in 3D <a href="https://sketchfab.com/nebulousflynn/collections/living-in-the-round-8dd663ef2e364b97b00c9f1c92f0cb58">on Sketchfab</a>.</p><h2>Autodesk Recap Photo</h2><p>There was a time when I really enjoyed using Autodesk photogrammetry software, way back in the time of 123D Catch, Memento, and Remake. I figured I should have a peep and try the latest incarnation of their photo reconstruction tech which comes as part of <a href="https://www.autodesk.co.uk/products/recap/overview">Autodesk Recap</a>, and grabbed a free one month trial (&#163;390/year thereafter). </p><p>First off installing the app was a pain because to run Recap, you also need to install Autodesk&#8217;s Connect app, and sign up to Autodesk Drive as well which took some time. The joke was on me anyway, as even if you have a free trial of Recap, you need a paid subscription to Drive to upload your photos so I was unable to run my images through this software. Autodesk even has a <a href="https://www.autodesk.com/support/technical/article/caas/sfdcarticles/sfdcarticles/Recap-Photo-is-not-working-with-a-Recap-Pro-Trial.html">help centre doc</a> which essentially states &#8220;if you want a free trial, you need to buy a paid subscription&#8220;&#129335; </p><p>Oh, well&#8212;onwards to my tried and tested local processing options! &#128071;</p><h2>RealityCapture  </h2><p><a href="https://www.capturingreality.com/">RealityCapture</a> is a market leader in desktop photogrammetry and LiDAR data processing, and often one of my go to apps for processing an image set. I used RealityCapture to process my 1000+ image set of <a href="https://sketchfab.com/3d-models/hintze-hall-nhm-london-surface-model-b2f3e84112d04bf1844e7ac2c4423566">NHM London&#8217;s Hintze Hall</a>, so thought it would be ideal in this case, too </p><p>The software was able to align several subgroups of images (e.g. groups of 50 or 500 images) into separate components but I couldn&#8217;t easily get it to produce a unified 3D model combining all the images. No doubt if I had the time to add in a good few control points manually (e.g. give the software some clues as to how to stitch the sub-components together) I could produce a more complete scene, but I just don&#8217;t have time at the moment.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!H2Q2!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd92fca8b-210a-42b8-a748-ca525e61597e_1920x1200.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!H2Q2!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd92fca8b-210a-42b8-a748-ca525e61597e_1920x1200.gif 424w, https://substackcdn.com/image/fetch/$s_!H2Q2!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd92fca8b-210a-42b8-a748-ca525e61597e_1920x1200.gif 848w, https://substackcdn.com/image/fetch/$s_!H2Q2!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd92fca8b-210a-42b8-a748-ca525e61597e_1920x1200.gif 1272w, https://substackcdn.com/image/fetch/$s_!H2Q2!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd92fca8b-210a-42b8-a748-ca525e61597e_1920x1200.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!H2Q2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd92fca8b-210a-42b8-a748-ca525e61597e_1920x1200.gif" width="1456" height="910" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d92fca8b-210a-42b8-a748-ca525e61597e_1920x1200.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:910,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2422644,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/gif&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!H2Q2!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd92fca8b-210a-42b8-a748-ca525e61597e_1920x1200.gif 424w, https://substackcdn.com/image/fetch/$s_!H2Q2!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd92fca8b-210a-42b8-a748-ca525e61597e_1920x1200.gif 848w, https://substackcdn.com/image/fetch/$s_!H2Q2!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd92fca8b-210a-42b8-a748-ca525e61597e_1920x1200.gif 1272w, https://substackcdn.com/image/fetch/$s_!H2Q2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd92fca8b-210a-42b8-a748-ca525e61597e_1920x1200.gif 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>Metashape </h2><p><a href="https://www.agisoft.com/">Metashape</a> is another market leader in the desktop photogrammetry / LiDAR processing space, and managed to aligned all my images &#127881; and I was able to go on an produce a pointcloud and meshed model. The whole process took a good few hours on my laptop, and the output surface 3D model (as expected) shows quite a bit of noise especially around the apex of the roundhouse roof. All things considered though, a decent output.</p><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;30243e40-d31c-4c74-bba8-84e6602f7ec3&quot;,&quot;duration&quot;:null}"></div><p>In the past I have used Metashape to align images, then exported a set of undistorted images and camera positions as a bundle.out file and then processed these using RealityCapture which generally processes data faster, and sometimes produces better 3D. However, Agisoft removed the easy to use &#8216;Undistort Images&#8217; button a while ago and while it is still possible do this with a workaround, I didn&#8217;t have the time to try it out this time </p><p>You can explore the output pointcloud and mesh model in 3D <a href="https://sketchfab.com/nebulousflynn/collections/living-in-the-round-8dd663ef2e364b97b00c9f1c92f0cb58">on Sketchfab</a>.</p><h1>Edit: Bonus Gaussian Splat</h1><p>As I was putting together the latest edition of <em>The Spatial Heritage Review </em>I discovered&#8212;thanks to <a href="https://twitter.com/DuckbillStudio/status/1761584660344373537">this post</a> by <a href="https://www.studioduckbill.jp/">Studio Duckbill</a>&#8212;an app called <a href="https://www.jawset.com/">Postshot</a> by Jawset which is currently in beta testing. It&#8217;s an app for local NeRF training and gaussian splat processing. </p><p>After Polycam and Luma AI failing to process my 1000+ image set into a splat, I wanted to have one last go at it. Lo and behold, Postshot created a really nice splat after about 3 hours of processing:</p><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;715af729-5160-429e-8159-062ed3ff93a0&quot;,&quot;duration&quot;:null}"></div><p>I was able to export the splat as a .PLY file.</p><p>I&#8217;m still not sure how to publish a 3D splat online without hosting it oneself, but I did use <a href="https://playcanvas.com/supersplat/editor">Playcanvas&#8217; Supersplat</a> to edit the resulting splat, mostly to remove the sky and background, as well as orient the splat correctly. Supersplat also lets me convert the PLY file into a .SPLAT file as well as a compressed PLY:</p><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;9caa397b-dc84-4eba-adca-d844fcccd5af&quot;,&quot;duration&quot;:null}"></div><h1>In Conclusion</h1><p>So, can you digitise an iron age roundhouse with your phone? Yes, I think so! </p><p>Did I do a good job of it? No, not really.</p><p>To improve my process and outputs if I tried this again, I think I would:</p><ul><li><p>visit on a dry day &#128517;</p></li><li><p>spend some time planning my captures</p></li><li><p>bring a telescopic camera pole to capture the roundhouse from above</p></li><li><p>empty my camera storage, shoot images in RAW </p></li><li><p>spend more time preparing my input image data before processing</p></li><li><p>try and capture a more complete gaussian splat with luma ai</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!1sDV!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbcdd1064-324b-461c-8e77-e87bf60c1cb8_4032x2268.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!1sDV!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbcdd1064-324b-461c-8e77-e87bf60c1cb8_4032x2268.jpeg 424w, https://substackcdn.com/image/fetch/$s_!1sDV!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbcdd1064-324b-461c-8e77-e87bf60c1cb8_4032x2268.jpeg 848w, https://substackcdn.com/image/fetch/$s_!1sDV!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbcdd1064-324b-461c-8e77-e87bf60c1cb8_4032x2268.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!1sDV!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbcdd1064-324b-461c-8e77-e87bf60c1cb8_4032x2268.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!1sDV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbcdd1064-324b-461c-8e77-e87bf60c1cb8_4032x2268.jpeg" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/bcdd1064-324b-461c-8e77-e87bf60c1cb8_4032x2268.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3123415,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!1sDV!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbcdd1064-324b-461c-8e77-e87bf60c1cb8_4032x2268.jpeg 424w, https://substackcdn.com/image/fetch/$s_!1sDV!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbcdd1064-324b-461c-8e77-e87bf60c1cb8_4032x2268.jpeg 848w, https://substackcdn.com/image/fetch/$s_!1sDV!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbcdd1064-324b-461c-8e77-e87bf60c1cb8_4032x2268.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!1sDV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbcdd1064-324b-461c-8e77-e87bf60c1cb8_4032x2268.jpeg 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><h1>Update: Thatching</h1><p>I popped back for the rest of my chat with Hayden and his colleague Mark yesterday. It was much sunnier which was great for the folks from the <a href="https://ancienttechnologycentre.com/">Ancient Technology Centre</a> and volunteers who were beginning to thatch the roundhouse. </p><p>I grabbed another quick video (120 seconds long), and processed it with <a href="https://www.jawset.com/">Postshot </a>using 1000 out of the available 4000 frames. Here&#8217;s the result cleaned up a bit in and viewed in <a href="https://playcanvas.com/super-splat">Supersplat</a>:</p><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;c218b2f8-b189-4a62-a3c1-f721009c68bf&quot;,&quot;duration&quot;:null}"></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://nebulousflynn.substack.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">Thanks for reading The Spatial Heritage Review! Subscribe for free to receive new posts and support my work.</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>]]></content:encoded></item><item><title><![CDATA[Creating a Simple 3D Scene for Augmented Reality]]></title><description><![CDATA[Learn how to download free cultural heritage 3D models from Sketchfab, optimize them with RapidCompact, build a scene in Blender, and publish it online.]]></description><link>https://nebulousflynn.substack.com/p/creating-a-simple-3d-scene-for-augmented</link><guid isPermaLink="false">https://nebulousflynn.substack.com/p/creating-a-simple-3d-scene-for-augmented</guid><dc:creator><![CDATA[Thomas Flynn]]></dc:creator><pubDate>Mon, 08 Jan 2024 09:18:16 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/9d2cfdef-738c-4e85-941c-0bae0d59fbad_600x338.gif" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>This is the first of hopefully many tutorials, please bear with me while I figure out the format (and my recording process + tools). &#128519; Let me know in the comments what you do and don&#8217;t like!</p><p>If <em>do</em> you like this, then please consider subscribing to my free monthly newsletter <em>The Spatial Heritage Review, </em>a monthly round up of things happening at the intersection of cultural heritage + digital 3D:</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://nebulousflynn.substack.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://nebulousflynn.substack.com/subscribe?"><span>Subscribe now</span></a></p><div><hr></div><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;f8dc335b-dbaf-41ea-8fe5-e0e246904f5b&quot;,&quot;duration&quot;:null}"></div><p>I recently made <a href="https://sketchfab.com/3d-models/the-spatial-heritage-review-7fc343ea190f4392b425d6215032e473">this 3D scene</a> to promote the launch of <a href="https://nebulousflynn.substack.com/p/introducing-the-spatial-heritage">The Spatial Heritage Review</a>. While it is a fairly simply scene, it still required several steps and different digital tools to achieve. I figured it might be of interest to readers to learn how to do something similar, so please read on for a step by step guide to my process. </p><p>You&#8217;ll learn about:</p><ul><li><p>Searching for and downloading free 3D assets from <a href="http://sketchfab.com">Sketchfab</a>.</p></li><li><p>Automatically optimising  3D assets for augmented reality (AR) with <a href="https://www.rapidcompact.com/">Rapid Compact</a>.</p></li><li><p>Importing 3D assets into <a href="https://www.blender.org/">Blender</a>, assembling a scene, and adding some 3D text.</p></li><li><p>Uploading the final scene to Sketchfab and making it ready to publish online.</p></li><li><p>Recording a video of the scene in AR on a smartphone. </p></li></ul><h1>Open access 3D models on Sketchfab</h1><blockquote><p>While I am biased from my time working at Sketchfab, I really don&#8217;t know of an easier to use 3D publication platform . Additionally, it is home to pretty much the most extensive community of cultural heritage 3D content you&#8217;ll find online. </p></blockquote><p>Video summary above, more detailed description of steps below.</p><p>If you&#8217;re not familiar with it, <a href="http://sketchfab.com">Sketchfab</a> is a community platform for publishing and sharing 3D models online. It&#8217;s a great place to publish your own 3D models, as well as  find and develop a following for your creative 3D outputs. </p><p>Many creators on Sketchfab choose to make their 3D models freely downloadable so that other people may re-use and remix their work - so you can also think of Sketchfab as a vast library of free 3D assets. You can join Sketchfab <a href="https://sketchfab.com/plans">for free</a>.</p><p>Let&#8217;s take a look at how to browse and search Sketchfab for what we&#8217;re looking for.</p><h2><strong>Find High Quality Open Access 3D Models on Sketchfab </strong></h2><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;9c6f9761-edd2-447d-b057-082a31152b0a&quot;,&quot;duration&quot;:null}"></div><p>Start by navigating to <a href="https://sketchfab.com/">sketchfab.com</a> and login.</p><p>Now, there is a <em>lot</em> of 3D content available on Sketchfab, so you&#8217;ll do well to use the available features on the site to narrow down what you you see on screen. </p><ul><li><p>Start with the search bar. Even if you&#8217;re not inputting a search term, this is the best place to begin. For our use case, we&#8217;re looking for cultural heritage content so let&#8217;s dial in that <a href="https://sketchfab.com/search?category=cultural-heritage-history&amp;type=models">model category</a>. This will return a list of every model in that category, for all time, sorted by likes. </p></li><li><p>We&#8217;re specifically looking for downloadable models, so we could check the &#8216;Downloadable&#8217; box but this filter also includes paid-to-download content and we only want free 3D models, specifically ones that use the Creative Commons CC-BY or Free Standard licenses. Check those options from the &#8216;Licenses&#8217; drop down.</p></li><li><p>From here we can scroll and browse until we find something we like the look of or, if we want to focus our options further, we can add a search term in the bar at the top.</p></li></ul><h2><strong>Download the format(s) you need.</strong></h2><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;b0563212-6897-4201-9f25-4f3cf6d11fd1&quot;,&quot;duration&quot;:null}"></div><p>Once you find a 3D model we like the look of, click on it to open the model page.</p><p>Before downloading we can explore the model by rotating/zooming in 3D and using Sketchfab&#8217;s <a href="https://help.sketchfab.com/hc/en-us/articles/115004862686-Model-Inspector">Model Inspector</a> to see if it suits our needs. If all looks good, let&#8217;s hit that download link!</p><p> Sketchfab offers several file download options:</p><ul><li><p>The original file format that the user uploaded</p><ul><li><p>Also any additional files the user uploaded, e.g. a higher resolution.</p></li></ul></li><li><p>USDZ*</p></li><li><p>glTF*</p></li><li><p>GLB*</p><ul><li><p>This format also includes sub options for different texturemap sizes.</p></li></ul></li></ul><p><em>*These formats are auto-converted from the original upload by sketchfab.com.</em> <em>If you&#8217;re not what these formats are, the Sketchfab Help Center has <a href="https://help.sketchfab.com/hc/en-us/articles/360046421631-glTF-GLB-and-USDZ">you covered</a>.</em></p><p>For this use case, let&#8217;s download the GLB version with the highest resolution texture. This format bundles up the geometry, material, and texture information into a single file (unlike, for example an OBJ or glTF package) and I&#8217;ve found that this format&#8212;aside from being convenient&#8212;plays well with RapidCompact in the following steps of our process.</p><p>At this point I also recommend copying the handily available attribution text that Sketchfab supplies in the download popup. We&#8217;ll need that later.</p><p>Repeat the above for as many models that you want to assemble in your scene. Bare in mind, however, that the more individual 3D models to try to combine in a single scene, the more you&#8217;ll need to optimise each individual asset for final download and viewing efficiency.</p><p>Speaking of which&#8230;</p><h1>Automatically optimizing the 3D assets with RapidCompact</h1><blockquote><p>Optimising 3D assets can be tedious and time consuming, especially when you are working with 3D data that you did not create yourself. I&#8217;ve found RapidCompact to be a quick and easy to use solution.   </p></blockquote><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;f3a20379-1636-4036-9662-bd16b16d8101&quot;,&quot;duration&quot;:null}"></div><p>Video summary above, more detailed description of steps below. </p><p><em>Note: it was at this stage that I switched screen recording software and did not realise the lower part of the screen was cropped off </em>&#129318;</p><p><a href="https://www.rapidcompact.com/">RapidCompact</a> is a cloud based utility for optimizing 3D assets for different use cases, automatically reducing face counts, texture counts and sizes, and converting formats from pretty much any 3D surface file format to another. RapidCompact offers a pretty generous <a href="https://www.rapidcompact.com/pricing-yearly/">free tier</a>. </p><h2><strong>Uploading the file.</strong></h2><p>Log in and navigate to the <a href="https://app.rapidcompact.com/app/models/upload">upload page</a>. Drag the GLB file you downloaded from Sketchfab from your OS folder onto the upload zone and hit &#8216;Upload&#8217;.</p><p><strong>Choosing an optimization preset.</strong></p><p>Once the file has finished uploading, it will show in your <a href="https://app.rapidcompact.com/app/models/raw">model management page</a>. Check the box at the end of the listing, then move your attention to the &#8216;Optimization Settings&#8217; section to the right. </p><p>There are a plethora of optimisation presets available (or you can even create your own), but I won&#8217;t go into details here - for the purposes of this guide, select one of the &#8216;Lens Studio&#8217; presets. If you are combining a larger number of assets, I suggest use the &#8216;Low&#8217; setting, for smaller groupings of assets you could opt for &#8216;Medium&#8217; or &#8216;High&#8217;</p><blockquote><p>The answer to <em>&#8220;What face count and texture map dimensions should I use?&#8221; </em>depends a lot on your subject, input data, and use case. My general advice for live/interactive use cases is to <em>simplify your 3D data a much as possible</em>: so the file is as light as possible while still being recognisable as the original subject.</p></blockquote><h2><strong>Downloading the optimised file.</strong></h2><p>The optimisation process shouldn&#8217;t take too long and it will depend on the complexity of your input data and the output 3D model will show up on your <a href="https://app.rapidcompact.com/app/models/rapid">Optimised Models</a> page.</p><p>It is possible to download the optimised model from the preview card, but I recommend that you open the 3D preview to check that you&#8217;re happy with the optimisation before saving locally.</p><p>If you&#8217;re happy, hit the download button and choose the GLB file; if you&#8217;re not happy, go back to a previous step in the process and try different optimisation options. </p><p>If you&#8217;re optimisation repeatedly fails or if the output looks terrible, there may be something funky about the input data. For example, I&#8217;ve noticed that trying to automatically optimise a 3D surface model derived from CT scan data&#8212;which often has lots of hidden internal geometry&#8212;can throw a spanner in the works.</p><p>Repeat the optimisation and download steps for each 3D model that you want to add to your AR scene, then you&#8217;re ready to start assembling the scene in Blender!</p><h1>Assembling a 3D scene in Blender</h1><blockquote><p>There are many premium 3D editors out there, but I&#8217;ve found that Blender has everything I&#8217;ve ever needed for working with cultural heritage 3D content. </p></blockquote><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;c95fd646-79bc-4866-8db0-48e515523728&quot;,&quot;duration&quot;:null}"></div><p>Video summary above, more detailed description of steps below.</p><p><em>Note: my screen recording software has cut off part of the screen at the bottom</em>&#129318;</p><p><a href="https://www.blender.org/">Blender</a> is a free, open source, fully featured 3D editor - you can download the latest version <a href="https://www.blender.org/download/">here</a>. In this section of the tutorial I will be assuming a little prior knowledge in the steps below, but not a huge amount. </p><p>If you&#8217;re a complete <a href="https://www.google.com/search?sca_esv=592150413&amp;rlz=1C1ONGR_enGB1081GB1081&amp;sxsrf=AM9HkKlVWRwQUHY3iAw-X_FYPNxrPiWeVg:1702981439960&amp;q=newbie&amp;si=ALGXSlZs_yOcjbcvFwhB4E04oe9YgyZP4JkKRFb3gU8gjuu9PP-AtcaT23PyjIc3-NRiiMMSuPr3L4J5idWS_o7BLaYaTTDYgw%3D%3D&amp;expnd=1&amp;biw=1536&amp;bih=738&amp;dpr=1.25">newb</a> to Blender there are extensive <a href="https://www.blender.org/support/tutorials/#get-started">official tutorials</a> and I&#8217;ve always found it easy enough to find even the most niche community tutorial with a quick web search for &#8220;How do I do <em>this particular thing</em> in Blender?&#8221;</p><h2>Importing and placing your 3D models</h2><h3>Importing</h3><p>Open up a fresh, blank scene in Blender and head to <strong>File &gt; Import &gt; glTF 2.0 (.glb / .gltf)</strong>, navigate to the saved files you downloaded from RapidCompact, and import each asset.</p><p>At this point, and if you grabbed a variety of 3D models from different Sketchfab users, you will likely notice that the models are all different scales and import to locations far from the scene origin. This is part of life. </p><h3>Setting the model origin</h3><p>One workflow I often employ is to center each 3D object to the center of my scene and then begin artistic arrangement from there. To reset a 3D model to the center of your scene:</p><ol><li><p>Left click select your model. </p></li><li><p>Hit F3 to open search panel. </p></li><li><p>Search for &#8216;Set Origin&#8217;.</p></li><li><p>Select &#8216;Origin to 3D Cursor&#8217;.</p></li><li><p>Hit F3 to open search panel.</p></li><li><p>This time, search for and select &#8216;Geometry to Origin&#8217;.</p></li></ol><p>With everything in the middle we can start laying out our AR scene. If you are having trouble selecting assets that are overlapping, remember you can always select them in the <strong>Outliner </strong>panel in the top right. </p><h3>Translating, rotating, &amp; scaling the models </h3><p>Once you&#8217;re ready to begin placing your 3D assets in their final positions, use the <strong>Grab tool (shortcut: g-key)</strong>, <strong>Rotate tool (r-key)</strong>, and <strong>Scale tool (s-key)</strong> as needed. You can limit any of these operations to a particular axis by hitting the <strong>x</strong>, <strong>y</strong>, or <strong>z </strong>key after you hut the tool keyboard shortcut. Left click or hit <strong>Enter/Return</strong> to commit to your updates, or if everything gets out of control hit <strong>Esc</strong> to cancel the operation or <strong>Ctrl-z</strong> to <strong>Undo</strong> (<strong>Ctrl-Shift-z</strong> to <strong>Redo</strong>). </p><p>Sometimes I find it helpful to switch to an orthographic scene view e.g. <strong>Front (Numpad-1)</strong>, <strong>Right (Numpad-3)</strong>, and <strong>Top (Numpad-7)</strong> before performing one of the above operations to aid exact placement</p><p><em>Note: the lowest part of any model will set the &#8216;ground&#8217; for your scene when viewed in AR so make sure that everything aligns or that you are happy for some objects to be floating while some lie on the ground.</em></p><h2>Adding a 3D text object in Blender and Exporting the Scene </h2><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;1757647f-da92-4f97-a47d-b0597b939895&quot;,&quot;duration&quot;:null}"></div><p>Video summary above, more detailed description of steps below.</p><p><em>Note: my screen recording software has cut off part of the screen at the bottom</em>&#129318; </p><ol><li><p>Hit <strong>Shift-A </strong>to open the Add menu and select <strong>Text.</strong></p></li><li><p>The text object will be added lying &#8216;flat&#8217; on the ground of your scene, let&#8217;s stand it up: <strong>Left-click select</strong> the text object &gt; hit <strong>R-key</strong> (rotate tool) &gt; <strong>X-key </strong>(lock rotation to the X-axis) &gt; type &#8216;<strong>90&#8217; </strong>to rotate it 90 degrees so that it &#8216;stands up&#8217; &gt; <strong>Left-click</strong> or hit <strong>Return/Enter</strong> </p></li><li><p>With the text object selected, hit <strong>Tab </strong>to enter into edit mode: now you can delete and type in characters, spaces, new lines, etc. as normal.</p></li><li><p>Hit <strong>Tab</strong> again to get back to <strong>Object Mode</strong>.</p></li><li><p>Locate the text options in the right panel, it is denoted by a small &#8216;a&#8217;.</p><ol><li><p>Font: hit the file icon and navigate to a font file on your system, assign a font to the Regular slot. You should see your text update accordingly.</p></li><li><p>Paragraph: adjust horizontal and vertical alignment as you wish.</p></li><li><p>Geometry: set <strong>Extrude </strong>as you like, 0.1 or 0.05 should be adequate for the default text size. Optional: set the <strong>Bevel </strong>to a <strong>Depth </strong>to 0.01.</p></li></ol></li><li><p> When you are ready to commit to your 3D text (you will no longer be able to edit the text after this step) <strong>Left-click select</strong> the text object, then <strong>Right-click </strong>it and select <strong>Convert To &gt; Mesh</strong>.</p></li><li><p>We need to do a little mesh clean up now:</p><ol><li><p>Add and apply a <strong>Weld modifier</strong> using default settings. This will unify all faces of individual letters in to a single entity.</p></li><li><p>Add a <strong>Decimate Modifier </strong>and adjust the <strong>Ratio</strong> until juuuust before you see the mesh begin to deform, then apply it. For the text &#8220;The Spatial Heritage Review&#8221;, I was able to reduce the face count from 45,000 to 7,300.</p></li></ol></li><li><p> Finally, add a new <strong>Material</strong> to the mesh and give it a meaningful name.</p></li></ol><h2>Export.</h2><p>Refer to the video above, more detailed steps below.</p><ol><li><p><strong>File</strong> &gt; <strong>External Data</strong> &gt; <strong>Pack Resources<br></strong>This step will pull all related texture files into the .blend file. Not always necessary but I&#8217;ve picked it up as a habit. </p></li><li><p><strong>File</strong> &gt; <strong>Export</strong> &gt; <strong>glTF 2.0 (.glb/.gltf) </strong>to export your scene as a glb file.</p></li></ol><h1>Upload your 3D scene to Sketchfab &amp; Setting Model Properties</h1><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;2b1a7852-29a4-4d62-91f9-4bf3c610cbbd&quot;,&quot;duration&quot;:null}"></div><p>Video summary above, more detailed description of steps below. <em>Note: my screen recording software has cut off part of the screen at the bottom</em>&#129318;</p><p>Log back into your Sketchfab account, drag and drop your finished scene .glb onto any page to begin upload.</p><h2>Model Properties</h2><ol><li><p>Give your scene a sensible title, description, and tags and set the appropriate category. <strong>Be sure to add the appropriate attribution credits to the model description!</strong></p></li><li><p><a href="https://help.sketchfab.com/hc/en-us/articles/360046289571-App-free-AR#enable">Enable </a><strong><a href="https://help.sketchfab.com/hc/en-us/articles/360046289571-App-free-AR#enable">App Free AR</a></strong> (Premium).</p></li><li><p>Save.</p></li></ol><h2>3D Settings</h2><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;2e16d9ee-966f-4a9e-a422-b53c57af62e1&quot;,&quot;duration&quot;:null}"></div><p>Video summary above, more detailed description of steps below. <em>Note: my screen recording software has cut off part of the screen at the bottom</em>&#129318; </p><ol><li><p>Open your model&#8217;s <a href="http://3D Settings">3D Settings</a></p></li><li><p><strong>General</strong>: Adjust the <a href="https://help.sketchfab.com/hc/en-us/articles/203064198-Scene#camera">camera field of view (FOV</a>) to something like 20&#176;, this can help with legibility of your 3D text in the web view.</p></li><li><p><strong>Materials</strong>: Review the <a href="https://help.sketchfab.com/hc/en-us/articles/204429595-Materials-PBR-">materials</a> for each object in your scene - do they look right? Adjust as necessary. Turn up the <a href="https://help.sketchfab.com/hc/en-us/articles/4402386902929">emission</a> on the text if you want a bright, flat look. </p></li><li><p><strong>Lighting</strong>: Adjust <a href="https://help.sketchfab.com/hc/en-us/articles/203557159-Lighting">dynamic</a> and <a href="https://help.sketchfab.com/hc/en-us/articles/203557159-Lighting">environment lighting</a> as desired, add a <a href="https://help.sketchfab.com/hc/en-us/articles/203557159-Lighting">ground shadow</a>.</p></li><li><p><strong>Post-processing</strong>: adjust the <a href="https://help.sketchfab.com/hc/en-us/articles/115000728943-Post-Processing-Filters">post-processing filters</a>. At a minimum, add some <a href="https://help.sketchfab.com/hc/en-us/articles/115000728943-Post-Processing-Filters#ssao">SSAO</a>, a little <a href="https://help.sketchfab.com/hc/en-us/articles/115000728943-Post-Processing-Filters#sharp">sharpness</a>, maybe a <a href="https://help.sketchfab.com/hc/en-us/articles/115000728943-Post-Processing-Filters#vignette">vignette</a>, and a bit of <a href="https://help.sketchfab.com/hc/en-us/articles/115000728943-Post-Processing-Filters#tone-mapping">contrast</a>.</p></li><li><p>Add <a href="https://help.sketchfab.com/hc/en-us/articles/202512456-Annotations">annotations</a> for each model that requires attribution, and any more for your use case.</p></li><li><p>Set the scene scale and user starting position in <a href="https://help.sketchfab.com/hc/en-us/articles/211640363-VR-AR-Editor#world-scale">AR/VR settings</a>.</p></li><li><p>Save settings.</p></li><li><p>Publish your scene!</p></li></ol><h1>Capturing a video of the 3D Scene in AR</h1><p>On a <a href="https://help.sketchfab.com/hc/en-us/articles/360046289571-App-free-AR#device-compatibility">compatible device</a>, open the Sketchfab model page for your scene, and tap the [AR] button in the bottom right of the 3D viewer. This will download the relevant AR file format (glTF for Android, USDZ for iOS). </p><p>Once the model loads on your device, tap a surface somewhere in your immediate environment to place the 3D model in AR.</p><p>On higher end Apple devices that have LiDAR sensors, you will likely find that surface tracking is a little better. </p><p>Both Android and iOS include built in ways to record the AR experience, normally by holding down the shutter button for the duration of time you wish to catpture a video. If you&#8217;re struggling or unable to keep your thumb stuck to the shutter button, consider using the built in screen recorder or downloading a free app. </p><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;64773baf-76d8-41ca-bbaf-8a08854ac225&quot;,&quot;duration&quot;:null}"></div><p>Depending on your use case, you may want to capture as smooth a video as possible - in my experience (and maybe it&#8217;s just me!) I&#8217;ve found walking around a 3D model in AR would cause the video to judder at each footstep. Consider using your devices built in stabilisation post processing (available in the Photos app on Android) or using a camera gimbal during capture. I use a cheapish gimbal from <a href="https://store.hohem.com/en-gb/collections/gimbal">Hohem</a>.</p><h1>All done!</h1><p>I hope this tutorial has given you some insight into sourcing free 3D models, automatically optimising them, building a scene, and publishing it online for web and AR viewing.</p><p>Please leave feedback and let me know what other tutorials you&#8217;d like to see in the comments and if you like this kind of content, please consider subscribing to my newsletter below!</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://nebulousflynn.substack.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://nebulousflynn.substack.com/subscribe?"><span>Subscribe now</span></a></p><div><hr></div><p>Attribution for 3D models used in this tutorial:</p><p>"Athena #3DST8" (https://skfb.ly/AEw8) by Digitage is licensed under Creative Commons Attribution (http://creativecommons.org/licenses/by/4.0/).</p><p>"The Parade Shield of King Erik XIV of Sweden" (https://skfb.ly/6Rp9Y) by The Royal Armoury (Livrustkammaren) is licensed under Creative Commons Attribution (http://creativecommons.org/licenses/by/4.0/).</p><p>"Wolf skull" (https://skfb.ly/6XFYr) by Virtual Museums of Ma&#322;opolska is dedicated to the public domain via  CC0 1.0 DEED (https://creativecommons.org/publicdomain/zero/1.0/).</p><p>"Italian Casket with Mythological Scenes, 1530" (https://skfb.ly/66QKA) by laurashea is licensed under Creative Commons Attribution (http://creativecommons.org/licenses/by/4.0/).</p>]]></content:encoded></item><item><title><![CDATA[3D Gaussian Splats of Local Flora]]></title><description><![CDATA[I am getting a bit obsessed with capturing 3D gaussian splats of flowers & plants.]]></description><link>https://nebulousflynn.substack.com/p/3d-gaussian-splats-of-local-flora</link><guid isPermaLink="false">https://nebulousflynn.substack.com/p/3d-gaussian-splats-of-local-flora</guid><dc:creator><![CDATA[Thomas Flynn]]></dc:creator><pubDate>Sun, 10 Dec 2023 14:13:29 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7fe40f68-f0cf-484a-95fb-ecc54ab9c155_800x600.gif" length="0" type="image/jpeg"/><content:encoded><![CDATA[<blockquote><p>If you&#8217;re interested in creating your own gaussian splats, I can recommend trying out <a href="https://lumalabs.ai/">Luma AI</a> (web, cloud processing), <a href="https://www.jawset.com/">Jawset Postshot</a> (desktop, local processing), and <a href="https://scaniverse.com/">Scaniverse</a> (iOS app, local processing).</p></blockquote><p>I&#8217;ve enjoyed capturing things in 3D using photogrammetry and phone based LiDAR for a some time, but recently I have a renewed enthusiasm for making myself look suspicious and weird in public: I love capturing plants and flowers as gaussian splats &#128154; </p><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;f0f0dc39-141c-4ff4-80ea-15728c7f30e9&quot;,&quot;duration&quot;:null}"></div><p>As always, I suggest you don&#8217;t just watch the video but also click or tap over to experience the 3D scenes interactively (links below). Doing so is not only a more fun experience (imo), it will also give you a better understanding of how this form of 3D capture might be useful for in your own work:</p><ul><li><p><a href="https://lumalabs.ai/capture/3a9b2960-4d7a-4148-bbf9-b62f33454102">Braya Alpina</a></p></li><li><p><a href="https://lumalabs.ai/capture/cad2b3dd-4ffe-4ceb-bda6-0be6bcbd1045">Common Gorse</a></p></li><li><p><a href="https://lumalabs.ai/capture/a8f57c04-9dac-462e-a784-191a454335e4">Platycladus orientalis</a></p></li><li><p><a href="https://lumalabs.ai/capture/059f25eb-e543-4404-9cd6-fc5c83c2442e">Woolly Burdock</a></p></li><li><p><a href="https://lumalabs.ai/capture/02bbe164-fe26-45dc-a374-090e9d9c72bf">Pin Oak Leaves</a></p></li><li><p><a href="https://lumalabs.ai/capture/c1a71561-f8c0-4843-89ae-cfba6a817635">Cotoneaster</a></p></li></ul><p>Full disclosure: some of these plant names may be incorrect as, apart from common gorse which is an easy one, I had to use reverse image search to find out the names of which plants I had actually captured &#128517; This i, one of the things I like about my hobby, though: I see something interesting looking or something that just looks nice, I make a capture of it and then before I publish it online, I am compelled to discover at least some rudimentary information about my subject. Because without context, it&#8217;s just a bunch of colourful pixels, no?</p><h2>What <em>are</em> 3D Gaussian Splats?</h2><p>It&#8217;s definitely a weird name. Gaussian splats (&#8220;splats'&#8220; or &#8220;gsplats&#8221; as some people shorten it to) are the proverbial new kid on the 3D rendering block, despite <a href="https://www.matthewtancik.com/nerf">NeRFs</a> just moving into the neighbourhood too.</p><p>If you&#8217;re not familiar with gaussian splatting I can really recommend <a href="https://aras-p.info/blog/2023/09/05/Gaussian-Splatting-is-pretty-cool/">this blog post</a> by Aras Pranckevi&#269;ius, or <a href="https://www.youtube.com/watch?v=Tnij_xHEnXc">this video</a> by Bad Decisions Studio.</p><p>There are many ways to process input imagery or video into a gaussian splat, currently my favourites are <a href="https://lumalabs.ai/">Luma AI</a> and <a href="https://poly.cam/">Polycam</a>. You can view splats on both of these cloud platforms via the web or a respective app, and there is also an rudimentary viewer/editor for splats for the online WebGL game engine <a href="https://playcanvas.com/">PlayCanvas</a> called <a href="https://playcanvas.com/super-splat">Super Splat</a>. There are also various plugins to import splats into the Unreal Engine and Unity game engines, and <a href="https://twitter.com/hybridherbst">Felix Herbst</a> of <a href="https://needle.tools/">Needle</a> has also demonstrated some neat <a href="http://111">editing</a> and <a href="https://engine.needle.tools/samples/gaussian-splatting/?room=needle924">authoring</a> capabilities.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!zgVQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25f1cc81-8ebd-4b57-ab8e-e352804f9df3_1920x1200.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!zgVQ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25f1cc81-8ebd-4b57-ab8e-e352804f9df3_1920x1200.png 424w, https://substackcdn.com/image/fetch/$s_!zgVQ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25f1cc81-8ebd-4b57-ab8e-e352804f9df3_1920x1200.png 848w, https://substackcdn.com/image/fetch/$s_!zgVQ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25f1cc81-8ebd-4b57-ab8e-e352804f9df3_1920x1200.png 1272w, https://substackcdn.com/image/fetch/$s_!zgVQ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25f1cc81-8ebd-4b57-ab8e-e352804f9df3_1920x1200.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!zgVQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25f1cc81-8ebd-4b57-ab8e-e352804f9df3_1920x1200.png" width="1456" height="910" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/25f1cc81-8ebd-4b57-ab8e-e352804f9df3_1920x1200.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:910,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3478819,&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;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!zgVQ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25f1cc81-8ebd-4b57-ab8e-e352804f9df3_1920x1200.png 424w, https://substackcdn.com/image/fetch/$s_!zgVQ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25f1cc81-8ebd-4b57-ab8e-e352804f9df3_1920x1200.png 848w, https://substackcdn.com/image/fetch/$s_!zgVQ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25f1cc81-8ebd-4b57-ab8e-e352804f9df3_1920x1200.png 1272w, https://substackcdn.com/image/fetch/$s_!zgVQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25f1cc81-8ebd-4b57-ab8e-e352804f9df3_1920x1200.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">&#8216;Super Splat&#8217; gaussian splat editor from PlayCanvas</figcaption></figure></div><p>If you know another platform or service for working with gsplats, why not drop a link in the comments? </p><p>Some things I like about capturing gaussian splats are:</p><ul><li><p>Capturing these scenes with a photogrammetry workflow just isn&#8217;t possible, so it&#8217;s fun to be able to add a new set of capture subjects to my list.</p></li><li><p>The capture process is incredibly easy: capture a video on your phone, literally just wave it slowly around the subject (you can upload a .zip of images to Luma AI instead of a video if you like though). Most of the above captures I share above were made with less than a minute of video.</p></li><li><p>All processing is done in the cloud: just upload the input data then sit back and wait for the notification that the capture has completed processing.</p></li></ul><h2>What are 3D gaussian splats good for?</h2><p>At the time of writing, gaussian splats are mostly useful to enjoy as standalone pieces of 3D media, or in derivative form e.g. video or gifs or still renders.</p><p>Practical workflows for creating <em>experiences</em> with gsplats are no doubt in development, but right now you will need some coding chops to build a richer interactive experience on top of a splat.</p><p>Some very basic features I&#8217;d love to see made available for use with gaussian splats are:</p><ul><li><p>Web based editing tools (orientation, cropping, scaling, simplification, etc.).</p></li><li><p>Annotation tools</p></li><li><p>Better embed options</p></li></ul><p>Regardless of these missing features and considering how easy it is to create gaussian splats - and here I refer to the capture process, not access to technology which is a different matter - I&#8217;d really love to see someone build some kind of crowd sourced digital plan identification guide that leverages 3D media.</p><p>Long story short: I think gaussian splats are pretty good and could be great once their utility increases. What do you think? Could be a useful medium for in the cultural heritage industry to pursue? Then again, the sector is still wrestling with how to make the most of &#8216;regular&#8217; 3D yet &#8230;so maybe we should tackle that first &#128521;</p><p>If you enjoyed this post, please consider checking out my newsletter about 3D + cultural heritage <em><a href="https://nebulousflynn.substack.com/p/introducing-the-spatial-heritage">The Spatial Heritage Review</a></em>. Subscribe for free to receive new posts and support my work.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://nebulousflynn.substack.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://nebulousflynn.substack.com/subscribe?"><span>Subscribe now</span></a></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!t-p7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7fe40f68-f0cf-484a-95fb-ecc54ab9c155_800x600.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!t-p7!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7fe40f68-f0cf-484a-95fb-ecc54ab9c155_800x600.gif 424w, https://substackcdn.com/image/fetch/$s_!t-p7!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7fe40f68-f0cf-484a-95fb-ecc54ab9c155_800x600.gif 848w, https://substackcdn.com/image/fetch/$s_!t-p7!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7fe40f68-f0cf-484a-95fb-ecc54ab9c155_800x600.gif 1272w, https://substackcdn.com/image/fetch/$s_!t-p7!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7fe40f68-f0cf-484a-95fb-ecc54ab9c155_800x600.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!t-p7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7fe40f68-f0cf-484a-95fb-ecc54ab9c155_800x600.gif" width="800" height="600" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7fe40f68-f0cf-484a-95fb-ecc54ab9c155_800x600.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:600,&quot;width&quot;:800,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4876927,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/gif&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!t-p7!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7fe40f68-f0cf-484a-95fb-ecc54ab9c155_800x600.gif 424w, https://substackcdn.com/image/fetch/$s_!t-p7!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7fe40f68-f0cf-484a-95fb-ecc54ab9c155_800x600.gif 848w, https://substackcdn.com/image/fetch/$s_!t-p7!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7fe40f68-f0cf-484a-95fb-ecc54ab9c155_800x600.gif 1272w, https://substackcdn.com/image/fetch/$s_!t-p7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7fe40f68-f0cf-484a-95fb-ecc54ab9c155_800x600.gif 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><p></p>]]></content:encoded></item></channel></rss>