<?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>DEV Community: Yuki Furuta</title>
    <description>The latest articles on DEV Community by Yuki Furuta (@yuki-furuta).</description>
    <link>https://dev.to/yuki-furuta</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1310068%2F4ed68629-9a72-43b0-bf26-decc95801436.jpg</url>
      <title>DEV Community: Yuki Furuta</title>
      <link>https://dev.to/yuki-furuta</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/yuki-furuta"/>
    <language>en</language>
    <item>
      <title>I Tried TripoSplat to Generate 3D Gaussian Splatting from a Single Image — Then I Tried Animating a Plant</title>
      <dc:creator>Yuki Furuta</dc:creator>
      <pubDate>Sun, 02 Aug 2026 14:22:33 +0000</pubDate>
      <link>https://dev.to/yuki-furuta/i-tried-triposplat-to-generate-3d-gaussian-splatting-from-a-single-image-then-i-tried-animating-a-nc8</link>
      <guid>https://dev.to/yuki-furuta/i-tried-triposplat-to-generate-3d-gaussian-splatting-from-a-single-image-then-i-tried-animating-a-nc8</guid>
      <description>&lt;p&gt;3D generation technology is moving incredibly fast.&lt;/p&gt;

&lt;p&gt;A few years ago, if you wanted to create a 3D model from photos, the typical workflow was something like photogrammetry: take many images, match feature points, reconstruct geometry, generate a mesh, apply textures, and clean everything up manually.&lt;/p&gt;

&lt;p&gt;That workflow is still useful, of course. But recently, technologies like NeRF, 3D Gaussian Splatting, and single-image-to-3D generation models have made 3D content creation much more accessible.&lt;/p&gt;

&lt;p&gt;One of the most interesting technologies in this area is &lt;strong&gt;3D Gaussian Splatting&lt;/strong&gt;, often called &lt;strong&gt;3DGS&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;3DGS represents a 3D scene not as a polygon mesh, but as a large number of small 3D Gaussians. Each Gaussian has properties such as position, rotation, scale, color, and opacity. When rendered from a camera view, these Gaussians are projected onto the image plane as “splats.”&lt;/p&gt;

&lt;p&gt;In simple terms, instead of building a surface out of triangles, 3DGS recreates the appearance of a scene using many soft, semi-transparent particles placed in 3D space.&lt;/p&gt;

&lt;p&gt;This makes 3DGS very good at reproducing realistic visual appearance. It is not always as easy to edit as a mesh, but it can look surprisingly good and render very fast. That is why it has been getting attention in games, AR/VR, simulation, robotics, and computer vision.&lt;/p&gt;

&lt;p&gt;Recently, TripoAI released &lt;strong&gt;TripoSplat&lt;/strong&gt;, which can generate 3D Gaussian Splatting data from just a single image.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fr0dbf6omcyx9nvpc8i68.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fr0dbf6omcyx9nvpc8i68.png" alt=" " width="800" height="412"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Generating 3D from a single image is a very difficult task. The model cannot directly see the back side of the object, hidden parts, or the true depth. So it has to infer the missing geometry based on what it has learned from many examples.&lt;/p&gt;

&lt;p&gt;That means the result is not the same as a real 3D scan. Hidden areas can be wrong. Shapes can be distorted. But still, the fact that we can generate a usable 3DGS file from only one image is already very exciting.&lt;/p&gt;

&lt;p&gt;So I decided to try it.&lt;/p&gt;




&lt;h2&gt;
  
  
  First Test: A Coffee Bottle
&lt;/h2&gt;

&lt;p&gt;For the first test, I used a simple object: an aluminum coffee bottle.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F2e5gi1lcnpt4bdfj9z3g.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F2e5gi1lcnpt4bdfj9z3g.jpg" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The original image had a messy background, which could confuse the 3D generation model. So before using TripoSplat, I removed the background.&lt;/p&gt;

&lt;p&gt;For background removal, I used this Hugging Face Space:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://huggingface.co/spaces/not-lain/background-removal" rel="noopener noreferrer"&gt;not-lain/background-removal&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It is very easy to use. You upload an image, and it quickly removes the background.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F7kqf6mys1gltqdk0gpyo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F7kqf6mys1gltqdk0gpyo.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then I used the cleaned image as the input to TripoSplat and generated a 3DGS file.&lt;/p&gt;

&lt;p&gt;The output was a &lt;code&gt;.ply&lt;/code&gt; file. To inspect it, I used the SuperSplat editor:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://superspl.at/editor" rel="noopener noreferrer"&gt;SuperSplat Editor&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F42r4jc6h20l01pic1qa8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F42r4jc6h20l01pic1qa8.png" alt=" " width="800" height="746"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fa5y6a38na76c5sxm1mhe.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fa5y6a38na76c5sxm1mhe.png" alt=" " width="800" height="746"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The result was honestly quite good.&lt;/p&gt;

&lt;p&gt;Since the input was only one image, the bottle was not perfectly reconstructed. The original bottle is circular, but the generated shape became slightly oval. Also, the label and details on the back side, which were not visible in the input image, were not reconstructed correctly.&lt;/p&gt;

&lt;p&gt;But the front silhouette was clean, and the color of the label was reproduced quite well. Considering that the input was only a single image, I think the result is already useful for many purposes, depending on the use case.&lt;/p&gt;

&lt;p&gt;For example, it could be useful for quick visualization, AR/VR prototypes, simple product previews, or concept testing.&lt;/p&gt;




&lt;h2&gt;
  
  
  Next Challenge: A Plant
&lt;/h2&gt;

&lt;p&gt;After trying a simple object, I wanted to test something much harder.&lt;/p&gt;

&lt;p&gt;So I tried a plant.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fnd34cgdqgsioh6pd2nkr.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fnd34cgdqgsioh6pd2nkr.jpg" alt=" " width="800" height="1422"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Plants are much more difficult than bottles.&lt;/p&gt;

&lt;p&gt;Leaves overlap each other. Stems and branches are thin. Leaves are flat and delicate. The structure is complex, and many parts are hidden behind other parts.&lt;/p&gt;

&lt;p&gt;I used the same workflow as before:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Remove the background&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Input the cleaned image into TripoSplat&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Generate a 3DGS &lt;code&gt;.ply&lt;/code&gt; file&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;View it in SuperSplat&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Here is the generated result.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F37esqt39y7tmgnbo8fih.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F37esqt39y7tmgnbo8fih.png" alt=" " width="799" height="674"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F99zq5i5nuib8v1s6a1rt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F99zq5i5nuib8v1s6a1rt.png" alt=" " width="799" height="674"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And honestly, I thought:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;This is actually pretty good.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Of course, it is not perfect. Some hidden parts are strange. Some leaves and branches are not reconstructed correctly. But again, this was generated from only one image.&lt;/p&gt;

&lt;p&gt;For understanding the rough appearance of the plant, the result was good enough to be interesting.&lt;/p&gt;

&lt;p&gt;At this point, I started wondering:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Can we animate this?&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  What If We Could Move the Plant?
&lt;/h2&gt;

&lt;p&gt;Recently, there have been projects that animate 3DGS-based avatars. For example, a human character can be represented with Gaussian Splatting and then moved using a skeleton or a proxy mesh.&lt;/p&gt;

&lt;p&gt;So I started thinking about plants.&lt;/p&gt;

&lt;p&gt;Could we animate a plant generated as 3DGS?&lt;/p&gt;

&lt;p&gt;For a plant, the motion I wanted to reproduce was something like this:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Leaves moving in the wind&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Stems bending slightly&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Leaves drooping when the plant loses water&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Leaves recovering when hydration increases again&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If this kind of motion could be generated from a 3DGS plant, it could be useful not only for games or AR/VR, but also for agriculture, robotics, plant simulation, and computer vision.&lt;/p&gt;

&lt;p&gt;So I decided to build a small experimental tool for this.&lt;/p&gt;

&lt;h2&gt;
  
  
  I Built &lt;code&gt;plant-motion-gs&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;The code is available here:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/fromfactory/plant-motion-gs" rel="noopener noreferrer"&gt;https://github.com/fromfactory/plant-motion-gs&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The idea is simple:&lt;/p&gt;

&lt;p&gt;Given a plant 3DGS &lt;code&gt;.ply&lt;/code&gt; file, the program tries to detect rough plant regions such as stems, branches, and leaves. Then, in a web viewer, it animates the plant using wind and hydration parameters.&lt;/p&gt;

&lt;p&gt;However, there is an important problem.&lt;/p&gt;

&lt;p&gt;A normal 3DGS &lt;code&gt;.ply&lt;/code&gt; file does not contain semantic labels like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;this Gaussian is a leaf
this Gaussian is a stem
this Gaussian is a branch
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It only contains Gaussian data.&lt;/p&gt;

&lt;p&gt;So before animating the plant, we need to estimate which Gaussians belong to which plant organs.&lt;/p&gt;

&lt;p&gt;The pipeline roughly works like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;3DGS PLY
  ↓
