<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Lawrence Arryl Lopez</title>
    <description>The latest articles on Forem by Lawrence Arryl Lopez (@arryllopez).</description>
    <link>https://forem.com/arryllopez</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3809026%2F3d77e003-97f0-4e83-b5cf-4a172cd5cf00.jpeg</url>
      <title>Forem: Lawrence Arryl Lopez</title>
      <link>https://forem.com/arryllopez</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/arryllopez"/>
    <language>en</language>
    <item>
      <title>Blender Plugin for Collab Editing</title>
      <dc:creator>Lawrence Arryl Lopez</dc:creator>
      <pubDate>Fri, 06 Mar 2026 04:30:03 +0000</pubDate>
      <link>https://forem.com/arryllopez/blender-plugin-for-collab-editing-418i</link>
      <guid>https://forem.com/arryllopez/blender-plugin-for-collab-editing-418i</guid>
      <description>&lt;p&gt;"Move it two units left. No, your left. Wait, which axis?"&lt;/p&gt;

&lt;p&gt;Last year, I tried making my first 3D scene in Blender.&lt;/p&gt;

&lt;p&gt;My friend was guiding me over a call — describing where to place lights, how to angle the camera, where props should go.&lt;/p&gt;

&lt;p&gt;It was a disaster.&lt;/p&gt;

&lt;p&gt;Every instruction turned into a five-minute back-and-forth.&lt;br&gt;
We spent more time explaining the scene than building it.&lt;/p&gt;

&lt;p&gt;That frustration became the idea behind Meerkat.&lt;/p&gt;

&lt;p&gt;I’m building a plugin that lets multiple people edit the same Blender scene in real time.&lt;/p&gt;

&lt;p&gt;You move an object — everyone sees it.&lt;br&gt;
No file passing.&lt;br&gt;
No “send me the latest version.”&lt;br&gt;
No guessing.&lt;/p&gt;

&lt;p&gt;Think Google Docs, but for 3D worlds.&lt;/p&gt;

&lt;p&gt;It’s open source and still in development.&lt;/p&gt;

&lt;p&gt;If this sounds like a fun problem to solve, come take a look:&lt;/p&gt;

&lt;p&gt;

