# roughcut.dev > Notes by Pradeep Kaushik on physical AI, simulation, digital twins, industrial systems and agentic systems. The linked HTML articles contain the full text, figures, video and available evidence links. Article pages identify the author and publication dates, with update dates where applicable. Experiments and recommendations are bounded by the conditions and limitations stated in each article. Topics group subject areas. Reading paths are curated sequences; they are separate from an article's original series. ## About and navigation - [About Pradeep Kaushik](https://roughcut.dev/about/): Background, experience and contact information. - [Reading paths](https://roughcut.dev/reading-paths/): Guided sequences of published articles, grouped by subject area. ## Topics - [Agentic Systems: Delegating work and checking the result](https://roughcut.dev/topics/agentic-systems/): Choose what to delegate to an agent, how to assess its delivery, and where code should control the workflow. - [Physical AI: Learning, deployment and commissioning](https://roughcut.dev/topics/physical-ai/): Understand how capture, training and validation fit together, and what a learned robot policy still needs before deployment. - [Platform & Industrial Systems: Manufacturing systems and platforms](https://roughcut.dev/topics/platform-industrial-systems/): Explore how MES could use shared operational context and Physical AI, and where hardware and Omniverse fit in industrial systems. - [Simulation & Digital Twins: From evidence to a usable twin](https://roughcut.dev/topics/simulation-digital-twins/): Choose the representation, simulation model and application architecture that fit the decision your digital twin needs to support. ## Reading paths - [Accepting an agent's 3D delivery](https://roughcut.dev/threads/accepting-agent-generated-3d/): Understand the acceptance workflow, follow a delivery through feedback and repair, then decide what needs to change and who should act. - [Delegating 3D work to an agent](https://roughcut.dev/threads/delegating-3d-production/): Decide what to delegate, check whether the requested edit happened, and separate supported claims from unanswered questions. - [From camera evidence to reconstruction](https://roughcut.dev/threads/camera-evidence-to-visual-twin/): How I chose what kind of truth to preserve, built the reconstruction workflow, and learned what 24 Gaussian-splat jobs could and could not prove. - [From compute to operation](https://roughcut.dev/threads/omniverse-in-practice/): How hardware, Omniverse and shared models fit together—from the compute underneath physical AI to the industrial systems it is meant to improve. - [From model capability to deployment](https://roughcut.dev/threads/physical-ai-from-model-to-deployment/): Why a strong model is only the beginning: capture evidence, operating envelopes, runtime monitoring and the commissioning boundary. - [From Omniverse platform to browser application](https://roughcut.dev/threads/omniverse-platform-to-browser-application/): The industrial platform model, the move from Kit-first applications to libraries, and the browser viewer I built to test that approach. - [From reconstruction to a visual twin](https://roughcut.dev/threads/reconstruction-to-visual-twin/): Where a convincing Gaussian reconstruction stops, how I built an editable OpenUSD workflow around it, and what the measured Garden run actually established. - [From solver to decision loop](https://roughcut.dev/threads/from-solver-to-decision-loop/): When a digital twin needs a surrogate, how to compare technique families fairly, what changes from 2D to 3D, and what a fast room model still needs before it can support a building decision. - [Making agent workflows reliable](https://roughcut.dev/threads/reliable-agent-harnesses/): Why grounding and workflow structure often matter before fine-tuning, what changed when code owned execution order, and what a safe restart still had to prove. - [Rethinking MES with Physical AI](https://roughcut.dev/threads/rethinking-mes-with-physical-ai/): Understand what Physical AI could change in manufacturing execution, then examine the shared architecture and tests needed to assess its value. - [Testing 3D materials, motion and simulation](https://roughcut.dev/threads/testing-agent-generated-3d/): Start with a delivered assembly, or choose a pair of articles on materials, motion or simulation. Each pair explains a check and the limits of its evidence. - [The robot-training loop](https://roughcut.dev/threads/robot-training-loop/): The five-stage mental model, the pipeline I ran on one GPU, and what capture and learning method change inside the same loop. ## Writing - [A Robot Training Center Looks Like Ten Projects. It's One Loop.](https://roughcut.dev/writing/a-robot-training-center-is-one-loop/): A request to scope a robot training center became a five-stage working model. I use one task to explain the handoffs, the tool choices and what still needs testing before pipeline reuse becomes a business or deployment claim. - [A VLA Benchmark Is Not a Commissioning Package](https://roughcut.dev/writing/a-vla-benchmark-is-not-a-commissioning-package/): Robot foundation models are getting better at handling situations they were not shown. That makes the old commissioning questions more important: where is the model valid, how do I know it has left that range, and what happens next? - [Accepting Agent-Generated 3D: What Needs to Change?](https://roughcut.dev/writing/before-asking-an-agent-to-try-again/): A finding needs the right next action. These 3D deliveries taught me to separate defects and missed requirements from scope gaps, missing evidence and evaluator problems before assigning a repair. A requested variation may need no repair at all. - [Is Physical AI the Next Level for MES? I Think It Is](https://roughcut.dev/writing/is-physical-ai-the-next-level-for-mes/): MES was never really about running the machines. It was about improving the operation, and it was limited by how much had to be modeled by hand and decided by people. Physical and agentic AI can change that, but only if the plant's systems are joined through shared operational context. - [Most Teams Reach for Fine-Tuning Too Early](https://roughcut.dev/writing/most-teams-reach-for-fine-tuning-too-early/): Before changing model weights, I would identify the gap: missing domain knowledge, unreliable workflow behavior or a deployment constraint. A pharma recipe project, an agent workflow and an edge counterexample lead to different first interventions. - [NVIDIA's Hardware Line Looks Like a Catalog. It's One Architecture in Many Boxes.](https://roughcut.dev/writing/nvidia-hardware-is-one-architecture-in-many-boxes/): I choose hardware by the work it runs, the memory it needs and what has to move between devices. A SplatStage run shows why the GPU model alone was a poor guide to sizing the machine. - [Omniverse Is Not a Rendering Tool](https://roughcut.dev/writing/omniverse-is-not-a-rendering-tool/): From the industrial systems I know, rendering is only one part of Omniverse. The harder job is connecting source data, giving teams a shared context, and reusing it for visibility, simulation, optimization and Physical AI. - [Omniverse Licensing: What Changed for Production](https://roughcut.dev/writing/the-omniverse-license-change-you-might-have-missed/): Production use no longer requires an NVIDIA AI Enterprise subscription. The useful distinction is between permission to deploy, the license terms that still apply and the support your team needs. - [Rethinking MES: A Shared Architecture for Physical AI](https://roughcut.dev/writing/rethinking-mes-shared-architecture-physical-ai/): I would design MES around shared operational state, physical context and decision services. The test is whether another manufacturing function can reuse an assessment and remain consistent when the operation changes. - [What a Robot Model Still Leaves to the Plant](https://roughcut.dev/writing/physical-ai-bottleneck-isnt-the-model/): A pretrained robot policy can supply useful action skills. An automotive parts-kitting cell still needs a way to adapt those skills, verify each kit and respond when parts or conditions change. That is the pipeline I would build now. - [What Does a Hallucination Look Like in 3D?](https://roughcut.dev/writing/what-does-a-hallucination-look-like-in-3d/): Five Astra probes produced no hallucination example. One correctly left contact, mass and friction unresolved. Together with a published object-grounding failure, that result shows why spatial evaluation needs supported, contradicted and unknown outcomes. - [What Industrial Maintenance Demands From Robot Capture](https://roughcut.dev/writing/what-industrial-maintenance-demands-from-robot-capture/): A refinery valve operation shows why robot capture should begin with the task: preserve the motion, contact, timing and measurements the policy will need. - [What Kind of Truth Does Your Digital Twin Need?](https://roughcut.dev/writing/what-kind-of-truth-does-your-digital-twin-need/): Every digital twin needs a usable digital starting point. CAD, LiDAR, photogrammetry and Gaussian splatting preserve different kinds of truth, so the representation should follow the decision. Part 1 of a three-part series. - [When Does a Digital Twin Need a Surrogate?](https://roughcut.dev/writing/when-does-a-digital-twin-need-a-surrogate/): A digital twin needs a surrogate only when repeated prediction creates value and the solver misses that decision's clock. Ventilation makes the case; fast energy models show why the rule is not universal. Part 1 of a five-part series. - [When Does a Robot Policy Need Tactile Input?](https://roughcut.dev/writing/most-robot-tasks-dont-need-touch/): Years of MES work taught me where automation stops: at tasks whose decisive state cannot be written down or seen. Tactile input earns its place when it reveals that missing state; contact alone is not enough. - [Why I Would Delegate 3D Content Production to an Agent](https://roughcut.dev/writing/what-changes-when-an-agent-can-build-in-3d/): I built SplatStage around editing, export and composition workflows. Starting again, I would test delegating that production job to a runtime agent. The question is which development work that avoids, and which tools, checks and user-facing features I would still maintain. - [You No Longer Need to Build an App to Use Omniverse](https://roughcut.dev/writing/no-longer-need-an-app/): A gas-leak prototype showed me the cost of building inside Kit. Standalone Omniverse libraries make the application framework a choice, including for some interactive tools. ## Projects - [A 200-Case Test Changed the 3D Surrogate Ranking](https://roughcut.dev/projects/a-200-case-test-changed-the-3d-surrogate-ranking/): A 16-case test made POD+GP look better than a PhysicsNeMo FNO. A common 200-case test put POD-NN first and left FNO and GP 0.03 points apart. The evaluation design changed the conclusion. Part 4 of a five-part series. - [A 3D Scene Can Pass Its Checks and Still Miss the Brief](https://roughcut.dev/projects/from-a-brief-to-an-editable-3d-cell/): Four controlled cases expose an incompatible pallet-move request and a checker that never tested the destination. A feasible layout can pass while leaving the original request unresolved; the code and saved scenes are available to reproduce. - [A Gaussian Splat Is Not Yet a Digital Twin](https://roughcut.dev/projects/a-gaussian-splat-is-not-yet-a-digital-twin/): A Gaussian splat can reproduce a place convincingly while knowing almost nothing about its identity, scale or behavior. This article separates reconstruction, visual readiness, operational readiness and simulation readiness—and defines the boundary SplatStage is designed to cross. - [A Texture Pass Covers Only the Pixels It Compared](https://roughcut.dev/projects/a-readable-texture-can-still-miss-the-reference/): A JPEG label passed its pattern check because the comparison measured quadrant interiors and excluded the boundaries. The pass was correct, but a summary that dropped the word “interior” was not. A later detailed-brief study found wrong source pixels despite passing geometry and motion checks. - [A USD Viewer Without Kit: The Cost of Separate Stages](https://roughcut.dev/projects/live-usd-viewer/): Rendering a USD scene in the browser worked. Keeping edits and rendered state together was harder: separate stages forced reloads and left some session changes invisible to inspection. What I would check before choosing the same architecture. - [Building an Acceptance Harness for Agent-Generated 3D](https://roughcut.dev/projects/an-acceptance-harness-for-agent-generated-3d/): A press-shop arm changed length during its animation, making me question which production choices I was accepting. I built a harness that checks a saved delivery against its intended use and keeps failed measurements, missing evidence and pending decisions separate. - [Building Ratchet Runtime: What a Safe Restart Has to Prove](https://roughcut.dev/projects/building-ratchet-runtime/): A technical look at the small execution runtime I built for overlapping and interrupted agent workflows: ownership, effect recovery, verified completion and the limits of a local alpha. - [Building SplatStage: From Edited Gaussians to OpenUSD](https://roughcut.dev/projects/building-splatstage-from-edited-gaussians-to-openusd/): The editor showed a cleaned scene while the exporter still read the original checkpoint. SplatStage makes the selected edit version the export input and checks it again through OpenUSD readback. The build choices behind that handoff. - [Building SurrogateLab: The Workbench Behind SurrogateGate](https://roughcut.dev/projects/building-surrogatelab-the-workbench-behind-surrogategate/): SurrogateLab is the executable workbench behind the SurrogateGate decision framework. It compares classical reduced models, neural methods and PhysicsNeMo implementations across contrasting 2D and 3D problems. Part 2 of a five-part series. - [Checking Material Delivery in Agent-Generated 3D](https://roughcut.dev/projects/checking-material-delivery-in-agent-generated-3d/): My checker's dependency reader missed a texture path authored on a shader and falsely accepted three cases. That failure is why I want a missing-file control beside the correct bundle and a wrong binding, and why I treat binding, file presence, decoding and appearance as separate checks. - [Checking Motion in Agent-Generated 3D](https://roughcut.dev/projects/checking-motion-between-the-endpoints/): Changing only the USD clock rate passed a contract that checked time codes. A timing pack that checks duration and positions in elapsed seconds rejects that change and accepts a correctly rescaled animation. What happens between samples still needs its own check. - [Checking Whether a Moving Connection Stays Together](https://roughcut.dev/projects/checking-whether-a-moving-connection-stays-together/): A connection check caught deliberately broken motion, while three supplied mechanisms passed its samples. Two sampling schedules each missed a defect the other caught, so the report names its sample times. A valid speed change also exposed an extra requirement in the evaluator. - [Evaluating Physics Configuration and Simulated Behavior](https://roughcut.dev/projects/physics-checks-and-the-behavior-the-task-needs/): Two ramp scenes pass the selected NVIDIA USD physics-configuration rules, but only one keeps its block within a 10 mm limit. A press-cell demo passed 24 general rules while its PhysX run missed a 10 mm tracking requirement. The walkthrough shows the inputs, traces, solver sensitivity and the friction that stayed assumed. - [From Camera Media to Gaussian Splats: Building ReconStudio](https://roughcut.dev/projects/from-camera-media-to-gaussian-splats-building-reconstudio/): A finished reconstruction can still be hard to diagnose. ReconStudio keeps camera-solve evidence, run settings and exported artifacts in one job record, so a user can inspect what happened before trusting the result. Part 2 of a three-part series. - [I Took the Order Away From the Agent. Then I Learned Order Wasn't Enough.](https://roughcut.dev/projects/i-took-the-order-away-from-the-agent-then-learned-order-wasnt-enough/): Anchor stopped my agent from skipping declared steps. Ratchet came from the next question: after an interrupted or overlapping run, could I prove what happened and restart without making it worse? - [My Agent Kept Skipping Steps. The Fix Was Taking the Order Away From It.](https://roughcut.dev/projects/my-agent-kept-skipping-steps/): A repeatable agent workflow kept skipping different steps on different runs. The fix wasn't a stronger prompt; it was moving the plan into a DAG and letting deterministic code control sequence and verification. - [Testing the Robot Training Loop I Drew](https://roughcut.dev/projects/testing-the-robot-training-loop/): A month ago I drew a five-stage loop for a robot training center and admitted most of it was an educated guess I hadn't tested. So I built the loop as a real, orchestrated pipeline on one GPU and carried two tasks around it — a pole that balances by trial and error, and a Franka arm that learns to stack cubes by copying demonstrations. This is the environment, the stack, the architecture, and what actually ran. Part 1 of two. - [The 70 mm Gap Our Review Would Have Missed](https://roughcut.dev/projects/astra-animated-mechanical-assembly/): Astra built an animated crank-slider from one brief, then found the rod leaving its pin by about 70 mm between saved frames because exported angles wrapped near 180 degrees. Our planned review sampled only authored frames and would have missed it. Here is the recorded task, the fix and what I would change in the review. - [What 5.8 Million Gaussians Taught Me About Building a Visual Twin](https://roughcut.dev/projects/what-5-8-million-gaussians-taught-me-about-building-a-visual-twin/): One Garden scene made the promises and gaps in SplatStage measurable: 2.07 million Gaussians removed, an edited OpenUSD particle field, three composed assets, a dependency-complete stage—and no measured scale, colliders or external runtime proof. - [What Five 2D Problems Revealed About Surrogate Choice](https://roughcut.dev/projects/what-five-2d-problems-revealed-about-surrogate-choice/): FNO led three 2D tests; POD-NN led two and shared one top score. The useful result was what projection error, regression capacity and data support changed in the next experiment. Part 3 of a five-part series. - [What I Learned from 24 Gaussian Splat Jobs](https://roughcut.dev/projects/what-i-learned-from-24-gaussian-splat-jobs/): I built ReconStudio, then used 24 job records across six scenes to test its evidence. Metric bugs, repeated runs and paired-frame comparisons changed what I could claim about training, capture and GPU capacity. Part 3 of a three-part series. - [What It Would Take to Put a Room Surrogate in a Comfort Loop](https://roughcut.dev/projects/what-it-would-take-to-put-a-room-surrogate-in-a-comfort-loop/): A 2D room surrogate answers repeated field queries quickly, but the whole-field winner is not the winner on every comfort quantity. This is the gap between a fast model and a decision-ready building loop. Part 5 of a five-part series. - [What Testing the Robot Training Loop Taught Me](https://roughcut.dev/projects/what-the-robot-training-loop-taught-me/): Running the training loop for real surfaced one concept the diagram doesn't capture: the same five stages take two different shapes depending on how the robot learns — by trial and error (reinforcement learning) or by copying demonstrations (imitation). This part is the mechanism behind that fork, grounded in the two tasks I ran, plus the open questions the build left unproven. Part 2 of two. - [What Two Scene Builds Revealed About 3D Acceptance](https://roughcut.dev/projects/what-two-scene-builds-revealed-about-3d-acceptance/): A delegated distribution-centre build passed every check derived from its brief. Its only automated rejection came from a delivery policy the brief never stated, and separate review found a route indicator in the wrong state between two timed events. A smaller dairy build shows the plain case: broken bindings and a local repair. - [When a Simulation Result Can Count as Evidence](https://roughcut.dev/projects/when-a-simulation-result-can-count-as-evidence/): A low-friction block slid 664 mm, far past a 10 mm comparison, and the delivery was still correct because the brief asked for that variant. Under the original stay-put contract, the same kind of measurement was a rejection. The harness worker first ties the result to the scene; then the brief decides what it means.