Render the 3DGS from multiple viewpoints
  ↓
Use SAM2 to estimate 2D region proposals
  ↓
Project the 2D masks back to Gaussian indices
  ↓
Estimate stems, branches, and leaves in 3D
  ↓
Generate data for the web viewer
  ↓
Animate wind and hydration
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;SAM2 is used to generate region proposals from the rendered 2D images. Then those masks are mapped back into the 3D Gaussian space.&lt;/p&gt;

&lt;p&gt;This is still experimental. The current detection logic is somewhat tuned for the tomato plant structure used in this test. Other plants may not work as well, especially if they have very thin leaves, complex branching, pots, supports, or very different shapes.&lt;/p&gt;

&lt;p&gt;But for a first experiment, it was good enough to try.&lt;/p&gt;

&lt;h2&gt;
  
  
  Running the Pipeline
&lt;/h2&gt;

&lt;p&gt;First, place the generated plant &lt;code&gt;.ply&lt;/code&gt; file here:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;apps/viewer/public/assets/plant.ply
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then run the preprocessing pipeline:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;python tools/ai_ply/run_pipeline.py &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--ply&lt;/span&gt; apps/viewer/public/assets/plant.ply &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--asset-dir&lt;/span&gt; apps/viewer/public/assets &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--work-dir&lt;/span&gt; work/plant_ai &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--renderer&lt;/span&gt; auto &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--up&lt;/span&gt; y &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--image-size&lt;/span&gt; 1024 &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--views&lt;/span&gt; 12 &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--elevations&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nt"&gt;-10&lt;/span&gt;,15,35 &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--model-id&lt;/span&gt; facebook/sam2.1-hiera-base-plus &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--stem-segments&lt;/span&gt; 18 &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--proposal-mode&lt;/span&gt; fine &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--rotate-deg&lt;/span&gt; 180,0,0
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This script renders the plant from multiple viewpoints, runs SAM2-based segmentation, projects the masks back into 3D, and generates the files needed by the web viewer.&lt;/p&gt;

&lt;p&gt;After that, install the web app dependencies and start the viewer:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pnpm &lt;span class="nb"&gt;install
&lt;/span&gt;pnpm dev
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then the plant can be viewed in the browser.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fuenohxbkcc1c96nkycbf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fuenohxbkcc1c96nkycbf.png" alt=" " width="799" height="506"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F45f3wxxu105kwl6167se.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F45f3wxxu105kwl6167se.png" alt=" " width="799" height="506"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Animating Wind
&lt;/h2&gt;

&lt;p&gt;The web viewer has a &lt;code&gt;wind&lt;/code&gt; parameter.&lt;/p&gt;

&lt;p&gt;When I increase it, the leaves and branches start moving like they are being affected by wind.&lt;/p&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/aUfcQ_Ps5xg"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;The animation is not just moving the whole plant left and right.&lt;/p&gt;

&lt;p&gt;To make it feel more plant-like, the motion is different for stems, branches, and leaves.&lt;/p&gt;

&lt;p&gt;The main stem moves only slightly.&lt;br&gt;&lt;br&gt;
The lower part stays almost fixed.&lt;br&gt;&lt;br&gt;
Branches inherit some motion from the stem and bend a little.&lt;br&gt;&lt;br&gt;
Leaves inherit branch motion, and their tips and edges move more strongly.&lt;/p&gt;

&lt;p&gt;This is not a physically accurate simulation, but it looks much more natural than simply translating the entire 3DGS object.&lt;/p&gt;
&lt;h2&gt;
  
  
  Simulating Hydration and Wilting
&lt;/h2&gt;

&lt;p&gt;I also added a &lt;code&gt;hydration&lt;/code&gt; parameter.&lt;/p&gt;

&lt;p&gt;The idea is simple:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;High hydration means the plant looks healthy.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Low hydration means the plant is losing water and the leaves start to droop.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/1o0l2JkUGhE"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;One important detail is that the main stem does not simply move downward.&lt;/p&gt;

&lt;p&gt;When a plant wilts, the main stem usually does not just sink as one rigid object. Instead, the leaves, petioles, and branch tips tend to droop more visibly.&lt;/p&gt;

&lt;p&gt;So in this implementation, the main stem is mostly preserved, while branches and leaf tips receive more drooping motion.&lt;/p&gt;

&lt;p&gt;Again, this is still a simplified model. But by changing the &lt;code&gt;hydration&lt;/code&gt; value, I was able to create a visual effect where leaves droop and then recover.&lt;/p&gt;

&lt;p&gt;That was already pretty satisfying to see.&lt;/p&gt;

&lt;h2&gt;
  
  
  From One Image to an Animated 3DGS Plant
&lt;/h2&gt;

&lt;p&gt;The full workflow looked like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;One plant image
  ↓
Background removal
  ↓
TripoSplat 3DGS generation
  ↓
PLY inspection in SuperSplat
  ↓
Plant region estimation with plant-motion-gs
  ↓
Wind and hydration animation in a web app
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;There are many limitations.&lt;/p&gt;

&lt;p&gt;The 3DGS was generated from only one image, so hidden geometry is not accurate.&lt;/p&gt;

&lt;p&gt;The plant organ extraction is not perfect.&lt;/p&gt;

&lt;p&gt;The animation is not a real biological or physical simulation.&lt;/p&gt;

&lt;p&gt;The motion model is still simple.&lt;/p&gt;

&lt;p&gt;But even with those limitations, I think the result is very interesting.&lt;/p&gt;

&lt;p&gt;Plants are difficult objects for traditional 3D reconstruction. Leaves are thin, stems are narrow, and the overall structure is complex. Creating a clean editable mesh is not easy.&lt;/p&gt;

&lt;p&gt;3DGS, on the other hand, is very good at capturing visual appearance. It can represent complex, fuzzy, and detailed-looking structures without requiring a clean mesh.&lt;/p&gt;

&lt;p&gt;The challenge is that 3DGS is not naturally editable or animatable. It does not come with bones, surfaces, topology, or semantic parts.&lt;/p&gt;

&lt;p&gt;This experiment was an attempt to bridge that gap a little.&lt;/p&gt;

</description>
      <category>gaussiansplatting</category>
      <category>3dgs</category>
    </item>
    <item>
      <title>ERP in Manufacturing: The Operating System Behind the Business</title>
      <dc:creator>Yuki Furuta</dc:creator>
      <pubDate>Sat, 01 Aug 2026 14:16:33 +0000</pubDate>
      <link>https://dev.to/yuki-furuta/erp-in-manufacturing-the-operating-system-behind-the-business-3bgc</link>
      <guid>https://dev.to/yuki-furuta/erp-in-manufacturing-the-operating-system-behind-the-business-3bgc</guid>
      <description>&lt;p&gt;ERP is one of those acronyms that can make a simple idea sound intimidating.&lt;/p&gt;

&lt;p&gt;It stands for &lt;strong&gt;Enterprise Resource Planning&lt;/strong&gt;. In practical terms, ERP is the shared platform that connects a company’s data and business processes across sales, purchasing, inventory, production, costing, accounting, human resources, and more.&lt;/p&gt;

&lt;p&gt;For a manufacturer, its biggest value is not simply keeping all the data in one place. It is keeping the relationships between that data intact.&lt;/p&gt;

&lt;p&gt;The same item, customer order, bill of materials, production order, and lot number can follow a product from demand to delivery—and eventually into the financial statements.&lt;/p&gt;

&lt;p&gt;Without an integrated ERP, a typical process may be split across a sales system, spreadsheets, an inventory application, a production system, and accounting software. Employees then have to copy, reconcile, and correct the same information repeatedly.&lt;/p&gt;

&lt;p&gt;A simplified manufacturing flow looks like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Customer order
  ↓
Demand for finished goods
  ↓
Explode the bill of materials to calculate material requirements
  ↓
Purchase any materials that are missing
  ↓
Create a production order
  ↓
Issue materials to the shop floor
  ↓
Assemble, inspect, and record production results
  ↓
Receive the finished goods into inventory
  ↓
Ship the order and issue the invoice
  ↓
Post revenue, accounts receivable, inventory, and cost of goods sold
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In an ERP environment, these are not treated as unrelated tasks. A change in the customer order can affect material requirements and the production plan. Material prices and actual labor hours can change the finished product cost. Those results can then flow into inventory valuation and accounting.&lt;/p&gt;

&lt;p&gt;That is why manufacturing ERP is sometimes described as the &lt;strong&gt;operating system of the business&lt;/strong&gt;. It connects production, procurement, inventory, supply chain operations, costing, and finance through a common data model.&lt;/p&gt;

&lt;h2&gt;
  
  
  What information does a manufacturing ERP manage?
&lt;/h2&gt;