&lt;/p&gt;
&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/arryllopez" rel="noopener noreferrer"&gt;
        arryllopez
      &lt;/a&gt; / &lt;a href="https://github.com/arryllopez/meerkat" rel="noopener noreferrer"&gt;
        meerkat
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      real time collaborative scene layouts in blender
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;Meerkat&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;&lt;a href="https://www.gnu.org/licenses/gpl-3.0" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/48bf9b56d44f38db53ce21294cf0b9487d0a3734ab3ba1fe4c69858ae20db2c1/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d47504c76332d626c75652e737667" alt="License: GPLv3"&gt;&lt;/a&gt;
&lt;a href="https://github.com/arryllopez/meerkat" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/d653c8f14fb26a927ffa62f7895f7b8d1ef1006d850cb3490be538fee140f7ca/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7374617475732d616c706861253230736f6f6e2d6f72616e6765" alt="Status"&gt;&lt;/a&gt;
&lt;a href="https://github.com/arryllopez/meerkat/pulls" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/dd0b24c1e6776719edb2c273548a510d6490d8d25269a043dfabbd38419905da/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5052732d77656c636f6d652d627269676874677265656e2e737667" alt="PRs Welcome"&gt;&lt;/a&gt;
&lt;a href="https://github.com/arryllopez/meerkat" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/5f910ee28e78486ae280f289ddacb857b56da0193fb27c84ffc8e05e2b3d97ad/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f73746172732f617272796c6c6f70657a2f6d6565726b61743f7374796c653d736f6369616c" alt="GitHub Stars"&gt;&lt;/a&gt;
&lt;a href="https://github.com/arryllopez/meerkat/discussions" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/525662ad120ffe80a7175ee635a25dfab1629d996b0223b73df614162975b84e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4769744875622d44697363757373696f6e732d707572706c653f6c6f676f3d676974687562" alt="Discussions"&gt;&lt;/a&gt;
&lt;a href="https://www.rust-lang.org/" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/7bb88fe73533270dc8e93cefa0ef8c3337348ded68fe8b261e25568c9c86805b/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f527573742d312e37352b2d6f72616e67653f6c6f676f3d72757374" alt="Rust"&gt;&lt;/a&gt;
&lt;a href="https://www.python.org/" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/b72a80cdc6a19773199d6b4b0716b5fcfe37dc51b4125c1ea3f0dc34daf7cebd/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f507974686f6e2d332e31302b2d626c75653f6c6f676f3d707974686f6e266c6f676f436f6c6f723d7768697465" alt="Python"&gt;&lt;/a&gt;
&lt;a href="https://www.blender.org/" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/9cfbd2092c6ff489381f49b5498aee5556211945878ad586658fd8f0c3274966/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f426c656e6465722d342e302b2d6f72616e67653f6c6f676f3d626c656e646572266c6f676f436f6c6f723d7768697465" alt="Blender"&gt;&lt;/a&gt;
&lt;a href="https://tokio.rs/" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/c543c26db420a7edbd10d2db5b885ffffcc1cced7e2e13915944723c0685fc0b/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f546f6b696f2d6173796e632d627269676874677265656e3f6c6f676f3d72757374" alt="Tokio"&gt;&lt;/a&gt;
&lt;a href="https://github.com/tokio-rs/axum" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/a7f9a8a1ce2ca9bb4903e242cbf26e781252580051a19861a8c27293ff4c08b3/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4178756d2d7765622d6c69676874677265793f6c6f676f3d72757374" alt="Axum"&gt;&lt;/a&gt;
&lt;a href="https://developer.mozilla.org/en-US/docs/Web/API/WebSocket" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/c874a31000b578210d3edc8ff3406b75aeb379d272f84d54d61edceb35790f53/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f576562536f636b65742d7265616c74696d652d626c7565" alt="WebSocket"&gt;&lt;/a&gt;
&lt;a href="https://github.com/arryllopez/meerkat" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/ec796326a5076347bb89dcc58faabc250cdee7be0fd5c63376537fc7f8a19c76/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6d61634f532d3030303030303f6c6f676f3d6170706c65266c6f676f436f6c6f723d7768697465" alt="macOS"&gt;&lt;/a&gt;
&lt;a href="https://github.com/arryllopez/meerkat" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/46afb0e87c45f04b59e69e1651ed89b82472c5dd8737a1d2b85e0af56f63231b/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c696e75782d4643433632343f6c6f676f3d6c696e7578266c6f676f436f6c6f723d626c61636b" alt="Linux"&gt;&lt;/a&gt;
&lt;a href="https://github.com/arryllopez/meerkat" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/3578b0a8344253675e66b965222b8602a4ecd65f82f18ab350af6b19eb348834/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f57696e646f77732d3030373844363f6c6f676f3d77696e646f7773266c6f676f436f6c6f723d7768697465" alt="Windows"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Real-time collaborative editing inside Blender — multiplayer scene editing, live transforms, and shared sessions.&lt;/p&gt;
&lt;p&gt;
  &lt;a rel="noopener noreferrer" href="https://github.com/arryllopez/meerkat/cursor_tracking-ezgif.com-video-to-gif-converter.gif"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Farryllopez%2Fmeerkat%2Fcursor_tracking-ezgif.com-video-to-gif-converter.gif" alt="Meerkat Demo — real-time object sync between two Blender instances"&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
  &lt;a rel="noopener noreferrer" href="https://private-user-images.githubusercontent.com/160656561/559866664-1d96cfae-ddbe-475f-aaa3-78047050e43e.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzQ2NDM0MTQsIm5iZiI6MTc3NDY0MzExNCwicGF0aCI6Ii8xNjA2NTY1NjEvNTU5ODY2NjY0LTFkOTZjZmFlLWRkYmUtNDc1Zi1hYWEzLTc4MDQ3MDUwZTQzZS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjYwMzI3JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI2MDMyN1QyMDI1MTRaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1iN2I4MGVhYmY3MWM1NjNiNzk1OWM5YTU3MDM0YTUxNDVkMTlkODAyM2Q3M2JiOWUyZThmZWE5NTBlZTliZjg3JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.6-OMdA55veLKBWAKfIjR3zu_HjIn3nrvTjoleSHF270"&gt;&lt;img width="1200" height="300" alt="Lawrence Arryl Lopez (1)" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fprivate-user-images.githubusercontent.com%2F160656561%2F559866664-1d96cfae-ddbe-475f-aaa3-78047050e43e.png%3Fjwt%3DeyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzQ2NDM0MTQsIm5iZiI6MTc3NDY0MzExNCwicGF0aCI6Ii8xNjA2NTY1NjEvNTU5ODY2NjY0LTFkOTZjZmFlLWRkYmUtNDc1Zi1hYWEzLTc4MDQ3MDUwZTQzZS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjYwMzI3JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI2MDMyN1QyMDI1MTRaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1iN2I4MGVhYmY3MWM1NjNiNzk1OWM5YTU3MDM0YTUxNDVkMTlkODAyM2Q3M2JiOWUyZThmZWE5NTBlZTliZjg3JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.6-OMdA55veLKBWAKfIjR3zu_HjIn3nrvTjoleSHF270"&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;Alpha dropping soon — &lt;a href="https://github.com/arryllopez/meerkat/discussions" rel="noopener noreferrer"&gt;join the discussion&lt;/a&gt;
