<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>interloper.</title>
	<atom:link href="https://interloper.ie/feed/" rel="self" type="application/rss+xml" />
	<link>https://interloper.ie</link>
	<description>Marcus Craig - Artist &#38; Technician</description>
	<lastBuildDate>Mon, 11 May 2026 09:51:35 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://interloper.ie/wp-content/uploads/2023/10/Untitled-2-150x150.png</url>
	<title>interloper.</title>
	<link>https://interloper.ie</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>QR Code Anything &#8211; Infinite* data encode/decode</title>
		<link>https://interloper.ie/qr-code/</link>
		
		<dc:creator><![CDATA[root]]></dc:creator>
		<pubDate>Sun, 10 May 2026 11:49:53 +0000</pubDate>
				<category><![CDATA[One Day Projects]]></category>
		<category><![CDATA[compression]]></category>
		<category><![CDATA[data]]></category>
		<category><![CDATA[qr code]]></category>
		<guid isPermaLink="false">https://interloper.ie/?p=1112</guid>

					<description><![CDATA[]]></description>
										<content:encoded><![CDATA[<iframe id="render-html-1" src="https://interloper.ie/wp-content/uploads/qr_project_finished.html" scrolling="no" frameborder="0" style="border:none;display:block;width:100%;overflow:hidden;" title="Embedded HTML"></iframe>
<script>(function(){var f=document.getElementById("render-html-1");function r(){try{f.style.height=f.contentDocument.documentElement.scrollHeight+"px";}catch(e){}}f.addEventListener("load",function(){r();try{new MutationObserver(r).observe(f.contentDocument.body,{childList:true,subtree:true,attributes:true,characterData:true});}catch(e){}});}());</script>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>3DGS of Video Game Clip</title>
		<link>https://interloper.ie/3dgs-gameclip/</link>
		
		<dc:creator><![CDATA[root]]></dc:creator>
		<pubDate>Thu, 02 Apr 2026 16:51:38 +0000</pubDate>
				<category><![CDATA[Uncategorised]]></category>
		<category><![CDATA[3dgs]]></category>
		<category><![CDATA[gaming]]></category>
		<category><![CDATA[gaussian splat]]></category>
		<category><![CDATA[open-source]]></category>
		<guid isPermaLink="false">https://interloper.ie/?p=1075</guid>

					<description><![CDATA[Here we have the result of a pretty boiler plate example of open-source gaussian splat scene generation. This was rendered via RealityScan for the sparse point cloud mapping and image extraction, then onto LichtFeld Studio for splat generation. I use a combination of a thread ripper cpu and an RTX 5070ti so this only took [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>Here we have the result of a pretty boiler plate example of open-source gaussian splat scene generation. This was rendered via <strong>RealityScan </strong>for the sparse point cloud mapping and image extraction, then onto<strong> LichtFeld Studio </strong>for splat generation. I use a combination of a thread ripper cpu and an RTX 5070ti so this only took around 3 minutes to compute.<br><br>I wanted this experiment to utilise datasets that are not of pristine origin. So many spats source from existing point cloud datasets and newer high resolution cameras rigs or drones. The software required to generate these have become much more flexible in what can be ingested and I was curious if incomplete or unreal datasets could make something interesting.</p>



<figure class="wp-block-video"><video height="1080" style="aspect-ratio: 1920 / 1080;" width="1920" controls src="https://interloper.ie/wp-content/uploads/Half-Sword-Demo-2025-12-06-11-29-23-AM.mp4"></video></figure>



<details class="wp-block-details is-layout-flow wp-block-details-is-layout-flow"><summary>Click to see the result</summary>
<!-- Responsive Gaussian Splat iframe wrapper -->
<style>
.splat-responsive-iframe {
  position: relative;
  width: 100%;
  padding-bottom: 56.25%; /* 16:9 Aspect Ratio (change as needed) */
  height: 0;
  overflow: hidden;
  border-radius: 16px;  /* optional, for rounded corners */
  box-shadow: 0 2px 16px rgba(0,0,0,0.08); /* optional, for subtle shadow */
  background: #f8f8f8; /* fallback background */
}
.splat-responsive-iframe iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: none;
}
</style>

<div class="splat-responsive-iframe">
  <iframe 
    src="https://interloper.ie/wp-content/uploads/splat_30000.html"
    allowfullscreen
    loading="lazy"
    title="Gaussian Splat Viewer"
  ></iframe>
</div>
</details>
]]></content:encoded>
					
		
		<enclosure url="https://interloper.ie/wp-content/uploads/Half-Sword-Demo-2025-12-06-11-29-23-AM.mp4" length="32410846" type="video/mp4" />

			</item>
		<item>
		<title>Portra 160</title>
		<link>https://interloper.ie/portra-160/</link>
		
		<dc:creator><![CDATA[root]]></dc:creator>
		<pubDate>Fri, 02 Jan 2026 16:24:46 +0000</pubDate>
				<category><![CDATA[Lens-based]]></category>
		<category><![CDATA[35mm]]></category>
		<category><![CDATA[film]]></category>
		<category><![CDATA[photography]]></category>
		<guid isPermaLink="false">https://interloper.ie/?p=1010</guid>

					<description><![CDATA[Portra 160 A single roll of 35mm Portra 160. Shots from summer in Nice, France.]]></description>
										<content:encoded><![CDATA[
<h2 data-wp-context---core-fit-text="core/fit-text::{&quot;fontSize&quot;:&quot;&quot;}" data-wp-init---core-fit-text="core/fit-text::callbacks.init" data-wp-interactive data-wp-style--font-size="core/fit-text::context.fontSize" class="wp-block-heading has-fit-text">Portra 160</h2>



<p>A single roll of 35mm Portra 160. Shots from summer in Nice, France.</p>


<ul class="filebird-block-filebird-gallery wp-block-gallery blocks-gallery-grid columns-3 is-cropped" style="--columns: 3;--space: 0px;--min-width: 0px;"><li class="blocks-gallery-item"><figure><img fetchpriority="high" decoding="async" width="1697" height="2560" src="https://interloper.ie/wp-content/uploads/2025/06/000012130035-scaled.jpg" alt="000012130035" class="wp-image-534" srcset="https://interloper.ie/wp-content/uploads/2025/06/000012130035-scaled.jpg 1697w, https://interloper.ie/wp-content/uploads/2025/06/000012130035-199x300.jpg 199w, https://interloper.ie/wp-content/uploads/2025/06/000012130035-679x1024.jpg 679w, https://interloper.ie/wp-content/uploads/2025/06/000012130035-768x1158.jpg 768w, https://interloper.ie/wp-content/uploads/2025/06/000012130035-1018x1536.jpg 1018w, https://interloper.ie/wp-content/uploads/2025/06/000012130035-1358x2048.jpg 1358w" sizes="(max-width: 1697px) 100vw, 1697px" /></figure></li><li class="blocks-gallery-item"><figure><img decoding="async" width="1697" height="2560" src="https://interloper.ie/wp-content/uploads/2025/06/000012130024-scaled.jpg" alt="000012130024" class="wp-image-533" srcset="https://interloper.ie/wp-content/uploads/2025/06/000012130024-scaled.jpg 1697w, https://interloper.ie/wp-content/uploads/2025/06/000012130024-199x300.jpg 199w, https://interloper.ie/wp-content/uploads/2025/06/000012130024-679x1024.jpg 679w, https://interloper.ie/wp-content/uploads/2025/06/000012130024-768x1158.jpg 768w, https://interloper.ie/wp-content/uploads/2025/06/000012130024-1018x1536.jpg 1018w, https://interloper.ie/wp-content/uploads/2025/06/000012130024-1358x2048.jpg 1358w" sizes="(max-width: 1697px) 100vw, 1697px" /></figure></li><li class="blocks-gallery-item"><figure><img decoding="async" width="1697" height="2560" src="https://interloper.ie/wp-content/uploads/2025/06/000012130021-scaled.jpg" alt="000012130021" class="wp-image-532" srcset="https://interloper.ie/wp-content/uploads/2025/06/000012130021-scaled.jpg 1697w, https://interloper.ie/wp-content/uploads/2025/06/000012130021-199x300.jpg 199w, https://interloper.ie/wp-content/uploads/2025/06/000012130021-679x1024.jpg 679w, https://interloper.ie/wp-content/uploads/2025/06/000012130021-768x1158.jpg 768w, https://interloper.ie/wp-content/uploads/2025/06/000012130021-1018x1536.jpg 1018w, https://interloper.ie/wp-content/uploads/2025/06/000012130021-1358x2048.jpg 1358w" sizes="(max-width: 1697px) 100vw, 1697px" /></figure></li><li class="blocks-gallery-item"><figure><img loading="lazy" decoding="async" width="2560" height="1697" src="https://interloper.ie/wp-content/uploads/2025/06/000012130028-scaled.jpg" alt="000012130028" class="wp-image-531" srcset="https://interloper.ie/wp-content/uploads/2025/06/000012130028-scaled.jpg 2560w, https://interloper.ie/wp-content/uploads/2025/06/000012130028-300x199.jpg 300w, https://interloper.ie/wp-content/uploads/2025/06/000012130028-1024x679.jpg 1024w, https://interloper.ie/wp-content/uploads/2025/06/000012130028-768x509.jpg 768w, https://interloper.ie/wp-content/uploads/2025/06/000012130028-1536x1018.jpg 1536w, https://interloper.ie/wp-content/uploads/2025/06/000012130028-2048x1358.jpg 2048w" sizes="auto, (max-width: 2560px) 100vw, 2560px" /></figure></li><li class="blocks-gallery-item"><figure><img loading="lazy" decoding="async" width="1697" height="2560" src="https://interloper.ie/wp-content/uploads/2025/06/000012130026-scaled.jpg" alt="000012130026" class="wp-image-530" srcset="https://interloper.ie/wp-content/uploads/2025/06/000012130026-scaled.jpg 1697w, https://interloper.ie/wp-content/uploads/2025/06/000012130026-199x300.jpg 199w, https://interloper.ie/wp-content/uploads/2025/06/000012130026-679x1024.jpg 679w, https://interloper.ie/wp-content/uploads/2025/06/000012130026-768x1158.jpg 768w, https://interloper.ie/wp-content/uploads/2025/06/000012130026-1018x1536.jpg 1018w, https://interloper.ie/wp-content/uploads/2025/06/000012130026-1358x2048.jpg 1358w" sizes="auto, (max-width: 1697px) 100vw, 1697px" /></figure></li><li class="blocks-gallery-item"><figure><img loading="lazy" decoding="async" width="1697" height="2560" src="https://interloper.ie/wp-content/uploads/2025/06/000012130025-scaled.jpg" alt="000012130025" class="wp-image-529" srcset="https://interloper.ie/wp-content/uploads/2025/06/000012130025-scaled.jpg 1697w, https://interloper.ie/wp-content/uploads/2025/06/000012130025-199x300.jpg 199w, https://interloper.ie/wp-content/uploads/2025/06/000012130025-679x1024.jpg 679w, https://interloper.ie/wp-content/uploads/2025/06/000012130025-768x1158.jpg 768w, https://interloper.ie/wp-content/uploads/2025/06/000012130025-1018x1536.jpg 1018w, https://interloper.ie/wp-content/uploads/2025/06/000012130025-1358x2048.jpg 1358w" sizes="auto, (max-width: 1697px) 100vw, 1697px" /></figure></li><li class="blocks-gallery-item"><figure><img loading="lazy" decoding="async" width="1697" height="2560" src="https://interloper.ie/wp-content/uploads/2025/06/000012130017-scaled.jpg" alt="000012130017" class="wp-image-528" srcset="https://interloper.ie/wp-content/uploads/2025/06/000012130017-scaled.jpg 1697w, https://interloper.ie/wp-content/uploads/2025/06/000012130017-199x300.jpg 199w, https://interloper.ie/wp-content/uploads/2025/06/000012130017-679x1024.jpg 679w, https://interloper.ie/wp-content/uploads/2025/06/000012130017-768x1158.jpg 768w, https://interloper.ie/wp-content/uploads/2025/06/000012130017-1018x1536.jpg 1018w, https://interloper.ie/wp-content/uploads/2025/06/000012130017-1358x2048.jpg 1358w" sizes="auto, (max-width: 1697px) 100vw, 1697px" /></figure></li><li class="blocks-gallery-item"><figure><img loading="lazy" decoding="async" width="1697" height="2560" src="https://interloper.ie/wp-content/uploads/2025/06/000012130014-scaled.jpg" alt="000012130014" class="wp-image-527" srcset="https://interloper.ie/wp-content/uploads/2025/06/000012130014-scaled.jpg 1697w, https://interloper.ie/wp-content/uploads/2025/06/000012130014-199x300.jpg 199w, https://interloper.ie/wp-content/uploads/2025/06/000012130014-679x1024.jpg 679w, https://interloper.ie/wp-content/uploads/2025/06/000012130014-768x1158.jpg 768w, https://interloper.ie/wp-content/uploads/2025/06/000012130014-1018x1536.jpg 1018w, https://interloper.ie/wp-content/uploads/2025/06/000012130014-1358x2048.jpg 1358w" sizes="auto, (max-width: 1697px) 100vw, 1697px" /></figure></li><li class="blocks-gallery-item"><figure><img loading="lazy" decoding="async" width="1697" height="2560" src="https://interloper.ie/wp-content/uploads/2025/06/000012130011-scaled.jpg" alt="000012130011" class="wp-image-526" srcset="https://interloper.ie/wp-content/uploads/2025/06/000012130011-scaled.jpg 1697w, https://interloper.ie/wp-content/uploads/2025/06/000012130011-199x300.jpg 199w, https://interloper.ie/wp-content/uploads/2025/06/000012130011-679x1024.jpg 679w, https://interloper.ie/wp-content/uploads/2025/06/000012130011-768x1158.jpg 768w, https://interloper.ie/wp-content/uploads/2025/06/000012130011-1018x1536.jpg 1018w, https://interloper.ie/wp-content/uploads/2025/06/000012130011-1358x2048.jpg 1358w" sizes="auto, (max-width: 1697px) 100vw, 1697px" /></figure></li></ul>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Terminal</title>
		<link>https://interloper.ie/terminal/</link>
		
		<dc:creator><![CDATA[root]]></dc:creator>
		<pubDate>Sat, 09 Aug 2025 19:02:00 +0000</pubDate>
				<category><![CDATA[One Day Projects]]></category>
		<category><![CDATA[cli]]></category>
		<category><![CDATA[one-day-project]]></category>
		<category><![CDATA[operating system]]></category>
		<category><![CDATA[os]]></category>
		<category><![CDATA[terminal]]></category>
		<guid isPermaLink="false">https://www.interloper.ie/?p=702</guid>

					<description><![CDATA[Terminal OS It has been a while since I made a one-day project. Always enjoyed the idea of a web based &#8216;terminal&#8217; that mimics a SSH connection or a headless CLI. I could easily expose a MySQL demo user and designate a sandbox portion of my VM &#8211; but making it a single HTML is [&#8230;]]]></description>
										<content:encoded><![CDATA[
<h2 data-wp-context---core-fit-text="core/fit-text::{&quot;fontSize&quot;:&quot;&quot;}" data-wp-init---core-fit-text="core/fit-text::callbacks.init" data-wp-interactive data-wp-style--font-size="core/fit-text::context.fontSize" class="wp-block-heading has-fit-text">Terminal OS</h2>


<div class="wp-block-post-date"><time datetime="2025-08-09T21:02:00+02:00">09/08/2025</time></div>


<p>It has been a while since I made a one-day project. Always enjoyed the idea of a web based &#8216;terminal&#8217; that mimics a SSH connection or a headless CLI. I could easily expose a MySQL demo user and designate a sandbox portion of my VM &#8211; but making it a single HTML is much more fun (and, you know, safe).<br><br>Adding a few functions that pull from some public APIs such as a weather search and some selected news headlines via RSS. Adding the ability to query the WordPress CMS so you can search Pages/Posts, all without requiring its REST API. I could always add some persistence with some PHP sessions or even just the browsers localStorage, but I prefer this to be as instanced and lightweight as possible. This is all contained within a single HTML file (&lt;20kb).<br><br>This project can be found formerly at <a href="https://interloper.ie/os">interloper.ie/os</a></p>



<!-- Terminal iframe wrapper -->
<style>
.terminal-embed{
  position:relative;
  width:100%;
  aspect-ratio:16/9;                 /* default desktop letterbox */
  overflow:hidden;
  border-radius:16px;
  box-shadow:0 2px 16px rgba(0,0,0,.08);
  background:#0b0b0b;
}

/* The iframe */
.terminal-embed iframe{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  border:0;
}

/* Fullscreen button */
.terminal-embed .fs-btn{
  position:absolute;
  top:10px;
  right:10px;
  z-index:2;                         /* ensure above iframe */
  display:inline-flex;
  align-items:center;
  gap:.45rem;
  padding:.5rem .7rem;
  border-radius:10px;
  background:rgba(10,10,10,.7);
  color:#e8e8e8;
  border:1px solid rgba(255,255,255,.15);
  backdrop-filter: blur(4px);
  cursor:pointer;
  font:500 13px/1 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  user-select:none;

  opacity:0;
  transform: translateY(-4px);
  transition: opacity .18s ease, transform .18s ease, background .18s ease;
}
.terminal-embed .fs-btn:hover{ background:rgba(10,10,10,.85); }
.terminal-embed .fs-btn svg{ width:16px; height:16px; }

/* Fade in on hover/focus, and keep shown while fullscreen */
.terminal-embed:hover .fs-btn,
.terminal-embed:focus-within .fs-btn,
.terminal-embed.is-fullscreen .fs-btn{
  opacity:1;
  transform:none;
}

/* No hover (touch): keep visible */
@media (hover:none){
  .terminal-embed .fs-btn{ opacity:1; transform:none; }
}

/* Phones in portrait: use viewport height instead of 16:9 */
@media (max-width:700px) and (orientation:portrait){
  .terminal-embed{ aspect-ratio:auto; height:85vh; }
  .terminal-embed iframe{ height:100%; }
}
</style>

<div class="terminal-embed" id="terminal-embed" aria-label="Interactive terminal embed">
  <button class="fs-btn" type="button" aria-label="Enter fullscreen" title="Fullscreen">
    <!-- “enter fullscreen” icon -->
    <svg viewBox="0 0 24 24" aria-hidden="true">
      <path fill="currentColor"
        d="M7 3h2v4h4v2H7V3zm8 0h2v6h-6V7h4V3zM7 13h6v4H9v4H7v-8zm10 0v8h-2v-4h-4v-2h6z"/>
    </svg>
    <span class="fs-text">Fullscreen</span>
  </button>

  <iframe
    id="terminal-frame"
    src="https://www.interloper.ie/wp-content/uploads/2025/08/terminal2.html"
    title="terminal"
    loading="lazy"
    allow="fullscreen"
    allowfullscreen
  ></iframe>
</div>

<script>
(function(){
  const wrap   = document.getElementById('terminal-embed');
  const btn    = wrap.querySelector('.fs-btn');
  const label  = btn.querySelector('.fs-text');
  const svg    = btn.querySelector('svg');
  const iframe = document.getElementById('terminal-frame');

  function isFS(){
    return document.fullscreenElement === wrap
        || document.webkitFullscreenElement === wrap;
  }

  async function enterFS(){
    try{
      if (wrap.requestFullscreen) await wrap.requestFullscreen();
      else if (wrap.webkitRequestFullscreen) wrap.webkitRequestFullscreen(); // Safari
    }catch(e){ console.warn('Fullscreen request failed:', e); }
  }

  function exitFS(){
    if (document.exitFullscreen) document.exitFullscreen();
    else if (document.webkitExitFullscreen) document.webkitExitFullscreen();
  }

  function toggleFS(){
    if (isFS()) exitFS();
    else enterFS();
  }

  // Try to focus the terminal inside the iframe
  function focusTerminalInIframe(){
    try {
      // direct same-origin call
      iframe.contentWindow?.focusTerminal?.();
    } catch(e) {
      // Cross-origin safety; shouldn't happen for same-site
      console.warn('Could not call focusTerminal on iframe:', e);
    }
  }

  function updateUI(){
    const active = isFS();
    wrap.classList.toggle('is-fullscreen', active);
    btn.setAttribute('aria-label', active ? 'Exit fullscreen' : 'Enter fullscreen');
    btn.title = active ? 'Exit fullscreen' : 'Fullscreen';
    label.textContent = active ? 'Exit' : 'Fullscreen';
    svg.style.transform = active ? 'rotate(180deg)' : 'none';

    // When entering fullscreen, nudge focus a few times to beat timing quirks
    if (active) {
      focusTerminalInIframe();
      setTimeout(focusTerminalInIframe, 50);
      setTimeout(focusTerminalInIframe, 150);
    }
  }

  btn.addEventListener('click', () => {
    toggleFS();
    // Also try immediately on click (helps on some browsers)
    setTimeout(focusTerminalInIframe, 0);
  });

  document.addEventListener('fullscreenchange', updateUI);
  document.addEventListener('webkitfullscreenchange', updateUI);
  updateUI();
})();
</script>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>3DGS</title>
		<link>https://interloper.ie/custom_3dgs/</link>
		
		<dc:creator><![CDATA[root]]></dc:creator>
		<pubDate>Thu, 07 Aug 2025 08:53:33 +0000</pubDate>
				<category><![CDATA[Uncategorised]]></category>
		<guid isPermaLink="false">https://www.interloper.ie/?p=695</guid>

					<description><![CDATA[]]></description>
										<content:encoded><![CDATA[
<!-- Responsive Gaussian Splat iframe wrapper -->
<style>
.splat-responsive-iframe {
  position: relative;
  width: 100%;
  padding-bottom: 56.25%; /* 16:9 Aspect Ratio (change as needed) */
  height: 0;
  overflow: hidden;
  border-radius: 16px;  /* optional, for rounded corners */
  box-shadow: 0 2px 16px rgba(0,0,0,0.08); /* optional, for subtle shadow */
  background: #f8f8f8; /* fallback background */
}
.splat-responsive-iframe iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: none;
}
</style>

<div class="splat-responsive-iframe">
  <iframe 
    src="https://interloper.ie/wp-content/uploads/2025/08/WP_Teapot.html"
    allowfullscreen
    loading="lazy"
    title="Gaussian Splat Viewer"
  ></iframe>
</div>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Attempt to create a new 3DGS Viewer</title>
		<link>https://interloper.ie/new-3dgsviewer-attempt/</link>
		
		<dc:creator><![CDATA[root]]></dc:creator>
		<pubDate>Mon, 04 Aug 2025 13:00:17 +0000</pubDate>
				<category><![CDATA[Uncategorised]]></category>
		<category><![CDATA[3dgs]]></category>
		<category><![CDATA[gaussian splat]]></category>
		<category><![CDATA[splat]]></category>
		<category><![CDATA[three.js]]></category>
		<guid isPermaLink="false">https://www.interloper.ie/?p=688</guid>

					<description><![CDATA[Custom 3DGS viewer This is my attempt to create a 3DGS viewer of my own. It is largely a fork of the Three.js libraries with some tuning to help (attempt) to alter vertices in realtime. This cannot be done with some more popular viewers such as the wonderful one provided by SuperSplat. They encode the [&#8230;]]]></description>
										<content:encoded><![CDATA[
<h2 data-wp-context---core-fit-text="core/fit-text::{&quot;fontSize&quot;:&quot;&quot;}" data-wp-init---core-fit-text="core/fit-text::callbacks.init" data-wp-interactive data-wp-style--font-size="core/fit-text::context.fontSize" class="wp-block-heading has-fit-text">Custom 3DGS viewer</h2>



<p>This is my attempt to create a 3DGS viewer of my own. It is largely a fork of the Three.js libraries with some tuning to help (attempt) to alter vertices in realtime. This cannot be done with some more popular viewers such as the wonderful one provided by SuperSplat. They encode the .ply file into a Base64 image and the rest of the code is minified so forget about it. There is room to make entirely realtime 3DGS editor but this will take some time.</p>



<style>
.responsive-iframe-container {
  position: relative;
  border-radius: 16px;  /* optional, for rounded corners */
  padding-bottom: 56.25%; /* 16:9 aspect ratio */
  height: 0;
  overflow: hidden;
}

.responsive-iframe-container iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: 0;
}
</style>

<div class="responsive-iframe-container">
  <iframe src="https://www.interloper.ie/wp-content/uploads/2025/08/test.html"></iframe>
</div>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Code Paint</title>
		<link>https://interloper.ie/code-paint/</link>
		
		<dc:creator><![CDATA[root]]></dc:creator>
		<pubDate>Thu, 11 Apr 2024 10:40:16 +0000</pubDate>
				<category><![CDATA[Studies]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[p5.js]]></category>
		<category><![CDATA[paint]]></category>
		<guid isPermaLink="false">https://www.interloper.ie/?p=112</guid>

					<description><![CDATA[Code Paint]]></description>
										<content:encoded><![CDATA[
<h2 data-wp-context---core-fit-text="core/fit-text::{&quot;fontSize&quot;:&quot;&quot;}" data-wp-init---core-fit-text="core/fit-text::callbacks.init" data-wp-interactive data-wp-style--font-size="core/fit-text::context.fontSize" class="wp-block-heading has-fit-text">Code Paint</h2>


<ul class="filebird-block-filebird-gallery wp-block-gallery blocks-gallery-grid columns-2 is-cropped" style="--columns: 2;--space: 0px;--min-width: 0px;"><li class="blocks-gallery-item"><figure><img loading="lazy" decoding="async" width="1000" height="1000" src="https://interloper.ie/wp-content/uploads/2025/06/js1.png" alt="js1" class="wp-image-525" srcset="https://interloper.ie/wp-content/uploads/2025/06/js1.png 1000w, https://interloper.ie/wp-content/uploads/2025/06/js1-300x300.png 300w, https://interloper.ie/wp-content/uploads/2025/06/js1-150x150.png 150w, https://interloper.ie/wp-content/uploads/2025/06/js1-768x768.png 768w" sizes="auto, (max-width: 1000px) 100vw, 1000px" /></figure></li><li class="blocks-gallery-item"><figure><img loading="lazy" decoding="async" width="1200" height="1200" src="https://interloper.ie/wp-content/uploads/2024/04/myCanvas-4c.jpeg" alt="myCanvas-4c" class="wp-image-215" srcset="https://interloper.ie/wp-content/uploads/2024/04/myCanvas-4c.jpeg 1200w, https://interloper.ie/wp-content/uploads/2024/04/myCanvas-4c-300x300.jpeg 300w, https://interloper.ie/wp-content/uploads/2024/04/myCanvas-4c-1024x1024.jpeg 1024w, https://interloper.ie/wp-content/uploads/2024/04/myCanvas-4c-150x150.jpeg 150w, https://interloper.ie/wp-content/uploads/2024/04/myCanvas-4c-768x768.jpeg 768w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /></figure></li><li class="blocks-gallery-item"><figure><img loading="lazy" decoding="async" width="1200" height="1200" src="https://interloper.ie/wp-content/uploads/2024/04/myCanvas-6c.jpeg" alt="myCanvas-6c" class="wp-image-212" srcset="https://interloper.ie/wp-content/uploads/2024/04/myCanvas-6c.jpeg 1200w, https://interloper.ie/wp-content/uploads/2024/04/myCanvas-6c-300x300.jpeg 300w, https://interloper.ie/wp-content/uploads/2024/04/myCanvas-6c-1024x1024.jpeg 1024w, https://interloper.ie/wp-content/uploads/2024/04/myCanvas-6c-150x150.jpeg 150w, https://interloper.ie/wp-content/uploads/2024/04/myCanvas-6c-768x768.jpeg 768w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /></figure></li><li class="blocks-gallery-item"><figure><img loading="lazy" decoding="async" width="4000" height="4000" src="https://interloper.ie/wp-content/uploads/2024/04/myCanvas-6.png" alt="myCanvas-6" class="wp-image-210" srcset="https://interloper.ie/wp-content/uploads/2024/04/myCanvas-6.png 4000w, https://interloper.ie/wp-content/uploads/2024/04/myCanvas-6-300x300.png 300w, https://interloper.ie/wp-content/uploads/2024/04/myCanvas-6-1024x1024.png 1024w, https://interloper.ie/wp-content/uploads/2024/04/myCanvas-6-150x150.png 150w, https://interloper.ie/wp-content/uploads/2024/04/myCanvas-6-768x768.png 768w, https://interloper.ie/wp-content/uploads/2024/04/myCanvas-6-1536x1536.png 1536w, https://interloper.ie/wp-content/uploads/2024/04/myCanvas-6-2048x2048.png 2048w" sizes="auto, (max-width: 4000px) 100vw, 4000px" /></figure></li><li class="blocks-gallery-item"><figure><img loading="lazy" decoding="async" width="1200" height="1200" src="https://interloper.ie/wp-content/uploads/2024/04/myCanvas-9-2.png" alt="myCanvas-9-2" class="wp-image-207" srcset="https://interloper.ie/wp-content/uploads/2024/04/myCanvas-9-2.png 1200w, https://interloper.ie/wp-content/uploads/2024/04/myCanvas-9-2-300x300.png 300w, https://interloper.ie/wp-content/uploads/2024/04/myCanvas-9-2-1024x1024.png 1024w, https://interloper.ie/wp-content/uploads/2024/04/myCanvas-9-2-150x150.png 150w, https://interloper.ie/wp-content/uploads/2024/04/myCanvas-9-2-768x768.png 768w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /></figure></li><li class="blocks-gallery-item"><figure><img loading="lazy" decoding="async" width="3250" height="3250" src="https://interloper.ie/wp-content/uploads/2024/04/myCanvas-9.png" alt="myCanvas-9" class="wp-image-206" srcset="https://interloper.ie/wp-content/uploads/2024/04/myCanvas-9.png 3250w, https://interloper.ie/wp-content/uploads/2024/04/myCanvas-9-300x300.png 300w, https://interloper.ie/wp-content/uploads/2024/04/myCanvas-9-1024x1024.png 1024w, https://interloper.ie/wp-content/uploads/2024/04/myCanvas-9-150x150.png 150w, https://interloper.ie/wp-content/uploads/2024/04/myCanvas-9-768x768.png 768w, https://interloper.ie/wp-content/uploads/2024/04/myCanvas-9-1536x1536.png 1536w, https://interloper.ie/wp-content/uploads/2024/04/myCanvas-9-2048x2048.png 2048w" sizes="auto, (max-width: 3250px) 100vw, 3250px" /></figure></li></ul>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>It Comes in Waves</title>
		<link>https://interloper.ie/waves/</link>
		
		<dc:creator><![CDATA[root]]></dc:creator>
		<pubDate>Tue, 03 Oct 2023 17:38:54 +0000</pubDate>
				<category><![CDATA[Lens-based]]></category>
		<category><![CDATA[astronomy]]></category>
		<category><![CDATA[open-source]]></category>
		<category><![CDATA[photography]]></category>
		<category><![CDATA[satellite]]></category>
		<guid isPermaLink="false">https://www.interloper.ie/?p=116</guid>

					<description><![CDATA[It Comes in Waves NOAA weather satellite]]></description>
										<content:encoded><![CDATA[
<h2 data-wp-context---core-fit-text="core/fit-text::{&quot;fontSize&quot;:&quot;&quot;}" data-wp-init---core-fit-text="core/fit-text::callbacks.init" data-wp-interactive data-wp-style--font-size="core/fit-text::context.fontSize" class="wp-block-heading has-fit-text">It Comes in Waves</h2>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6a029baeb424f&quot;}" data-wp-interactive="core/image" data-wp-key="6a029baeb424f" class="wp-block-image aligncenter size-large wp-lightbox-container"><img loading="lazy" decoding="async" width="882" height="1024" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://interloper.ie/wp-content/uploads/2023/09/sample-2-882x1024.png" alt="" class="wp-image-77" srcset="https://interloper.ie/wp-content/uploads/2023/09/sample-2-882x1024.png 882w, https://interloper.ie/wp-content/uploads/2023/09/sample-2-258x300.png 258w, https://interloper.ie/wp-content/uploads/2023/09/sample-2-768x891.png 768w, https://interloper.ie/wp-content/uploads/2023/09/sample-2.png 959w" sizes="auto, (max-width: 882px) 100vw, 882px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			aria-label="Enlarge"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.imageButtonRight"
			data-wp-style--top="state.imageButtonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>



<p>NOAA weather satellite </p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Hello world!</title>
		<link>https://interloper.ie/hello-world/</link>
					<comments>https://interloper.ie/hello-world/#comments</comments>
		
		<dc:creator><![CDATA[root]]></dc:creator>
		<pubDate>Tue, 03 Oct 2023 16:05:35 +0000</pubDate>
				<category><![CDATA[Uncategorised]]></category>
		<guid isPermaLink="false">http://217.170.204.3/?p=1</guid>

					<description><![CDATA[Working This is a test.How does this look now?]]></description>
										<content:encoded><![CDATA[
<h2 data-wp-context---core-fit-text="core/fit-text::{&quot;fontSize&quot;:&quot;&quot;}" data-wp-init---core-fit-text="core/fit-text::callbacks.init" data-wp-interactive data-wp-style--font-size="core/fit-text::context.fontSize" class="wp-block-heading has-fit-text">Working</h2>



<p>This is a test.<br><strong>How does this look now?</strong></p>



<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Nanum+Myeongjo&#038;family=Roboto+Mono:wght@400;500&#038;display=swap" rel="stylesheet">

<style>
  /* 2. Set the Green Background */
  body, #page, .site, .site-content, .entry-content, .wp-site-blocks {
    background-color: #73D29E !important;
    color: #1a1a1a !important;
  }

  /* 3. THE NUCLEAR OPTION: Force Nanum Myeongjo on EVERYTHING */
  /* This targets every single element on the page */
  * {
    font-family: "Nanum Myeongjo", serif !important;
  }

  /* 4. Exception: Only keep buttons/inputs as the "Tech" font */
  button, input, code, pre {
    font-family: 'Roboto Mono', monospace !important;
  }

  /* 5. Link Styling */
  a {
    color: #000000 !important;
    text-decoration: underline;
  }
</style>
]]></content:encoded>
					
					<wfw:commentRss>https://interloper.ie/hello-world/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Engram</title>
		<link>https://interloper.ie/engram/</link>
		
		<dc:creator><![CDATA[root]]></dc:creator>
		<pubDate>Thu, 03 May 2018 18:30:01 +0000</pubDate>
				<category><![CDATA[Uncategorised]]></category>
		<category><![CDATA[maxmsp]]></category>
		<category><![CDATA[memory]]></category>
		<guid isPermaLink="false">https://www.interloper.ie/?p=303</guid>

					<description><![CDATA[Following from my research into digital entropy, I stumbled across the papers of Trinity professor Thomas Ryan and his work on the &#8216;engram&#8217;. With the concept of the Engram, I generally resist the comparison of the human brain to a computer, used as analogues of one another. However, the notion of the engram supports some [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>Following from my research into digital entropy, I stumbled across the papers of Trinity professor Thomas Ryan and his work on the &#8216;engram&#8217;. </p>



<p>With the concept of the Engram, I generally resist the comparison of the human brain to a computer, used as analogues of one another. However, the notion of the engram supports some correlations, suggesting that &#8216;space&#8217; and &#8216;encoding&#8217; are analogous to bits and bytes.</p>



<p></p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