&lt;p&gt;A manufacturing ERP may cover a surprisingly wide range of information.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Area&lt;/th&gt;
&lt;th&gt;Typical information&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Sales&lt;/td&gt;
&lt;td&gt;Quotations, orders, promised dates, shipments, and invoices&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Product data&lt;/td&gt;
&lt;td&gt;Item masters, manufacturing BOMs, revisions, and approved substitutes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Production planning&lt;/td&gt;
&lt;td&gt;Forecasts, master production schedules, MRP, and capacity requirements&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Production execution&lt;/td&gt;
&lt;td&gt;Production orders, routes, operations, labor time, material consumption, and completed quantities&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Procurement&lt;/td&gt;
&lt;td&gt;Purchase requisitions, purchase orders, supplier confirmations, receipts, and supplier invoices&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Inventory&lt;/td&gt;
&lt;td&gt;Warehouses, locations, lots, serial numbers, work in progress, and stock movements&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Quality&lt;/td&gt;
&lt;td&gt;Incoming inspection, in-process inspection, final inspection, nonconformance, and rework&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Maintenance&lt;/td&gt;
&lt;td&gt;Equipment records, inspections, failures, maintenance work orders, and spare parts&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Costing&lt;/td&gt;
&lt;td&gt;Material, labor, overhead, standard cost, actual cost, and variances&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Accounting&lt;/td&gt;
&lt;td&gt;Revenue, cost of goods sold, inventory assets, accounts payable, and fixed assets&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;That is a lot—and it explains why ERP projects can feel overwhelming.&lt;/p&gt;

&lt;p&gt;The important point, however, is not that ERP stores each category separately. Its real value comes from preserving the connections between them.&lt;/p&gt;

&lt;p&gt;Suppose the cost of a product rises. A useful manufacturing ERP should help the company investigate questions such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Did the purchase price of a material increase?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Did defects cause additional material consumption?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Did setup or production time take longer than expected?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Did subcontracting, freight, or energy costs rise?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Did a lower production volume increase the fixed cost allocated to each unit?&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Accounting shows that the cost changed. Integrated operational data helps explain &lt;strong&gt;why&lt;/strong&gt; it changed.&lt;/p&gt;

&lt;h2&gt;
  
  
  ERP is not the same as MES, PLM, APS, or SCADA
&lt;/h2&gt;

&lt;p&gt;ERP does not directly control every machine or every activity inside a factory. Manufacturers usually combine it with specialized systems.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;System&lt;/th&gt;
&lt;th&gt;Main role&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;ERP&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Connects orders, procurement, inventory, production, costing, and finance at company level&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;MRP — Material Requirements Planning&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Calculates material requirements from demand, BOMs, inventory, and scheduled receipts&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;PLM/PDM — Product Lifecycle or Product Data Management&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Manages drawings, specifications, engineering BOMs, revisions, and engineering changes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;APS — Advanced Planning and Scheduling&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Creates detailed plans using capacity, labor, setup constraints, and due dates&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;MES/MOM — Manufacturing Execution or Operations Management&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Manages shop-floor instructions, production results, traceability, and quality execution&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;WMS — Warehouse Management System&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Manages warehouse locations, receiving, put-away, picking, packing, and internal movement&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;EAM/CMMS — Asset or Maintenance Management&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Manages equipment, inspections, failures, preventive maintenance, and spare parts&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;SCADA — Supervisory Control and Data Acquisition&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Monitors equipment and sensors and collects operational control data&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;One useful nuance is that &lt;strong&gt;MRP is often a function inside an ERP&lt;/strong&gt;, not necessarily a separate application. APS, MES, PLM, and WMS may also be included in an ERP suite, supplied as companion products, or provided by independent vendors.&lt;/p&gt;

&lt;p&gt;The boundary depends on the product and the architecture.&lt;/p&gt;

&lt;h2&gt;
  
  
  Start with the manufacturing model, not the brand name
&lt;/h2&gt;

&lt;p&gt;ERP should not be selected by brand recognition alone. In manufacturing, the fit with the production model matters enormously.&lt;/p&gt;

&lt;p&gt;Common models include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Engineer to Order (ETO):&lt;/strong&gt; Products are designed, purchased, and manufactured for a specific customer requirement.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Make to Order (MTO):&lt;/strong&gt; A standard or configurable product is manufactured after an order is received.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Make to Stock (MTS):&lt;/strong&gt; Products are manufactured in advance based on forecasts and inventory targets.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Repetitive manufacturing:&lt;/strong&gt; The same or similar products are produced continuously on a line.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Process manufacturing:&lt;/strong&gt; Products are made from formulas or recipes, as in food, chemicals, and pharmaceuticals.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Hybrid manufacturing:&lt;/strong&gt; Components may be made to stock, while final assembly happens after the customer order arrives.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Two ERP products can both claim to support manufacturing while behaving very differently in a real production scenario. One may be strong in repetitive production, another in project-based ETO, and another in asset maintenance or after-sales service.&lt;/p&gt;

&lt;h2&gt;
  
  
  Major manufacturing ERP products at a glance
&lt;/h2&gt;

&lt;p&gt;The table below is a starting point, not a ranking. Product fit depends on industry, geography, company size, existing systems, and implementation partners.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Provider and product&lt;/th&gt;
&lt;th&gt;Often considered by&lt;/th&gt;
&lt;th&gt;Notable angle to investigate&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://pages.community.sap.com/topics/s4hana-cloud-manufacturing" rel="noopener noreferrer"&gt;SAP S/4HANA Cloud&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Large and global organizations with multiple companies or plants&lt;/td&gt;
&lt;td&gt;Broad integration across planning, manufacturing, quality, inventory, costing, and finance, with public- and private-cloud options and a large surrounding ecosystem&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://www.oracle.com/scm/" rel="noopener noreferrer"&gt;Oracle Fusion Cloud ERP and Supply Chain &amp;amp; Manufacturing&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Mid-sized to large global companies pursuing a cloud-suite strategy&lt;/td&gt;
&lt;td&gt;SaaS integration across planning, manufacturing, inventory, logistics, maintenance, PLM, procurement, and finance&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://www.microsoft.com/en-us/dynamics-365/products/supply-chain-management" rel="noopener noreferrer"&gt;Microsoft Dynamics 365 Finance and Supply Chain Management&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Mid-sized and large organizations already invested in Microsoft technology&lt;/td&gt;
&lt;td&gt;Manufacturing and supply-chain functions combined with Microsoft 365, Power Platform, Azure, analytics, and an extensive partner ecosystem&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://www.infor.com/industries/industrial-manufacturing" rel="noopener noreferrer"&gt;Infor CloudSuite Industrial, Infor LN, and Infor M3&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Manufacturers with strong industry-specific or production-model requirements&lt;/td&gt;
&lt;td&gt;Multiple ERP families aimed at different manufacturing segments; selecting the right Infor product is an important part of the evaluation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://www.ifs.com/en/ifs-cloud" rel="noopener noreferrer"&gt;IFS Cloud&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Asset-, project-, and service-intensive manufacturers&lt;/td&gt;
&lt;td&gt;ERP, EAM, supply chain, and field service capabilities on one platform, which can be valuable when installation and service continue long after the initial sale&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://www.epicor.com/en/products/enterprise-resource-planning-erp/epicor-kinetic/" rel="noopener noreferrer"&gt;Epicor Kinetic&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Mid-market manufacturers, including job shops and discrete production environments&lt;/td&gt;
&lt;td&gt;A manufacturing-focused cloud ERP with production, material, labor, costing, and shop-floor capabilities&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://www.qad.com/solutions/adaptive-erp/manufacturing" rel="noopener noreferrer"&gt;QAD Adaptive ERP&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Manufacturing-centric global and mid-sized companies&lt;/td&gt;
&lt;td&gt;A strong manufacturing and supply-chain focus, including industry use cases where traceability, quality, and international operations matter&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://www.odoo.com/app/manufacturing" rel="noopener noreferrer"&gt;Odoo&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Small and mid-sized companies that want modular or phased adoption&lt;/td&gt;
&lt;td&gt;Integrated apps for manufacturing, inventory, purchasing, quality, maintenance, and more, with cloud and self-hosted options and both Community and Enterprise editions&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://docs.frappe.io/erpnext/manufacturing" rel="noopener noreferrer"&gt;ERPNext&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Small companies and teams exploring open-source deployment or custom development&lt;/td&gt;
&lt;td&gt;BOMs, production planning, work orders, job cards, inventory, purchasing, quality, costing, and accounting in an open-source platform&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;A product demonstration is useful, but a scripted end-to-end scenario is much more revealing than a collection of attractive screens.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where AI fits into ERP
&lt;/h2&gt;

&lt;p&gt;AI in ERP is not entirely new. Machine learning has been used for years in areas such as demand forecasting, anomaly detection, lead-time prediction, and predictive maintenance.&lt;/p&gt;