&lt;/h3&gt;
&lt;/div&gt;




&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Why Meerkat?&lt;/h2&gt;
&lt;/div&gt;

&lt;p&gt;Blender has no built-in real-time collaboration. If you're working with a team, you're juggling &lt;code&gt;.blend&lt;/code&gt; file versions over chat or cloud sync — hoping nobody overwrites each other's work.&lt;/p&gt;

&lt;p&gt;Meerkat fixes that.&lt;/p&gt;

&lt;p&gt;&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;br&gt;
&lt;thead&gt;
&lt;br&gt;
&lt;tr&gt;
&lt;br&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;br&gt;
&lt;th&gt;Meerkat&lt;/th&gt;
&lt;br&gt;
&lt;th&gt;Manual File Sync&lt;/th&gt;
&lt;br&gt;
&lt;th&gt;Proprietary Alternatives&lt;/th&gt;
&lt;br&gt;
&lt;/tr&gt;
&lt;br&gt;
&lt;/thead&gt;
&lt;br&gt;
&lt;tbody&gt;
&lt;br&gt;
&lt;tr&gt;
&lt;br&gt;
&lt;td&gt;Real-time transform sync&lt;/td&gt;
&lt;br&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;br&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;br&gt;
&lt;td&gt;Partial&lt;/td&gt;
&lt;br&gt;
&lt;/tr&gt;
&lt;br&gt;
&lt;tr&gt;
&lt;br&gt;
&lt;td&gt;Conflict resolution&lt;/td&gt;
&lt;br&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;br&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;br&gt;
&lt;td&gt;Partial&lt;/td&gt;
&lt;br&gt;
&lt;/tr&gt;
&lt;br&gt;
&lt;tr&gt;
&lt;br&gt;
&lt;td&gt;Presence indicators&lt;/td&gt;
&lt;br&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;br&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;br&gt;
&lt;td&gt;Some&lt;/td&gt;
&lt;br&gt;
&lt;/tr&gt;
&lt;br&gt;
&lt;tr&gt;
&lt;br&gt;
&lt;td&gt;Open-source&lt;/td&gt;
&lt;br&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;br&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;br&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;br&gt;
&lt;/tr&gt;
&lt;br&gt;
&lt;tr&gt;
&lt;br&gt;
&lt;td&gt;Works inside Blender&lt;/td&gt;
&lt;br&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;br&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;br&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;br&gt;
&lt;/tr&gt;
&lt;br&gt;
&lt;tr&gt;
&lt;br&gt;
&lt;td&gt;Cloud relay (optional)&lt;/td&gt;
&lt;br&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;br&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;br&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;br&gt;
&lt;/tr&gt;
&lt;br&gt;
&lt;tr&gt;
&lt;br&gt;
&lt;td&gt;Peer-to-peer option&lt;/td&gt;
&lt;br&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;br&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;br&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;br&gt;
&lt;/tr&gt;
&lt;br&gt;
&lt;/tbody&gt;
&lt;br&gt;
&lt;/table&gt;&lt;/div&gt;&lt;br&gt;
&lt;/p&gt;


&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Features&lt;/h2&gt;

&lt;/div&gt;


&lt;ul&gt;

&lt;li&gt;

&lt;strong&gt;Multiplayer Scene Editing&lt;/strong&gt; — Multiple artists editing the same scene simultaneously&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Live Transforms&lt;/strong&gt; — Object position, rotation, and scale synced in real-time&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Shared Sessions&lt;/strong&gt; — Host or join a session directly from the Blender UI panel&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Conflict Resolution&lt;/strong&gt; — Handles simultaneous edits gracefully without overwriting work&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Presence Indicators&lt;/strong&gt; —…&lt;/li&gt;

&lt;/ul&gt;
&lt;/div&gt;
&lt;br&gt;
  &lt;/div&gt;
&lt;br&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/arryllopez/meerkat" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;/div&gt;





</description>
      <category>productivity</category>
      <category>python</category>
      <category>rust</category>
    </item>
  </channel>
</rss>