&lt;p&gt;What has changed is the interface and the scope of possible action.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Technology&lt;/th&gt;
&lt;th&gt;Role in ERP&lt;/th&gt;
&lt;th&gt;Manufacturing example&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Traditional AI and machine learning&lt;/td&gt;
&lt;td&gt;Numerical prediction, classification, and anomaly detection&lt;/td&gt;
&lt;td&gt;Demand forecasting, late-delivery prediction, defect detection, and failure prediction&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Generative AI and large language models&lt;/td&gt;
&lt;td&gt;Understanding, summarization, generation, and conversation&lt;/td&gt;
&lt;td&gt;Explaining a work instruction, drafting a report, or searching ERP data in natural language&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Retrieval-augmented generation (RAG)&lt;/td&gt;
&lt;td&gt;Grounds an answer in company documents and business data&lt;/td&gt;
&lt;td&gt;Referring to drawings, procedures, past defects, maintenance records, or supplier documents&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AI agents&lt;/td&gt;
&lt;td&gt;Reasons about a goal and coordinates actions across applications or ERP functions&lt;/td&gt;
&lt;td&gt;Preparing a purchase proposal, suggesting a planning change, creating an inventory transfer, or notifying an approver&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Physical AI&lt;/td&gt;
&lt;td&gt;Connects business plans with robots and autonomous equipment&lt;/td&gt;
&lt;td&gt;Material movement, warehouse tasks, component supply, and autonomous handling&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Physical AI usually does not mean that the ERP directly controls a robot. More often, ERP provides business context—demand, priority, inventory, and work orders—while MES, WMS, automation platforms, or robotics systems handle real-time execution.&lt;/p&gt;

&lt;h3&gt;
  
  
  From a system of record to a system that can act
&lt;/h3&gt;

&lt;p&gt;ERP has traditionally been a &lt;strong&gt;system of record&lt;/strong&gt;: the trusted place where transactions and results are stored.&lt;/p&gt;

&lt;p&gt;The next step is being described in several ways—&lt;em&gt;system of action&lt;/em&gt;, &lt;em&gt;agentic applications&lt;/em&gt;, &lt;em&gt;autonomous enterprise&lt;/em&gt;, and &lt;em&gt;system of outcomes&lt;/em&gt;. The terminology differs, but the direction is similar: AI is moving closer to the processes where work is planned, reviewed, and executed.&lt;/p&gt;

&lt;p&gt;In May 2026, SAP introduced its &lt;a href="https://news.sap.com/2026/05/sap-sapphire-sap-unveils-autonomous-enterprise/" rel="noopener noreferrer"&gt;Autonomous Enterprise&lt;/a&gt; vision, connecting AI agents with business processes, data, and governance. In March 2026, Oracle announced &lt;a href="https://www.oracle.com/news/announcement/oracle-introduces-fusion-agentic-applications-2026-03-24/" rel="noopener noreferrer"&gt;Fusion Agentic Applications&lt;/a&gt;, which use coordinated teams of specialized agents to reason and execute within Fusion application workflows.&lt;/p&gt;

&lt;p&gt;These announcements do not mean that companies should hand every decision to AI. In manufacturing, an incorrect purchase order, production-plan change, inventory movement, or maintenance instruction can have financial, operational, and safety consequences.&lt;/p&gt;

&lt;p&gt;The important questions are therefore not only, “What can the AI generate?” but also:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;What data can it access?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;What transactions can it create or update?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;What evidence does it show?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Which actions require human approval?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;How are permissions, exceptions, and audit trails handled?&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  A practical ERP evaluation checklist
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Can it reproduce the way your company actually manufactures?
&lt;/h3&gt;

&lt;p&gt;Test real examples from your business: high-mix low-volume work, mass production, process manufacturing, custom engineering, subcontracting, or a hybrid model.&lt;/p&gt;

&lt;p&gt;Do not rely only on a generic demonstration database.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Does the process connect from planning to accounting?
&lt;/h3&gt;

&lt;p&gt;Test one complete scenario:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Sales order
  → MRP
  → Purchasing
  → Production
  → Quality
  → Inventory
  → Shipment
  → Costing
  → Accounting
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A smooth user interface is useful, but it is not enough. The data and business logic must remain consistent across the whole flow.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Can it integrate with shop-floor and engineering systems?
&lt;/h3&gt;

&lt;p&gt;Check how it connects with MES, PLM, machines, handheld terminals, scales, label printers, EDI platforms, logistics providers, and existing databases.&lt;/p&gt;

&lt;p&gt;Also clarify which system owns each important data object. For example, is the engineering BOM mastered in PLM and transferred to ERP, or maintained directly in ERP?&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Can it support international operations?
&lt;/h3&gt;

&lt;p&gt;Review local tax rules, accounting standards, languages, currencies, legal entities, import and export processes, transfer pricing, approval policies, and regional data requirements.&lt;/p&gt;

&lt;p&gt;A product may be global in theory but still require substantial localization or partner work in a specific country.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. What can the AI see, explain, and execute?
&lt;/h3&gt;

&lt;p&gt;“AI-powered” is too broad to be a useful comparison by itself. Ask:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Which ERP data can the AI access?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Can it search documents, email, drawings, and external systems?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Does it cite the source of an answer?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Can it create or update ERP transactions?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Can users review proposed changes before execution?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Can human approval be required by amount, risk, site, or transaction type?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Is every action recorded in an audit log?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Is customer data used to train a model?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In which region is the data stored and processed?&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  6. What is the total cost—not just the license price?
&lt;/h3&gt;

&lt;p&gt;ERP cost can include subscriptions, consulting, data migration, customization, integration, training, testing, cloud infrastructure, support, upgrades, security, and AI usage.&lt;/p&gt;

&lt;p&gt;Open-source ERP can reduce license costs, but implementation, hosting, backup, security, localization, compliance, and version upgrades still require money and technical skill.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final thoughts
&lt;/h2&gt;

&lt;p&gt;Manufacturing ERP is not just an accounting system.&lt;/p&gt;

&lt;p&gt;It translates customer demand into materials, equipment, people, operations, inventory, and cost. It then brings the actual production results back into the financial and management view of the business.&lt;/p&gt;

&lt;p&gt;There is no universally “best” ERP. SAP, Oracle, and Microsoft offer broad enterprise platforms. Infor, IFS, Epicor, and QAD emphasize different manufacturing, asset, project, service, and industry requirements. Odoo and ERPNext can be attractive for phased adoption, learning, experimentation, and open-source development.&lt;/p&gt;

&lt;p&gt;The best evaluation starts with the company’s real manufacturing model and follows one complete business scenario from order to accounting.&lt;/p&gt;

&lt;p&gt;AI agents may make ERP easier to use and more proactive, but they do not remove the need for clean master data, well-designed processes, clear permissions, and human accountability. In fact, the more an ERP can act, the more important those foundations become.&lt;/p&gt;

&lt;p&gt;I plan to keep exploring this area as ERP becomes more agentic and manufacturing systems become more connected.&lt;/p&gt;

</description>
      <category>erp</category>
      <category>factoryautomation</category>
      <category>manufacturing</category>
    </item>
    <item>
      <title>Turning Real Objects into CAD Models</title>
      <dc:creator>Yuki Furuta</dc:creator>
      <pubDate>Wed, 17 Jun 2026 14:57:34 +0000</pubDate>
      <link>https://dev.to/yuki-furuta/turning-real-objects-into-cad-models-5h51</link>
      <guid>https://dev.to/yuki-furuta/turning-real-objects-into-cad-models-5h51</guid>
      <description>&lt;p&gt;Testing photogrammetry and AI-based 3D generation to bring physical objects into CAD workflows.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqpgl3g1wqiupp8zji8pd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqpgl3g1wqiupp8zji8pd.png" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When I design something in CAD, even a simple bracket, it is always easier if I already have a 3D model of the machine, device, or equipment around it.&lt;/p&gt;

&lt;p&gt;With a 3D model, I can quickly check how the new part looks, whether it interferes with anything, and how it fits into the overall system. It also makes documentation much easier. A screenshot from CAD explains the idea much better than a long paragraph.&lt;/p&gt;

&lt;p&gt;But in the real world, we often do not have clean CAD data for existing machines or equipment.&lt;/p&gt;

&lt;p&gt;Of course, if the manufacturer provides the CAD model, that is ideal. But if not, we need to create the model ourselves. And honestly, building a 3D CAD model from scratch is painful. Unless it is absolutely necessary, it is the kind of task I tend to postpone.&lt;/p&gt;

&lt;p&gt;Recently, though, 3D reconstruction tools have become much more practical. We can now reconstruct objects from videos, multiple photos, or even a single image, convert them into meshes, and bring them into CAD.&lt;/p&gt;

&lt;p&gt;So I wanted to test a practical workflow:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Can I take a real object, reconstruct it as a 3D mesh, and use it inside CAD for layout checks and interference checks?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;This time, I used a small network camera as the test object.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsakcyofcggytntrnmlnz.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsakcyofcggytntrnmlnz.jpg" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It is a common industrial-style network camera: a white metal housing, a camera unit on one side, and a rear box where cables such as LAN are connected. I chose it because it is small and easy to test quickly.&lt;/p&gt;




&lt;h2&gt;
  
  
  Photogrammetry with Meshroom
&lt;/h2&gt;

&lt;p&gt;There are many possible methods, but I started with a classic and very well-known tool: &lt;strong&gt;Meshroom&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Meshroom is an open-source photogrammetry tool based on AliceVision. In simple terms, photogrammetry tries to reconstruct a 3D model from multiple 2D images.&lt;/p&gt;

&lt;p&gt;The rough idea is:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Detect feature points in each image&lt;/li&gt;
&lt;li&gt;Match the same points across multiple images&lt;/li&gt;
&lt;li&gt;Estimate the camera positions&lt;/li&gt;
&lt;li&gt;Create a sparse point cloud&lt;/li&gt;
&lt;li&gt;Create a dense point cloud&lt;/li&gt;
&lt;li&gt;Generate a mesh&lt;/li&gt;
&lt;li&gt;Apply texture&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;So instead of modeling the object manually, we let the software estimate the 3D shape from many photos taken from different angles.&lt;/p&gt;

&lt;p&gt;For this test, I captured around 30 seconds of video with a smartphone. Then I extracted frames using FFmpeg:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ffmpeg &lt;span class="nt"&gt;-i&lt;/span&gt; input.mp4 &lt;span class="se"&gt;\ &lt;/span&gt;
&lt;span class="nt"&gt;-vf&lt;/span&gt; &lt;span class="s2"&gt;"fps=2"&lt;/span&gt; &lt;span class="se"&gt;\ &lt;/span&gt;
frames/frame_%05d.jpg
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This gave me around 60 images.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffkryxha2avj3f11d3wgi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffkryxha2avj3f11d3wgi.png" width="742" height="497"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In a proper photogrammetry workflow, it would be better to remove blurry images before processing. Even better, instead of recording video, I should take high-quality still images one by one from many angles.&lt;/p&gt;

&lt;p&gt;But for this first test, I wanted to see how far I could get with a quick video capture.&lt;/p&gt;

&lt;p&gt;Then I opened Meshroom, selected the &lt;strong&gt;Photogrammetry&lt;/strong&gt; pipeline, and loaded the images.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdqmm47u4ro0b63zlwyiz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdqmm47u4ro0b63zlwyiz.png" width="800" height="449"&gt;&lt;/a&gt;&lt;br&gt;
After loading the images, they appeared in the Image Gallery. The Graph Editor also automatically generated the photogrammetry pipeline.&lt;/p&gt;

&lt;p&gt;One small but important note: if nothing appears in the Graph Editor, the pipeline is not ready. In that case, the reconstruction will not run correctly.&lt;/p&gt;

&lt;p&gt;After that, I clicked the Start button at the top, and Meshroom started the full 3D reconstruction process automatically.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fetdfx5ozl5k3tso0td4w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fetdfx5ozl5k3tso0td4w.png" width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When the process finished, the result appeared in the 3D Viewer on the right side. I could see both the reconstructed object and the estimated camera positions.&lt;/p&gt;

&lt;p&gt;Then I exported the result as an OBJ file and opened it in Blender to check the shape.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmsny1vnmb0onhi051b2o.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmsny1vnmb0onhi051b2o.png" width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The result was usable as a rough mesh, but honestly, the camera shape was not very good. There were unwanted parts such as the desk, and the main object surface was rough and noisy.&lt;/p&gt;

&lt;p&gt;Of course, I could delete the unnecessary parts in Blender. But as a model of the camera itself, the quality was not quite enough.&lt;/p&gt;


&lt;h2&gt;
  
  
  Photogrammetry with RealityScan
&lt;/h2&gt;

&lt;p&gt;Next, I tried &lt;strong&gt;RealityScan&lt;/strong&gt; from Epic Games.&lt;/p&gt;

&lt;p&gt;Many people may know the smartphone app version, but there is also a desktop/Linux workflow, so I tested that as well.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftvif91ed1a0ynh2a0yax.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftvif91ed1a0ynh2a0yax.png" width="800" height="458"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The overall workflow is similar to Meshroom: load multiple images, align them, and generate a 3D model.&lt;/p&gt;

&lt;p&gt;However, the operation flow is slightly different.&lt;br&gt;
In Meshroom, pressing Start runs the whole pipeline automatically, from feature extraction to meshing.&lt;br&gt;
In RealityScan, I first ran &lt;strong&gt;Align Image&lt;/strong&gt;s. This step performs feature extraction, image matching, camera estimation, and point cloud generation.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjojah0rmewpz8webtsgr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjojah0rmewpz8webtsgr.png" width="800" height="458"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwrk6tqodhmptxp9v1o5u.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwrk6tqodhmptxp9v1o5u.png" width="800" height="458"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After confirming that the alignment looked reasonable, I ran Calculate Model to generate the 3D mesh.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvcynskwvzdqwxagzhstm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvcynskwvzdqwxagzhstm.png" width="800" height="458"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The result was also not as clean as I hoped.&lt;/p&gt;

&lt;p&gt;Again, this does not mean RealityScan is weak. RealityScan is a very powerful photogrammetry tool. The issue was probably my input data.&lt;/p&gt;

&lt;p&gt;I think the main problems were:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;I extracted still images from a handheld video, so some frames were blurry or motion-blurred.&lt;/li&gt;
&lt;li&gt;The target object was mostly white, so it did not have many easy-to-detect visual features.&lt;/li&gt;
&lt;li&gt;I did not capture enough angles carefully. I just moved around the object quickly with a phone.&lt;/li&gt;
&lt;li&gt;The desk and background were also included, which made the reconstruction harder.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If I improved these points, I think both Meshroom and RealityScan could create much better models.&lt;/p&gt;

&lt;p&gt;Still, for this kind of small, white, smooth industrial object, photogrammetry can easily create a bumpy mesh. Even if the overall shape is reconstructed, the surface may not be clean enough for CAD-style visualization.&lt;/p&gt;

&lt;p&gt;So I decided to try another approach: AI-based single-image 3D generation.&lt;/p&gt;


&lt;h2&gt;
  
  
  Hunyuan3D-2.1
&lt;/h2&gt;

&lt;p&gt;The first AI-based tool I tested was Tencent Hunyuan3D-2.1.&lt;/p&gt;

&lt;p&gt;Hunyuan3D-2.1 can generate a 3D asset from an image. It is probably more commonly used for games, digital content, and 3D assets rather than mechanical CAD.&lt;/p&gt;

&lt;p&gt;I will skip the full setup here because the GitHub repository already explains it, but the model is quite large and requires a reasonably powerful machine.&lt;/p&gt;

&lt;p&gt;My environment was:&lt;br&gt;
OS: Ubuntu 22.04&lt;br&gt;
RAM: 64 GB&lt;br&gt;
GPU: NVIDIA RTX 4090&lt;/p&gt;

&lt;p&gt;The easiest way for me was to launch the official Gradio app:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;python3 gradio_app.py &lt;span class="nt"&gt;--model_path&lt;/span&gt; tencent/Hunyuan3D-2.1 &lt;span class="nt"&gt;--subfolder&lt;/span&gt; hunyuan3d-dit-v
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj1nnnb2cunb9qd2uvfbl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj1nnnb2cunb9qd2uvfbl.png" width="800" height="415"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then I uploaded a single image of the camera.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F07th74qhj2xu02qcty1p.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F07th74qhj2xu02qcty1p.jpg" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The result was generated quickly on my local machine.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz1mlcvon0lc6ry0lwyzu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz1mlcvon0lc6ry0lwyzu.png" width="800" height="524"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpenudhw6fr7zslgo7c3g.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpenudhw6fr7zslgo7c3g.png" width="659" height="397"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F475uxjszzvtluq2jhhrw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F475uxjszzvtluq2jhhrw.png" width="659" height="397"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Compared with the photogrammetry results, the surface was much smoother. The overall shape was also close to what I expected.&lt;/p&gt;

&lt;p&gt;This was impressive because it used only one image.&lt;/p&gt;

&lt;p&gt;The tool can export several model formats. For bringing the model into CAD, STL is usually a convenient choice, although OBJ can also be useful depending on the workflow.&lt;/p&gt;

&lt;p&gt;Of course, this is not a dimensionally accurate engineering model. It is not a replacement for proper measurement or reverse engineering.&lt;/p&gt;

&lt;p&gt;But for visual checks, rough layout studies, and early-stage design discussion, it is already quite useful.&lt;/p&gt;




&lt;h2&gt;
  
  
  TripoSG
&lt;/h2&gt;

&lt;p&gt;Next, I tested &lt;a href="https://github.com/VAST-AI-Research/TripoSG" rel="noopener noreferrer"&gt;TripoSG&lt;/a&gt;, another image-to-3D model.&lt;/p&gt;

&lt;p&gt;I used the same single input image as before.&lt;/p&gt;

&lt;p&gt;After setting up the environment following the official GitHub repository, I ran the inference script and generated a 3D mesh.&lt;/p&gt;

&lt;p&gt;Before importing it into CAD, I opened the output in Blender.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdez9w0a49alm6dj0z2pk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdez9w0a49alm6dj0z2pk.png" width="800" height="478"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsggm1wwlgfwoxegtrqa8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsggm1wwlgfwoxegtrqa8.png" width="800" height="478"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This result was excellent.&lt;/p&gt;

&lt;p&gt;The overall shape looked better than the previous results in this test. The surface was smooth, the camera body was recognizable, and unwanted parts such as the desk were automatically removed.&lt;/p&gt;

&lt;p&gt;For this specific object and this specific input image, TripoSG gave me the best-looking model.&lt;/p&gt;

&lt;p&gt;So I decided to use the TripoSG output for the CAD test.&lt;/p&gt;

&lt;p&gt;In Blender, I exported the generated OBJ file as an STL file.&lt;/p&gt;




&lt;h2&gt;
  
  
  Importing the mesh into CAD
&lt;/h2&gt;

&lt;p&gt;Finally, I opened the STL file in Autodesk Fusion.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fehudie7zdubvdeqrjic6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fehudie7zdubvdeqrjic6.png" width="800" height="583"&gt;&lt;/a&gt;&lt;br&gt;
The mesh loaded without any major issue.&lt;/p&gt;

&lt;p&gt;There are some important limitations.&lt;br&gt;
First, the scale needs to be corrected. AI-generated models and photogrammetry models are often not created at the exact real-world size unless we add scale references or manually adjust them.&lt;br&gt;
Second, this is still a mesh. It is not the same as a clean parametric CAD model. I cannot simply grab a surface and extend it like I would with a normal CAD body.&lt;/p&gt;

&lt;p&gt;But for my purpose, it was useful.&lt;/p&gt;

&lt;p&gt;I could place the camera model near other equipment, check the approximate appearance, and think about the installation layout.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr7n6dad581nhlxzbdmvc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr7n6dad581nhlxzbdmvc.png" width="800" height="588"&gt;&lt;/a&gt;&lt;br&gt;
For interference checks, visual confirmation, and documentation, this workflow feels very promising.&lt;/p&gt;

&lt;h2&gt;
  
  
  Practical Takeaways
&lt;/h2&gt;

&lt;p&gt;This test was not about creating a perfect engineering CAD model.&lt;/p&gt;

&lt;p&gt;The real question was more practical:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;How far can we go if we just want to bring a real-world object into CAD quickly enough for design support?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;For that purpose, this workflow is already useful.&lt;/p&gt;

&lt;p&gt;The most important point is to separate two different goals.&lt;/p&gt;

&lt;p&gt;If you need accurate dimensions, clean surfaces, and editable CAD features, neither quick photogrammetry nor single-image AI generation is enough by itself. You still need proper measurement, reverse engineering, or manual CAD modeling.&lt;/p&gt;

&lt;p&gt;But if you need a model for visual checks, layout studies, interference checks, installation planning, or documentation, these tools can save a lot of time.&lt;/p&gt;

&lt;p&gt;From this test, I would use the tools differently depending on the purpose.&lt;/p&gt;

&lt;p&gt;Photogrammetry tools like Meshroom and RealityScan are powerful when you can prepare good input images. They are especially useful when you can take many sharp photos from many angles under good lighting. However, the result depends heavily on image quality. Smooth, white, reflective, or low-texture objects can be difficult. Blurry frames from video can also make the result much worse.&lt;/p&gt;

&lt;p&gt;AI-based tools like Hunyuan3D-2.1 and TripoSG are different. They may not reproduce the exact dimensions, but they can create a clean and recognizable mesh very quickly from just one image. For early-stage CAD visualization, this can be more useful than a noisy photogrammetry mesh.&lt;/p&gt;

&lt;p&gt;So my current practical rule is:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Use photogrammetry when geometry accuracy from multiple real images matters. Use AI-based image-to-3D when speed and visual quality matter more.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;For this specific test, TripoSG gave the most practical result. The model was clean, the object shape was easy to recognize, and unnecessary background parts were mostly removed automatically. After exporting it through Blender as an STL file, I could import it into Fusion and use it as a reference object.&lt;/p&gt;

&lt;p&gt;This does not replace real CAD data.&lt;/p&gt;

&lt;p&gt;But it creates a useful middle ground between “I have no model at all” and “I need to manually model everything from scratch.”&lt;/p&gt;

&lt;p&gt;For industrial automation, robotics, equipment layout, and field engineering work, that middle ground is valuable. Many times, we do not need a perfect model at the beginning. We just need something close enough to support discussion, check space, explain an idea, or avoid obvious design mistakes.&lt;/p&gt;

&lt;p&gt;In future tests, I want to compare more workflows, including better photogrammetry capture, Gaussian Splatting, multi-image AI reconstruction, and hybrid pipelines.&lt;/p&gt;

&lt;p&gt;The bigger direction is clear:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The gap between real-world objects and CAD workflows is getting smaller.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;And that could make practical engineering design much faster.&lt;/p&gt;

</description>
      <category>3d</category>
      <category>ai</category>
      <category>cad</category>
    </item>
    <item>
      <title>Same Prompt, Very Different UI, Comparing Codex With and Without `ui-ux-pro-max-skill`</title>
      <dc:creator>Yuki Furuta</dc:creator>
      <pubDate>Sat, 11 Apr 2026 05:29:07 +0000</pubDate>
      <link>https://dev.to/yuki-furuta/same-prompt-very-different-ui-comparing-codex-with-and-without-ui-ux-pro-max-skill-37o0</link>
      <guid>https://dev.to/yuki-furuta/same-prompt-very-different-ui-comparing-codex-with-and-without-ui-ux-pro-max-skill-37o0</guid>
      <description>&lt;h1&gt;
  
  
  Same Prompt, Very Different UI: Comparing Codex With and Without &lt;code&gt;ui-ux-pro-max-skill&lt;/code&gt; on "Virtual Factory"
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh8tc3kuhdh0mwqveri53.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh8tc3kuhdh0mwqveri53.png" alt=" " width="799" height="446"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Figure 1. The comparison setup. Standard Codex on the left, Codex with &lt;code&gt;ui-ux-pro-max-skill&lt;/code&gt; on the right, the shared prompt in the center, and the comparison axes summarized along the bottom.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;When you ask AI to build a UI, the difference does not come only from the model itself. The output also changes a lot depending on what prior knowledge you give it and what design criteria you make it operate with.&lt;/p&gt;

&lt;p&gt;For this experiment, I gave Codex the exact same prompt and asked it to build two versions of a browser app called &lt;code&gt;Virtual Factory&lt;/code&gt;, a factory 3DGS dashboard. One version was generated by standard Codex. The other was generated by Codex with &lt;code&gt;ui-ux-pro-max-skill&lt;/code&gt; enabled.&lt;/p&gt;

&lt;p&gt;According to its README, &lt;code&gt;ui-ux-pro-max-skill&lt;/code&gt; can be installed for Codex CLI with &lt;code&gt;uipro init --ai codex&lt;/code&gt;, and it is designed to auto-trigger on UI/UX-related requests. It is not just a styling pack. It includes a Design System Generator, stack-specific guidance, persistent design rules via &lt;code&gt;--persist&lt;/code&gt;, and support for multiple frontend stacks including React and Next.js.&lt;/p&gt;

&lt;p&gt;Here is the prompt I used:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Create a browser-based web app called "Virtual Factory".&lt;/p&gt;

&lt;p&gt;It’s a SaaS-style dashboard for factory 3DGS:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;upload scans&lt;/li&gt;
&lt;li&gt;view them&lt;/li&gt;
&lt;li&gt;add notes&lt;/li&gt;
&lt;li&gt;link documents&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Use a modern frontend stack (prefer React / Next.js).&lt;br&gt;
Mock complex parts if needed.&lt;/p&gt;

&lt;p&gt;Important:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;it should run locally in a development server&lt;/li&gt;
&lt;li&gt;I should be able to open it in a browser and see a working UI&lt;/li&gt;
&lt;li&gt;prioritize frontend demo quality over production completeness&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Deliver a runnable project with setup instructions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;&lt;br&gt;
This comparison is based on the attached source code and screenshots. In &lt;code&gt;virtual-factory-2&lt;/code&gt;, &lt;code&gt;app/page.js&lt;/code&gt; references &lt;code&gt;FactoryDashboard&lt;/code&gt;, but that component itself was not included in the attached source bundle I reviewed. So the code-level comparison below is limited to what could actually be verified from the files provided.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  The Main Takeaway
&lt;/h2&gt;

&lt;p&gt;The most interesting difference was not whether one version looked flashier.&lt;/p&gt;

&lt;p&gt;Standard Codex was very good at producing a &lt;strong&gt;strong, immediately demoable UI&lt;/strong&gt; with functional flow and visual punch in a short distance. The version generated with &lt;code&gt;ui-ux-pro-max-skill&lt;/code&gt;, on the other hand, looked more like it was trying to build a &lt;strong&gt;product with information architecture&lt;/strong&gt;, not just assemble attractive components.&lt;/p&gt;

&lt;p&gt;In other words, the real difference showed up less in decoration and more in design thinking.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;code&gt;virtual-factory-1&lt;/code&gt;: A Strong Demo You Can Show Right Away
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2For39obp6snrf7e067xgk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2For39obp6snrf7e067xgk.png" alt=" " width="800" height="429"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Figure 1. Full-screen capture of &lt;code&gt;virtual-factory-1&lt;/code&gt;. The hero area, metrics, viewer, scan list, notes, and documents all connect within a single screen.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;virtual-factory-1&lt;/code&gt; makes a strong first impression. It leans hard into the kind of UI that feels great as a SaaS demo: dark tones, glassy panels, glowing accents, a hero section, and metric cards.&lt;/p&gt;

&lt;p&gt;But it is not just visual polish. The upload flow, scan switching, search, note creation, document linking, viewer mode changes, and layer toggles are all wired together in one screen. Even the complex 3DGS part is handled smartly: instead of trying to solve everything for real, it uses a canvas-based mock viewer. For a prompt that explicitly said “mock complex parts if needed,” that is a very effective response.&lt;/p&gt;

&lt;p&gt;The source structure is easy to read too. The center of gravity is &lt;code&gt;src/App.jsx&lt;/code&gt;, where state, handlers, the viewer, and note/document interactions are mostly gathered into a single file. Architecturally that is fairly monolithic, but it also explains why the result feels so complete so quickly: it is optimized to ship a working demo fast.&lt;/p&gt;

&lt;p&gt;If the goal is a sales demo, an internal proof of concept, or something you can open in a browser and show immediately, &lt;code&gt;virtual-factory-1&lt;/code&gt; is genuinely strong. Its value is obvious at first glance.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;code&gt;virtual-factory-2&lt;/code&gt;: Closer to a Product With Information Architecture
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F04z3bxo6faxfwtotm3d5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F04z3bxo6faxfwtotm3d5.png" alt=" " width="799" height="441"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Figure 2. Full-screen capture of &lt;code&gt;virtual-factory-2&lt;/code&gt;. For the clearest comparison, use a screen that shows the left sidebar, center viewer, and right-side rail together.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;virtual-factory-2&lt;/code&gt; points in a noticeably different direction, even from the files that were visible. Its entry structure uses the Next.js App Router, with &lt;code&gt;app/layout.js&lt;/code&gt; and &lt;code&gt;app/page.js&lt;/code&gt;. In the CSS, you can already see vocabulary that suggests a more structured screen model: &lt;code&gt;sidebar&lt;/code&gt;, &lt;code&gt;hero-grid&lt;/code&gt;, &lt;code&gt;workspace-grid&lt;/code&gt;, &lt;code&gt;viewer-stage&lt;/code&gt;, &lt;code&gt;viewer-hud&lt;/code&gt;, &lt;code&gt;rail-card&lt;/code&gt;, and &lt;code&gt;rail-item&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;The visual tone is different too. Instead of a dark, “showy SaaS” feel, this version leans toward a softer gray operational-console aesthetic—something closer to a factory, blueprint, or monitoring tool. The background grid, HUD-like layers, and three-column structure with a sidebar and right rail make it feel calmer and more like a system people would use every day.&lt;/p&gt;

&lt;p&gt;That is the important point. The difference is not simply whether it is more or less flashy. &lt;code&gt;virtual-factory-2&lt;/code&gt; appears to decide the placement of navigation, viewing, monitoring, and supporting information first. It feels less like “make one great-looking screen” and more like “design how this product should be used.”&lt;/p&gt;

&lt;p&gt;That lines up closely with the philosophy of &lt;code&gt;ui-ux-pro-max-skill&lt;/code&gt;. Its SKILL.md explicitly frames the skill around things like dashboard design, navigation structure, information hierarchy, brand expression, and UX quality control. In other words, it is trying to get the AI to think beyond “place nice-looking components” and toward “organize the product as a system.”&lt;/p&gt;

&lt;h2&gt;
  
  
  Side by Side, They Optimize for Different Things
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Lens&lt;/th&gt;
&lt;th&gt;&lt;code&gt;virtual-factory-1&lt;/code&gt;&lt;/th&gt;
&lt;th&gt;&lt;code&gt;virtual-factory-2&lt;/code&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;First impression&lt;/td&gt;
&lt;td&gt;Strong hero section and dark SaaS energy&lt;/td&gt;
&lt;td&gt;Calm, factory-like operational UI&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Center of gravity&lt;/td&gt;
&lt;td&gt;Make one screen feel impressive and complete&lt;/td&gt;
&lt;td&gt;Establish role separation across the interface&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Implementation feel&lt;/td&gt;
&lt;td&gt;High completion through a single-file core&lt;/td&gt;
&lt;td&gt;Layout vocabulary and product structure come first&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Best fit&lt;/td&gt;
&lt;td&gt;Fast PoC / sales demo&lt;/td&gt;
&lt;td&gt;UI exploration with future expansion in mind&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;What this comparison reveals is not which one “wins.” It reveals what the AI is optimizing for.&lt;/p&gt;

&lt;p&gt;Standard Codex optimizes for short-distance output: connect the required elements quickly, package them into a convincing screen, and make something that is ready to show.&lt;/p&gt;

&lt;p&gt;The version with &lt;code&gt;ui-ux-pro-max-skill&lt;/code&gt; seems to optimize differently. It tries to identify the product type, impose layout order, decide where information belongs, and then move toward implementation. The README reinforces that interpretation: the skill is built around a Design System Generator and encourages persistent design rules via &lt;code&gt;--persist&lt;/code&gt;, with a structure based on shared design guidance and page-level overrides. That is a very different mindset from simply generating prettier UI code.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Exactly Makes &lt;code&gt;ui-ux-pro-max-skill&lt;/code&gt; Effective?
&lt;/h2&gt;

&lt;p&gt;What stood out to me in this comparison was not just that the skill can make CSS look better.&lt;/p&gt;

&lt;p&gt;Its real value is that it changes the AI’s default questions from:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;“How do I make this look impressive?”&lt;/li&gt;
&lt;li&gt;“How do I style this?”&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;into questions like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;“How is this supposed to be used?”&lt;/li&gt;
&lt;li&gt;“What information hierarchy should this product have?”&lt;/li&gt;
&lt;li&gt;“Where should each function live to support everyday workflows?”&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The README describes a workflow where the skill automatically generates a design system for UI/UX tasks, recommends styles, colors, and typography based on product type, and then checks for UI/UX anti-patterns at the end. That maps very well to the feeling I got from &lt;code&gt;virtual-factory-2&lt;/code&gt;: it looks like design structure was considered before surface polish.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;The clearest lesson from this experiment is that even with the exact same prompt, the quality and character of the output can change significantly depending on the prior knowledge and design framework you give the AI.&lt;/p&gt;

&lt;p&gt;Standard Codex can absolutely generate a strong UI demo on its own. &lt;code&gt;virtual-factory-1&lt;/code&gt; is a good example of that. It is fast, visually compelling, and immediately usable as a frontend demo.&lt;/p&gt;

&lt;p&gt;But with &lt;code&gt;ui-ux-pro-max-skill&lt;/code&gt;, the AI seems to think over a longer time horizon. Instead of simply decorating a screen, it starts trying to organize a product. The gap I saw here was less about visual taste and more about &lt;strong&gt;the point of view behind the design&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;That is the part I find most valuable. It does not just improve the UI output. It upgrades the way the AI thinks about UI in the first place. And that, to me, is where &lt;code&gt;ui-ux-pro-max-skill&lt;/code&gt; feels genuinely impressive.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>codex</category>
      <category>design</category>
      <category>ui</category>
    </item>
    <item>
      <title>oh-my-claudecode is a Game Changer: Experiencing Local AI Swarm Orchestration</title>
      <dc:creator>Yuki Furuta</dc:creator>
      <pubDate>Sat, 04 Apr 2026 14:50:23 +0000</pubDate>
      <link>https://dev.to/yuki-furuta/oh-my-claudecode-is-a-game-changer-experiencing-local-ai-swarm-orchestration-2o1j</link>
      <guid>https://dev.to/yuki-furuta/oh-my-claudecode-is-a-game-changer-experiencing-local-ai-swarm-orchestration-2o1j</guid>
      <description>&lt;p&gt;While the official Claude Code CLI has been making waves recently, I stumbled upon a tool that pushes its potential to the absolute limit: &lt;strong&gt;oh-my-claudecode (OMC)&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;More than just a coding assistant, OMC operates on the concept of &lt;strong&gt;local swarm orchestration for AI agents&lt;/strong&gt;. It’s been featured in various articles and repos, but after spinning it up locally, I can confidently say this is a paradigm shift in the developer experience. &lt;/p&gt;

&lt;p&gt;Here is my hands-on review and why I think it’s worth adding to your stack.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why is oh-my-claudecode so powerful?
&lt;/h2&gt;

&lt;p&gt;If the standard Claude Code is like having a brilliant junior developer sitting next to you, OMC is like &lt;strong&gt;hiring an entire elite engineering team&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Instead of relying on a single AI to handle everything sequentially, OMC leverages multiple specialized agents working in parallel. &lt;br&gt;
What’s even more fascinating is its multi-model support: &lt;strong&gt;you aren't locked into Claude. You can integrate Gemini or Codex as Workers.&lt;/strong&gt; This allows for highly optimized, multi-model team compositions—for instance, assigning frontend UI generation specifically to a Gemini worker because of its distinct strengths.&lt;/p&gt;

&lt;p&gt;Before diving into the code, here is a quick matrix to help you choose the right OMC mode based on your task scale and preferred approach:&lt;/p&gt;

&lt;h3&gt;
  
  
  oh-my-claudecode Mode Selection Matrix
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Approach \ Task Scale&lt;/th&gt;
&lt;th&gt;🟢 Small &lt;br&gt;&lt;em&gt;(Q&amp;amp;A, Minor Fixes)&lt;/em&gt;
&lt;/th&gt;
&lt;th&gt;🟡 Medium &lt;br&gt;&lt;em&gt;(Few Files, Features, Refactors)&lt;/em&gt;
&lt;/th&gt;
&lt;th&gt;🔴 Large &lt;br&gt;&lt;em&gt;(Multi-file, Complex Architecture)&lt;/em&gt;
&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;strong&gt;Hands-off Autonomous&lt;/strong&gt;&lt;br&gt;&lt;em&gt;(Set it and forget it)&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;Native Claude Code&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;Autopilot&lt;/strong&gt;&lt;br&gt;&lt;em&gt;(End-to-end, minimal ceremony)&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;strong&gt;Guaranteed Completion&lt;/strong&gt;&lt;br&gt;&lt;em&gt;(No silent partial stops)&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;Ralph&lt;/strong&gt;&lt;br&gt;&lt;em&gt;(Persistent verify/fix loops)&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;strong&gt;Burst Parallelism&lt;/strong&gt;&lt;br&gt;&lt;em&gt;(Maximum speed)&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;Ultrawork&lt;/strong&gt;&lt;br&gt;&lt;em&gt;(Burst parallel execution)&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;strong&gt;Phased &amp;amp; Robust&lt;/strong&gt;&lt;br&gt;&lt;em&gt;(Plan &amp;amp; review focused)&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;Pipeline&lt;/strong&gt;&lt;br&gt;&lt;em&gt;(Strict sequential ordering)&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;Team (★ Recommended)&lt;/strong&gt;&lt;br&gt;&lt;em&gt;(Plan → PRD → Exec → Verify)&lt;/em&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;strong&gt;Multi-Model Collaboration&lt;/strong&gt;&lt;br&gt;&lt;em&gt;(Codex / Gemini)&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;ccg&lt;/strong&gt; &lt;em&gt;(Claude synthesizes AI inputs)&lt;/em&gt;&lt;br&gt;&lt;strong&gt;omc team&lt;/strong&gt; &lt;em&gt;(Standalone CLI workers)&lt;/em&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  Taking &lt;code&gt;team 3:executor&lt;/code&gt; for a Spin
&lt;/h2&gt;

&lt;p&gt;To test the waters, I built a prototype app using OMC’s built-in &lt;strong&gt;&lt;code&gt;team 3:executor&lt;/code&gt;&lt;/strong&gt; command. The verdict? &lt;strong&gt;It is absurdly fast.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It’s not just about the raw speed of code generation; the velocity of the entire development lifecycle is on another level.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Seamless Collaboration and Parallel Execution
&lt;/h3&gt;

&lt;p&gt;When you hit enter, it doesn't just linearly spit out code. Multiple agents spin up to handle &lt;strong&gt;high-level planning, actual coding, and peer-reviewing&lt;/strong&gt; in parallel. Because the agents actively verify and review each other’s work, the output quality is exceptionally high right out of the gate. You barely need to touch the keyboard.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. The Orchestrator’s "Check-ins"
&lt;/h3&gt;

&lt;p&gt;You might worry that a swarm of AIs will go rogue and wreck your codebase. OMC handles this beautifully. &lt;br&gt;
An "Orchestrator" acts as the tech lead. At the end of every major phase, it pauses and prompts you: &lt;strong&gt;"Here is our progress so far. Do we have permission to proceed to the next phase?"&lt;/strong&gt; You essentially become the engineering manager, reviewing the report and giving the "LGTM" to proceed. It’s the perfect balance of massive automation and human-in-the-loop control.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. The &lt;code&gt;tmux&lt;/code&gt; Spectacle
&lt;/h3&gt;

&lt;p&gt;As an engineer, the coolest part is arguably the visual feedback. OMC integrates natively with &lt;code&gt;tmux&lt;/code&gt;. When executed, your terminal automatically splits into multiple panes.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc0914g3xbyphkm36p0m7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc0914g3xbyphkm36p0m7.png" alt=" " width="800" height="401"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Multiple AI agents working concurrently in separate panes, while the orchestrator summarizes progress.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Watching different AI agents stream logs simultaneously in their own panes while collaborating to build a system is, frankly, spectacular. It feels like a scene straight out of a hacker movie.&lt;/p&gt;




&lt;h2&gt;
  
  
  ⚖️ OMC vs. Anthropic Official Agent Teams: Which should you use?
&lt;/h2&gt;

&lt;p&gt;The elephant in the room: &lt;em&gt;"Anthropic just released official Agent Teams. Why bother with a third-party wrapper?"&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;It boils down to &lt;strong&gt;Official Stability vs. OMC's Extreme Flexibility and Speed&lt;/strong&gt;.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;🛠️ oh-my-claudecode (OMC)&lt;/th&gt;
&lt;th&gt;🏢 Anthropic Official Agent Teams&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Core Concept&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Maximum flexibility &amp;amp; speed&lt;/td&gt;
&lt;td&gt;Predictability &amp;amp; stability&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Agent Pool&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;19+ agents (Custom additions supported)&lt;/td&gt;
&lt;td&gt;Limited, pre-defined setups&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Model Routing&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Smart, automatic routing&lt;/td&gt;
&lt;td&gt;Manual user configuration&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Skill Learning&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Automatically learns project quirks&lt;/td&gt;
&lt;td&gt;None (Requires repeated context)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Support/Stability&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;OSS (Fast updates, potential breaking changes)&lt;/td&gt;
&lt;td&gt;Official support, highly stable&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  3 Reasons OMC is Hard to Give Up
&lt;/h3&gt;

&lt;p&gt;If the table isn't convincing enough, here are three specific pain points OMC completely solves:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Escaping the Single-Agent Bottleneck (Parallelism)&lt;/strong&gt;
Official tools often force sequential execution. OMC’s Team Mode and Ultrawork execute tasks concurrently. If you are doing a massive multi-file refactor, the speed difference is staggering.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Saving Your API Budget (Smart Routing)&lt;/strong&gt;
Running Opus for every minor file read will burn through your tokens in hours. OMC intelligently routes tasks: Haiku for quick searches, Sonnet for heavy coding, and Opus for complex architectural decisions. &lt;strong&gt;It saves money automatically.&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The "Don't Repeat Yourself" Memory (Skill Learning)&lt;/strong&gt;
OMC learns the specific patterns, rules, and context of your project and remembers them across sessions. You no longer have to paste the same architectural guidelines into the prompt every single day.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;The Verdict:&lt;/strong&gt; If you cannot tolerate a single bug or breaking change in your tooling, stick to the Official Agent Teams. But if you want to push the boundaries of development speed, slash your API costs, and experience the bleeding edge of AI orchestration, OMC is the clear winner.&lt;/p&gt;




&lt;h2&gt;
  
  
  💻 GUI Alternative: Using Cursor
&lt;/h2&gt;

&lt;p&gt;While OMC truly shines in the terminal (especially for the &lt;code&gt;tmux&lt;/code&gt; parallel execution views), not everyone loves living in the CLI. &lt;/p&gt;

&lt;p&gt;If you prefer a GUI, you can achieve a similar setup within &lt;strong&gt;Cursor&lt;/strong&gt;. By installing the Claude Code extension and adding OMC as a plugin, you can tap into this swarm intelligence directly from your favorite AI code editor.&lt;/p&gt;




&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;oh-my-claudecode bridges the gap between simple AI autocomplete and a fully autonomous AI engineering team. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;If you want to ship applications at lightning speed...&lt;/li&gt;
&lt;li&gt;If you want to see AIs collaborate in real-time...&lt;/li&gt;
&lt;li&gt;If you want to optimize your token usage...&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>claudecode</category>
      <category>productivity</category>
      <category>developers</category>
    </item>
  </channel>
</rss>
