Files
PozzettiAndrea-ComfyUI-Geom…/dev/windows-portable-cpu/index.html
T

2086 lines
312 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>PozzettiAndrea/ComfyUI-GeometryPack - Test Results</title>
<style>
* { margin: 0; padding: 0; box-sizing: border-box; }
body {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
background: #0f1923;
color: #e6edf3;
min-height: 100vh;
line-height: 1.6;
}
header {
background: #162033;
padding: 1.25rem 2rem;
border-bottom: 1px solid #243656;
}
body.in-iframe header {
display: none;
}
body.in-iframe .container {
padding-top: 1.25rem;
}
body.in-iframe .summary-meta {
display: flex;
gap: 0.5rem;
flex-wrap: wrap;
margin-bottom: 1rem;
}
h1 {
font-size: 1.25rem;
font-weight: 600;
margin-bottom: 0.5rem;
}
h1 a {
color: #e6edf3;
text-decoration: none;
}
h1 a:hover { color: #58a6ff; }
.meta-chips {
display: flex;
gap: 0.5rem;
flex-wrap: wrap;
align-items: center;
}
.meta-chip {
display: inline-flex;
align-items: center;
gap: 0.35rem;
padding: 0.2rem 0.6rem;
background: #1c2d44;
border: 1px solid #243656;
border-radius: 2rem;
font-size: 0.75rem;
color: #8ba3c1;
}
a.meta-chip {
text-decoration: none;
transition: background 0.15s, border-color 0.15s, color 0.15s;
}
a.meta-chip:hover {
background: #25395a;
border-color: #3a5587;
color: #cfe1f7;
}
.meta-chip svg {
width: 12px;
height: 12px;
fill: currentColor;
flex-shrink: 0;
}
.container {
max-width: 1400px;
margin: 0 auto;
padding: 2rem;
}
/* Summary Section */
.summary {
background: #162033;
border: 1px solid #243656;
border-radius: 8px;
padding: 1.5rem;
margin-bottom: 2rem;
}
.progress-wrapper {
display: flex;
align-items: center;
gap: 1rem;
margin-bottom: 1rem;
}
.progress-bar {
background: #1c2d44;
border-radius: 6px;
height: 10px;
overflow: hidden;
flex: 1;
}
.progress-fill {
background: #3fb950;
height: 100%;
border-radius: 6px;
transition: width 0.3s ease;
}
.progress-fill.has-failures {
background: linear-gradient(90deg, #3fb950 0%, #3fb950 93.33333333333333%, #f85149 93.33333333333333%, #f85149 100%);
width: 100% !important;
border-radius: 6px;
}
.progress-label {
font-size: 0.85rem;
font-weight: 600;
color: #8ba3c1;
white-space: nowrap;
min-width: 3.5rem;
text-align: right;
}
.stats {
display: flex;
gap: 0.75rem;
flex-wrap: wrap;
align-items: center;
}
.stat-badge {
padding: 0.35rem 0.75rem;
border-radius: 2rem;
font-weight: 600;
font-size: 0.8rem;
}
.stat-pass {
background: rgba(63, 185, 80, 0.15);
color: #3fb950;
}
.stat-fail {
background: rgba(248, 81, 73, 0.15);
color: #f85149;
}
.stat-total {
color: #8ba3c1;
font-size: 0.85rem;
}
/* Failed Section */
.failed-section {
background: rgba(248, 81, 73, 0.08);
border: 1px solid rgba(248, 81, 73, 0.3);
border-radius: 8px;
padding: 1.25rem;
margin-bottom: 2rem;
}
.failed-section h2 {
color: #f85149;
font-size: 0.9rem;
font-weight: 600;
margin-bottom: 0.75rem;
}
.failed-item {
background: #162033;
border: 1px solid #243656;
border-radius: 6px;
padding: 1rem;
margin-bottom: 0.5rem;
}
.failed-item:last-child {
margin-bottom: 0;
}
.failed-header {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 0.5rem;
}
.failed-name {
font-weight: 600;
color: #f85149;
}
.failed-duration {
color: #8ba3c1;
font-size: 0.8rem;
}
.failed-error {
background: #0f1923;
border: 1px solid #243656;
padding: 0.75rem;
border-radius: 6px;
font-family: 'SFMono-Regular', 'Menlo', 'Monaco', monospace;
font-size: 0.8rem;
color: #d29922;
margin-bottom: 0.5rem;
}
.log-link {
color: #58a6ff;
text-decoration: none;
font-size: 0.8rem;
}
.log-link:hover {
text-decoration: underline;
}
/* Workflow Grid */
.section-header {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 1.25rem;
}
.section-title {
font-size: 0.8rem;
color: #8ba3c1;
font-weight: 600;
text-transform: uppercase;
letter-spacing: 0.06em;
}
.view-controls {
display: flex;
gap: 0;
align-items: center;
border: 1px solid #243656;
border-radius: 6px;
overflow: hidden;
}
.view-btn {
background: #1c2d44;
color: #8ba3c1;
border: none;
border-right: 1px solid #243656;
padding: 0.3rem 0.75rem;
cursor: pointer;
font-size: 0.75rem;
font-weight: 500;
transition: all 0.15s;
}
.view-btn:last-child {
border-right: none;
}
.view-btn:hover {
background: #243656;
color: #e6edf3;
}
.view-btn.active {
background: #58a6ff;
color: #fff;
}
.workflow-grid {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 1rem;
}
.workflow-grid.view-list {
grid-template-columns: 1fr;
gap: 0;
}
.workflow-grid.view-list .workflow-card {
border-radius: 0;
border-bottom: 1px solid #243656;
}
.workflow-grid.view-list .workflow-card:first-child {
border-radius: 8px 8px 0 0;
}
.workflow-grid.view-list .workflow-card:last-child {
border-radius: 0 0 8px 8px;
border-bottom: none;
}
.workflow-grid.view-list .workflow-card:only-child {
border-radius: 8px;
}
.workflow-grid.view-list .workflow-screenshot {
width: 100%;
height: auto;
aspect-ratio: auto;
}
.workflow-grid.view-list .workflow-info {
border-top: 1px solid #243656;
padding: 0.75rem 1rem;
}
.workflow-grid.view-list .workflow-name {
max-width: none;
font-size: 0.9rem;
}
.workflow-card {
background: #162033;
border: 1px solid #243656;
border-radius: 8px;
overflow: hidden;
transition: transform 0.15s, border-color 0.15s;
}
.workflow-card:hover {
transform: translateY(-1px);
border-color: #4a6282;
}
.workflow-card.clickable {
cursor: pointer;
}
.workflow-card.failed {
border-color: #f85149;
}
.workflow-card.failed:hover {
border-color: #f85149;
}
.workflow-screenshot {
width: 100%;
aspect-ratio: 16/10;
object-fit: cover;
background: #0f1923;
display: block;
}
.workflow-screenshot.placeholder {
display: flex;
align-items: center;
justify-content: center;
color: #4a6282;
font-size: 0.8rem;
}
.workflow-info {
padding: 0.75rem 1rem;
border-top: 1px solid #243656;
}
.workflow-header {
display: flex;
justify-content: space-between;
align-items: center;
gap: 0.5rem;
margin-bottom: 0.25rem;
}
.workflow-name {
font-weight: 500;
font-size: 0.85rem;
color: #e6edf3;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
max-width: 65%;
}
.workflow-badge {
padding: 0.15rem 0.5rem;
border-radius: 2rem;
font-size: 0.7rem;
font-weight: 600;
text-transform: uppercase;
letter-spacing: 0.03em;
flex-shrink: 0;
}
.workflow-badge.pass {
background: rgba(63, 185, 80, 0.15);
color: #3fb950;
}
.workflow-badge.fail {
background: rgba(248, 81, 73, 0.15);
color: #f85149;
}
.workflow-meta {
display: flex;
justify-content: space-between;
align-items: center;
font-size: 0.75rem;
color: #4a6282;
}
/* Lightbox */
.lightbox {
display: none;
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(1, 4, 9, 0.9);
z-index: 1000;
justify-content: center;
align-items: flex-start;
padding: 2rem;
overflow-y: auto;
}
.lightbox.active {
display: flex;
}
.lightbox-content {
display: flex;
flex-direction: column;
max-width: 1200px;
width: 100%;
margin: auto;
}
.lightbox-content img {
max-width: 100%;
max-height: 60vh;
object-fit: contain;
border-radius: 8px;
border: 1px solid #243656;
align-self: center;
cursor: zoom-in;
}
.img-overlay {
display: none;
position: fixed;
top: 0;
left: 0;
width: 100vw;
height: 100vh;
z-index: 1002;
background: rgba(1, 4, 9, 0.95);
overflow: auto;
align-items: center;
justify-content: center;
}
.img-overlay.active {
display: flex;
}
.img-overlay.zoomed {
align-items: flex-start;
justify-content: flex-start;
}
.img-overlay img {
max-width: 100%;
max-height: 100%;
object-fit: contain;
cursor: zoom-in;
}
.img-overlay.zoomed img {
max-width: none;
max-height: none;
cursor: zoom-out;
}
.lightbox-close {
position: fixed;
top: 1rem;
right: 1.5rem;
font-size: 2rem;
color: #e6edf3;
cursor: pointer;
opacity: 0.6;
background: none;
border: none;
z-index: 1001;
}
.lightbox-close:hover {
opacity: 1;
}
.lightbox-nav {
position: fixed;
top: 50%;
transform: translateY(-50%);
background: rgba(22, 32, 51, 0.8);
border: 1px solid #243656;
color: #e6edf3;
font-size: 2.5rem;
width: 48px;
height: 64px;
border-radius: 8px;
cursor: pointer;
opacity: 0.6;
z-index: 1001;
display: flex;
align-items: center;
justify-content: center;
transition: opacity 0.15s;
padding: 0;
line-height: 1;
}
.lightbox-nav:hover {
opacity: 1;
}
.lightbox-nav-left { left: 1rem; }
.lightbox-nav-right { right: 1rem; }
.lightbox-info {
display: flex;
justify-content: space-between;
align-items: center;
padding: 1rem 1.25rem;
background: #162033;
border: 1px solid #243656;
border-radius: 8px;
margin-top: 1rem;
}
.lightbox-title {
font-size: 1rem;
font-weight: 600;
color: #e6edf3;
}
.lightbox-hardware {
display: block;
font-size: 0.75rem;
color: #8ba3c1;
margin-top: 0.25rem;
}
.lightbox-meta {
display: flex;
gap: 1rem;
align-items: center;
}
.lightbox-badge {
padding: 0.25rem 0.75rem;
border-radius: 2rem;
font-size: 0.8rem;
font-weight: 600;
text-transform: uppercase;
}
.lightbox-badge.pass {
background: rgba(63, 185, 80, 0.15);
color: #3fb950;
}
.lightbox-badge.fail {
background: rgba(248, 81, 73, 0.15);
color: #f85149;
}
.lightbox-duration {
color: #8ba3c1;
font-size: 0.85rem;
}
.lightbox-log {
background: #0f1923;
border: 1px solid #243656;
border-radius: 8px;
padding: 1rem;
margin-top: 1rem;
max-height: 300px;
overflow-y: auto;
font-family: 'SFMono-Regular', 'Menlo', 'Monaco', monospace;
font-size: 0.8rem;
line-height: 1.5;
white-space: pre-wrap;
word-break: break-all;
color: #8ba3c1;
}
.lightbox-log::-webkit-scrollbar {
width: 8px;
}
.lightbox-log::-webkit-scrollbar-track {
background: #162033;
border-radius: 4px;
}
.lightbox-log::-webkit-scrollbar-thumb {
background: #243656;
border-radius: 4px;
}
.lightbox-log::-webkit-scrollbar-thumb:hover {
background: #4a6282;
}
/* Resource Graph */
.resource-graph {
display: none;
margin-top: 1rem;
background: #162033;
border: 1px solid #243656;
border-radius: 8px;
padding: 1rem;
}
.resource-graph.active {
display: block;
}
.resource-graph-title {
font-size: 0.8rem;
color: #8ba3c1;
font-weight: 500;
margin-bottom: 0.5rem;
}
.resource-graph canvas {
width: 100%;
height: 120px;
cursor: crosshair;
}
.resource-legend {
display: flex;
gap: 1rem;
margin-top: 0.5rem;
font-size: 0.75rem;
color: #8ba3c1;
}
.resource-legend span {
display: flex;
align-items: center;
gap: 4px;
}
.resource-legend .dot {
width: 8px;
height: 8px;
border-radius: 50%;
}
.resource-legend .ram { background: #3fb950; }
.resource-legend .gpu { background: #d29922; }
/* Video Player */
.video-player {
display: none;
margin-top: 1rem;
background: #162033;
border: 1px solid #243656;
border-radius: 8px;
padding: 1rem;
}
.video-player.active {
display: block;
}
.video-controls {
display: flex;
align-items: center;
gap: 1rem;
margin-top: 0.5rem;
}
.video-play-btn {
background: #58a6ff;
color: #fff;
border: none;
padding: 0.4rem 1rem;
border-radius: 6px;
cursor: pointer;
font-size: 0.8rem;
font-weight: 500;
}
.video-play-btn:hover {
background: #79b8ff;
}
.video-frame-counter {
color: #8ba3c1;
font-size: 0.8rem;
}
.video-slider-container {
padding: 15px 0;
}
/* noUiSlider customization */
#video-slider {
height: 6px;
background: #1c2d44;
border: none;
box-shadow: none;
}
#video-slider .noUi-connect {
background: #58a6ff;
}
#video-slider .noUi-handle {
width: 16px;
height: 16px;
background: #58a6ff;
border: none;
border-radius: 50%;
box-shadow: none;
top: -5px;
right: -8px;
cursor: pointer;
}
#video-slider .noUi-handle:before,
#video-slider .noUi-handle:after {
display: none;
}
/* Pips (tick marks) */
.noUi-pips {
color: #4a6282;
}
.noUi-marker {
background: #243656;
width: 2px;
}
.noUi-marker-large {
height: 12px;
}
.noUi-value {
display: none;
}
/* Models Section */
.models-section {
margin-top: 2rem;
margin-bottom: 2rem;
}
.models-total {
font-size: 0.8rem;
color: #8ba3c1;
}
.models-folder {
background: #162033;
border: 1px solid #243656;
border-radius: 8px;
margin-bottom: 0.5rem;
overflow: hidden;
}
.models-folder-header {
display: flex;
justify-content: space-between;
align-items: center;
padding: 0.75rem 1rem;
cursor: pointer;
user-select: none;
list-style: none;
}
.models-folder-header::-webkit-details-marker {
display: none;
}
.models-folder-header::before {
content: '\25B6';
font-size: 0.6rem;
color: #4a6282;
margin-right: 0.5rem;
transition: transform 0.15s;
}
.models-folder[open] > .models-folder-header::before {
transform: rotate(90deg);
}
.models-folder-name {
font-family: 'SFMono-Regular', 'Menlo', 'Monaco', monospace;
font-size: 0.85rem;
font-weight: 600;
color: #58a6ff;
}
.models-folder-meta {
display: flex;
align-items: center;
gap: 0.75rem;
}
.models-folder-size {
font-size: 0.8rem;
font-weight: 600;
color: #8ba3c1;
}
.models-source-link {
font-size: 0.75rem;
color: #3fb950;
text-decoration: none;
padding: 0.15rem 0.5rem;
background: rgba(63, 185, 80, 0.1);
border: 1px solid rgba(63, 185, 80, 0.2);
border-radius: 2rem;
}
.models-source-link:hover {
background: rgba(63, 185, 80, 0.2);
text-decoration: none;
}
.models-file-list {
border-top: 1px solid #243656;
padding: 0.25rem 0;
}
.models-file {
display: flex;
justify-content: space-between;
align-items: center;
padding: 0.35rem 1rem 0.35rem 2rem;
font-size: 0.8rem;
}
.models-file:hover {
background: rgba(88, 166, 255, 0.05);
}
.models-file-path {
font-family: 'SFMono-Regular', 'Menlo', 'Monaco', monospace;
color: #8ba3c1;
word-break: break-all;
}
.models-file-size {
color: #4a6282;
white-space: nowrap;
margin-left: 1rem;
flex-shrink: 0;
}
/* Footer */
footer {
text-align: center;
padding: 2.5rem;
color: #4a6282;
font-size: 0.8rem;
}
footer a {
color: #58a6ff;
text-decoration: none;
}
footer a:hover {
text-decoration: underline;
}
/* Responsive */
@media (max-width: 600px) {
.workflow-grid {
grid-template-columns: 1fr !important;
}
.workflow-grid.view-list .workflow-card {
grid-template-columns: 1fr;
}
.workflow-grid.view-list .workflow-screenshot {
width: 100%;
height: auto;
aspect-ratio: 16/10;
}
.stats {
flex-direction: column;
align-items: flex-start;
}
.section-header {
flex-direction: column;
align-items: flex-start;
gap: 0.5rem;
}
.container {
padding: 1rem;
}
}
</style>
<link href="https://cdn.jsdelivr.net/npm/nouislider@15/dist/nouislider.min.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/nouislider@15/dist/nouislider.min.js"></script>
</head>
<body>
<header>
<h1><a href="https://github.com/PozzettiAndrea/PozzettiAndrea/ComfyUI-GeometryPack">PozzettiAndrea/ComfyUI-GeometryPack</a> Test Results</h1>
<div class="meta-chips">
<span class="meta-chip"><svg viewBox="0 0 16 16"><path d="M8 0a8 8 0 110 16A8 8 0 018 0zm.5 4.5a.5.5 0 00-1 0v3.793L5.854 9.854a.5.5 0 10.708.708l1.853-1.854a.5.5 0 00.085-.094V4.5z"/></svg> 2026-05-16 20:07 UTC</span> <a class="meta-chip" href="https://github.com/PozzettiAndrea/comfy-gpu-ci/actions/runs/25971143368" target="_blank" rel="noopener noreferrer"><svg viewBox="0 0 16 16"><path d="M8 0a8 8 0 100 16A8 8 0 008 0zM6.5 4.5l5 3.5-5 3.5v-7z"/></svg> Test run</a> <span class="meta-chip"><svg viewBox="0 0 16 16"><path d="M2.5 4a.5.5 0 100 1 .5.5 0 000-1zM4 4.5a.5.5 0 01.5-.5h7a.5.5 0 010 1h-7a.5.5 0 01-.5-.5zM2.5 7a.5.5 0 100 1 .5.5 0 000-1zM4 7.5a.5.5 0 01.5-.5h7a.5.5 0 010 1h-7A.5.5 0 014 7.5zM2.5 10a.5.5 0 100 1 .5.5 0 000-1zM4 10.5a.5.5 0 01.5-.5h7a.5.5 0 010 1h-7a.5.5 0 01-.5-.5z"/></svg> Windows-2025Server-10.0.26100-SP0</span> <span class="meta-chip"><svg viewBox="0 0 16 16"><path d="M5 0a.5.5 0 01.5.5V2h1V.5a.5.5 0 011 0V2h1V.5a.5.5 0 011 0V2h.5A2.5 2.5 0 0112.5 4.5H14v1h-1.5v1H14v1h-1.5v1H14v1h-1.5A2.5 2.5 0 0110 12h-.5v1.5a.5.5 0 01-1 0V12h-1v1.5a.5.5 0 01-1 0V12H6v1.5a.5.5 0 01-1 0V12h-.5A2.5 2.5 0 012 9.5H.5v-1H2v-1H.5v-1H2v-1H.5v-1H2A2.5 2.5 0 014.5 2V.5A.5.5 0 015 0zm-.5 4A1.5 1.5 0 003 5.5v4A1.5 1.5 0 004.5 11h6a1.5 1.5 0 001.5-1.5v-4A1.5 1.5 0 0010.5 4h-6z"/></svg> AMD64 Family 25 Model 17 Stepping 1, AuthenticAMD</span>
</div>
</header>
<div class="container">
<div class="summary">
<div class="progress-wrapper">
<div class="progress-bar">
<div class="progress-fill has-failures" style="width: 93.33333333333333%"></div>
</div>
<span class="progress-label">93.3%</span>
</div>
<div class="stats">
<span class="stat-badge stat-pass">28 passed</span>
<span class="stat-badge stat-fail">2 failed</span>
<span class="stat-total">28/30 tests</span>
</div>
</div>
<div class="section-header">
<h2 class="section-title">Workflows</h2>
<div class="view-controls">
<button class="view-btn active" onclick="setView('grid')">Grid</button>
<button class="view-btn" onclick="setView('list')">List</button>
</div>
</div>
<div class="workflow-grid" id="workflow-grid">
<div class="workflow-card clickable " onclick="openLightboxByName('alpha_wrap')">
<img class="workflow-screenshot" src="screenshots/alpha_wrap_executed.png"
alt="alpha_wrap" loading="lazy">
<div class="workflow-info">
<div class="workflow-header">
<span class="workflow-name" title="alpha_wrap">alpha_wrap</span>
<span class="workflow-badge pass">pass</span>
</div>
<div class="workflow-meta">
<span>31.65s</span>
</div>
</div>
</div>
<div class="workflow-card clickable " onclick="openLightboxByName('batch_remesh')">
<img class="workflow-screenshot" src="screenshots/batch_remesh_executed.png"
alt="batch_remesh" loading="lazy">
<div class="workflow-info">
<div class="workflow-header">
<span class="workflow-name" title="batch_remesh">batch_remesh</span>
<span class="workflow-badge pass">pass</span>
</div>
<div class="workflow-meta">
<span>17.00s</span>
</div>
</div>
</div>
<div class="workflow-card clickable " onclick="openLightboxByName('boolean_ops')">
<img class="workflow-screenshot" src="screenshots/boolean_ops_executed.png"
alt="boolean_ops" loading="lazy">
<div class="workflow-info">
<div class="workflow-header">
<span class="workflow-name" title="boolean_ops">boolean_ops</span>
<span class="workflow-badge pass">pass</span>
</div>
<div class="workflow-meta">
<span>10.37s</span>
</div>
</div>
</div>
<div class="workflow-card clickable failed" onclick="openLightboxByName('boolean_ops_all')">
<div class="workflow-screenshot placeholder">No screenshot</div>
<div class="workflow-info">
<div class="workflow-header">
<span class="workflow-name" title="boolean_ops_all">boolean_ops_all</span>
<span class="workflow-badge fail">fail</span>
</div>
<div class="workflow-meta">
<span>8.14s</span>
</div>
</div>
</div>
<div class="workflow-card clickable " onclick="openLightboxByName('decimate')">
<img class="workflow-screenshot" src="screenshots/decimate_executed.png"
alt="decimate" loading="lazy">
<div class="workflow-info">
<div class="workflow-header">
<span class="workflow-name" title="decimate">decimate</span>
<span class="workflow-badge pass">pass</span>
</div>
<div class="workflow-meta">
<span>31.34s</span>
</div>
</div>
</div>
<div class="workflow-card clickable " onclick="openLightboxByName('decimate_all')">
<img class="workflow-screenshot" src="screenshots/decimate_all_executed.png"
alt="decimate_all" loading="lazy">
<div class="workflow-info">
<div class="workflow-header">
<span class="workflow-name" title="decimate_all">decimate_all</span>
<span class="workflow-badge pass">pass</span>
</div>
<div class="workflow-meta">
<span>37.16s</span>
</div>
</div>
</div>
<div class="workflow-card clickable " onclick="openLightboxByName('depth_map_to_mesh')">
<img class="workflow-screenshot" src="screenshots/depth_map_to_mesh_executed.png"
alt="depth_map_to_mesh" loading="lazy">
<div class="workflow-info">
<div class="workflow-header">
<span class="workflow-name" title="depth_map_to_mesh">depth_map_to_mesh</span>
<span class="workflow-badge pass">pass</span>
</div>
<div class="workflow-meta">
<span>25.34s</span>
</div>
</div>
</div>
<div class="workflow-card clickable " onclick="openLightboxByName('fix_normals_all')">
<img class="workflow-screenshot" src="screenshots/fix_normals_all_executed.png"
alt="fix_normals_all" loading="lazy">
<div class="workflow-info">
<div class="workflow-header">
<span class="workflow-name" title="fix_normals_all">fix_normals_all</span>
<span class="workflow-badge pass">pass</span>
</div>
<div class="workflow-meta">
<span>22.05s</span>
</div>
</div>
</div>
<div class="workflow-card clickable " onclick="openLightboxByName('fix_self_intersection')">
<img class="workflow-screenshot" src="screenshots/fix_self_intersection_executed.png"
alt="fix_self_intersection" loading="lazy">
<div class="workflow-info">
<div class="workflow-header">
<span class="workflow-name" title="fix_self_intersection">fix_self_intersection</span>
<span class="workflow-badge pass">pass</span>
</div>
<div class="workflow-meta">
<span>13.11s</span>
</div>
</div>
</div>
<div class="workflow-card clickable " onclick="openLightboxByName('mesh_info')">
<img class="workflow-screenshot" src="screenshots/mesh_info_executed.png"
alt="mesh_info" loading="lazy">
<div class="workflow-info">
<div class="workflow-header">
<span class="workflow-name" title="mesh_info">mesh_info</span>
<span class="workflow-badge pass">pass</span>
</div>
<div class="workflow-meta">
<span>13.79s</span>
</div>
</div>
</div>
<div class="workflow-card clickable " onclick="openLightboxByName('mesh_mesh_distance')">
<img class="workflow-screenshot" src="screenshots/mesh_mesh_distance_executed.png"
alt="mesh_mesh_distance" loading="lazy">
<div class="workflow-info">
<div class="workflow-header">
<span class="workflow-name" title="mesh_mesh_distance">mesh_mesh_distance</span>
<span class="workflow-badge pass">pass</span>
</div>
<div class="workflow-meta">
<span>25.40s</span>
</div>
</div>
</div>
<div class="workflow-card clickable " onclick="openLightboxByName('normals')">
<img class="workflow-screenshot" src="screenshots/normals_executed.png"
alt="normals" loading="lazy">
<div class="workflow-info">
<div class="workflow-header">
<span class="workflow-name" title="normals">normals</span>
<span class="workflow-badge pass">pass</span>
</div>
<div class="workflow-meta">
<span>13.31s</span>
</div>
</div>
</div>
<div class="workflow-card clickable " onclick="openLightboxByName('point_mesh_distance')">
<img class="workflow-screenshot" src="screenshots/point_mesh_distance_executed.png"
alt="point_mesh_distance" loading="lazy">
<div class="workflow-info">
<div class="workflow-header">
<span class="workflow-name" title="point_mesh_distance">point_mesh_distance</span>
<span class="workflow-badge pass">pass</span>
</div>
<div class="workflow-meta">
<span>13.17s</span>
</div>
</div>
</div>
<div class="workflow-card clickable " onclick="openLightboxByName('preview_mesh_threejs')">
<img class="workflow-screenshot" src="screenshots/preview_mesh_threejs_executed.png"
alt="preview_mesh_threejs" loading="lazy">
<div class="workflow-info">
<div class="workflow-header">
<span class="workflow-name" title="preview_mesh_threejs">preview_mesh_threejs</span>
<span class="workflow-badge pass">pass</span>
</div>
<div class="workflow-meta">
<span>13.19s</span>
</div>
</div>
</div>
<div class="workflow-card clickable " onclick="openLightboxByName('reconstruct_all')">
<img class="workflow-screenshot" src="screenshots/reconstruct_all_executed.png"
alt="reconstruct_all" loading="lazy">
<div class="workflow-info">
<div class="workflow-header">
<span class="workflow-name" title="reconstruct_all">reconstruct_all</span>
<span class="workflow-badge pass">pass</span>
</div>
<div class="workflow-meta">
<span>16.65s</span>
</div>
</div>
</div>
<div class="workflow-card clickable " onclick="openLightboxByName('refine_mesh')">
<img class="workflow-screenshot" src="screenshots/refine_mesh_executed.png"
alt="refine_mesh" loading="lazy">
<div class="workflow-info">
<div class="workflow-header">
<span class="workflow-name" title="refine_mesh">refine_mesh</span>
<span class="workflow-badge pass">pass</span>
</div>
<div class="workflow-meta">
<span>10.93s</span>
</div>
</div>
</div>
<div class="workflow-card clickable " onclick="openLightboxByName('remesh_intersections')">
<img class="workflow-screenshot" src="screenshots/remesh_intersections_executed.png"
alt="remesh_intersections" loading="lazy">
<div class="workflow-info">
<div class="workflow-header">
<span class="workflow-name" title="remesh_intersections">remesh_intersections</span>
<span class="workflow-badge pass">pass</span>
</div>
<div class="workflow-meta">
<span>20.13s</span>
</div>
</div>
</div>
<div class="workflow-card clickable " onclick="openLightboxByName('remeshing')">
<img class="workflow-screenshot" src="screenshots/remeshing_executed.png"
alt="remeshing" loading="lazy">
<div class="workflow-info">
<div class="workflow-header">
<span class="workflow-name" title="remeshing">remeshing</span>
<span class="workflow-badge pass">pass</span>
</div>
<div class="workflow-meta">
<span>51.76s</span>
</div>
</div>
</div>
<div class="workflow-card clickable " onclick="openLightboxByName('sharpen')">
<img class="workflow-screenshot" src="screenshots/sharpen_executed.png"
alt="sharpen" loading="lazy">
<div class="workflow-info">
<div class="workflow-header">
<span class="workflow-name" title="sharpen">sharpen</span>
<span class="workflow-badge pass">pass</span>
</div>
<div class="workflow-meta">
<span>16.94s</span>
</div>
</div>
</div>
<div class="workflow-card clickable " onclick="openLightboxByName('sharpen_all')">
<img class="workflow-screenshot" src="screenshots/sharpen_all_executed.png"
alt="sharpen_all" loading="lazy">
<div class="workflow-info">
<div class="workflow-header">
<span class="workflow-name" title="sharpen_all">sharpen_all</span>
<span class="workflow-badge pass">pass</span>
</div>
<div class="workflow-meta">
<span>69.05s</span>
</div>
</div>
</div>
<div class="workflow-card clickable " onclick="openLightboxByName('side_by_side_viewer')">
<img class="workflow-screenshot" src="screenshots/side_by_side_viewer_executed.png"
alt="side_by_side_viewer" loading="lazy">
<div class="workflow-info">
<div class="workflow-header">
<span class="workflow-name" title="side_by_side_viewer">side_by_side_viewer</span>
<span class="workflow-badge pass">pass</span>
</div>
<div class="workflow-meta">
<span>14.99s</span>
</div>
</div>
</div>
<div class="workflow-card clickable " onclick="openLightboxByName('skeleton_all')">
<img class="workflow-screenshot" src="screenshots/skeleton_all_executed.png"
alt="skeleton_all" loading="lazy">
<div class="workflow-info">
<div class="workflow-header">
<span class="workflow-name" title="skeleton_all">skeleton_all</span>
<span class="workflow-badge pass">pass</span>
</div>
<div class="workflow-meta">
<span>33.50s</span>
</div>
</div>
</div>
<div class="workflow-card clickable " onclick="openLightboxByName('skeleton_extraction')">
<img class="workflow-screenshot" src="screenshots/skeleton_extraction_executed.png"
alt="skeleton_extraction" loading="lazy">
<div class="workflow-info">
<div class="workflow-header">
<span class="workflow-name" title="skeleton_extraction">skeleton_extraction</span>
<span class="workflow-badge pass">pass</span>
</div>
<div class="workflow-meta">
<span>10.26s</span>
</div>
</div>
</div>
<div class="workflow-card clickable " onclick="openLightboxByName('sMOOth')">
<img class="workflow-screenshot" src="screenshots/sMOOth_executed.png"
alt="sMOOth" loading="lazy">
<div class="workflow-info">
<div class="workflow-header">
<span class="workflow-name" title="sMOOth">sMOOth</span>
<span class="workflow-badge pass">pass</span>
</div>
<div class="workflow-meta">
<span>10.92s</span>
</div>
</div>
</div>
<div class="workflow-card clickable " onclick="openLightboxByName('smooth_all')">
<img class="workflow-screenshot" src="screenshots/smooth_all_executed.png"
alt="smooth_all" loading="lazy">
<div class="workflow-info">
<div class="workflow-header">
<span class="workflow-name" title="smooth_all">smooth_all</span>
<span class="workflow-badge pass">pass</span>
</div>
<div class="workflow-meta">
<span>27.74s</span>
</div>
</div>
</div>
<div class="workflow-card clickable " onclick="openLightboxByName('surface_reconstruction')">
<img class="workflow-screenshot" src="screenshots/surface_reconstruction_executed.png"
alt="surface_reconstruction" loading="lazy">
<div class="workflow-info">
<div class="workflow-header">
<span class="workflow-name" title="surface_reconstruction">surface_reconstruction</span>
<span class="workflow-badge pass">pass</span>
</div>
<div class="workflow-meta">
<span>13.37s</span>
</div>
</div>
</div>
<div class="workflow-card clickable failed" onclick="openLightboxByName('test_loading')">
<div class="workflow-screenshot placeholder">No screenshot</div>
<div class="workflow-info">
<div class="workflow-header">
<span class="workflow-name" title="test_loading">test_loading</span>
<span class="workflow-badge fail">fail</span>
</div>
<div class="workflow-meta">
<span>6.32s</span>
</div>
</div>
</div>
<div class="workflow-card clickable " onclick="openLightboxByName('transform')">
<img class="workflow-screenshot" src="screenshots/transform_executed.png"
alt="transform" loading="lazy">
<div class="workflow-info">
<div class="workflow-header">
<span class="workflow-name" title="transform">transform</span>
<span class="workflow-badge pass">pass</span>
</div>
<div class="workflow-meta">
<span>9.33s</span>
</div>
</div>
</div>
<div class="workflow-card clickable " onclick="openLightboxByName('uv_unwrap')">
<img class="workflow-screenshot" src="screenshots/uv_unwrap_executed.png"
alt="uv_unwrap" loading="lazy">
<div class="workflow-info">
<div class="workflow-header">
<span class="workflow-name" title="uv_unwrap">uv_unwrap</span>
<span class="workflow-badge pass">pass</span>
</div>
<div class="workflow-meta">
<span>15.53s</span>
</div>
</div>
</div>
<div class="workflow-card clickable " onclick="openLightboxByName('view_texture')">
<img class="workflow-screenshot" src="screenshots/view_texture_executed.png"
alt="view_texture" loading="lazy">
<div class="workflow-info">
<div class="workflow-header">
<span class="workflow-name" title="view_texture">view_texture</span>
<span class="workflow-badge pass">pass</span>
</div>
<div class="workflow-meta">
<span>13.54s</span>
</div>
</div>
</div>
</div>
<div class="failed-section">
<h2>Failed Tests</h2>
<div class="failed-item">
<div class="failed-header">
<span class="failed-name">boolean_ops_all</span>
<span class="failed-duration">8.14s</span>
</div>
<div class="failed-error">Workflow execution failed: {&#x27;prompt_id&#x27;: &#x27;74fc7a9c-708c-4797-a802-97b955406fc4&#x27;, &#x27;node_id&#x27;: &#x27;4&#x27;, &#x27;node_type&#x27;: &#x27;GeomPackBoolean&#x27;, &#x27;executed&#x27;: [&#x27;2&#x27;, &#x27;3&#x27;, &#x27;1&#x27;, &#x27;.0.6.1&#x27;], &#x27;exception_message&#x27;: &#x27;DLL load failed while importing bpy: The specified procedure could not be found.\n\nWorker traceback:\nTraceback (most recent call last):\n File &quot;C:\\Users\\stduser\\AppData\\Local\\Temp\\comfyui_pvenv_gdpr6wpb\\persistent_worker.py&quot;, line 1762, in main\n result = method(**inputs)\n File &quot;D:\\a\\comfy-gpu-ci\\comfy-gpu-ci\\test_workspaces\\GeometryPack-1945\\portable-comfyui\\ComfyUI_windows_portable\\ComfyUI\\comfy_api\\latest\\_io.py&quot;, line 1833, in EXECUTE_NORMALIZED\n to_return = cls.execute(*args, **kwargs)\n File &quot;D:\\a\\comfy-gpu-ci\\comfy-gpu-ci\\test_workspaces\\GeometryPack-1945\\portable-comfyui\\ComfyUI_windows_portable\\ComfyUI\\custom_nodes\\ComfyUI-GeometryPack\\nodes\\blender_boolean\\boolean.py&quot;, line 102, in execute\n result_data = _bpy_boolean_operation(\n vertices_a=np.asarray(mesh_a.vertices, dtype=np.float32),\n ...&lt;3 lines&gt;...\n operation=blender_op\n )\n File &quot;D:\\a\\comfy-gpu-ci\\comfy-gpu-ci\\test_workspaces\\GeometryPack-1945\\portable-comfyui\\ComfyUI_windows_portable\\ComfyUI\\custom_nodes\\ComfyUI-GeometryPack\\nodes\\blender_boolean\\boolean.py&quot;, line 17, in _bpy_boolean_operation\n import bpy\nImportError: DLL load failed while importing bpy: The specified procedure could not be found.\n\n&#x27;, &#x27;exception_type&#x27;: &#x27;comfy_env.isolation.workers.base.WorkerError&#x27;, &#x27;traceback&#x27;: [&#x27; File &quot;D:\\a\\comfy-gpu-ci\\comfy-gpu-ci\\test_workspaces\\GeometryPack-1945\\portable-comfyui\\ComfyUI_windows_portable\\ComfyUI\\execution.py&quot;, line 535, in execute\n output_data, output_ui, has_subgraph, has_pending_tasks = await get_output_data(prompt_id, unique_id, obj, input_data_all, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n&#x27;, &#x27; File &quot;D:\\a\\comfy-gpu-ci\\comfy-gpu-ci\\test_workspaces\\GeometryPack-1945\\portable-comfyui\\ComfyUI_windows_portable\\ComfyUI\\execution.py&quot;, line 335, in get_output_data\n return_values = await _async_map_node_over_list(prompt_id, unique_id, obj, input_data_all, obj.FUNCTION, allow_interrupt=True, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n&#x27;, &#x27; File &quot;D:\\a\\comfy-gpu-ci\\comfy-gpu-ci\\test_workspaces\\GeometryPack-1945\\portable-comfyui\\ComfyUI_windows_portable\\ComfyUI\\execution.py&quot;, line 309, in _async_map_node_over_list\n await process_inputs(input_dict, i)\n&#x27;, &#x27; File &quot;D:\\a\\comfy-gpu-ci\\comfy-gpu-ci\\test_workspaces\\GeometryPack-1945\\portable-comfyui\\ComfyUI_windows_portable\\ComfyUI\\execution.py&quot;, line 297, in process_inputs\n result = f(**inputs)\n&#x27;, &#x27; File &quot;D:\\a\\comfy-gpu-ci\\comfy-gpu-ci\\test_workspaces\\GeometryPack-1945\\portable-comfyui\\ComfyUI_windows_portable\\python_embeded\\Lib\\site-packages\\comfy_env\\isolation\\metadata.py&quot;, line 556, in proxy\n result = worker.call_method(\n module_name=mod,\n ...&lt;4 lines&gt;...\n timeout=600.0,\n )\n&#x27;, &#x27; File &quot;D:\\a\\comfy-gpu-ci\\comfy-gpu-ci\\test_workspaces\\GeometryPack-1945\\portable-comfyui\\ComfyUI_windows_portable\\python_embeded\\Lib\\site-packages\\comfy_env\\isolation\\workers\\subprocess.py&quot;, line 674, in call_method\n raise WorkerError(\n ...&lt;2 lines&gt;...\n )\n&#x27;], &#x27;current_inputs&#x27;: {&#x27;mesh_a&#x27;: [&#x27;&lt;trimesh.Trimesh(vertices.shape=(2562, 3), faces.shape=(5120, 3))&gt;&#x27;], &#x27;mesh_b&#x27;: [&#x27;&lt;trimesh.Trimesh(vertices.shape=(8, 3), faces.shape=(12, 3))&gt;&#x27;], &#x27;operation&#x27;: [&#x27;difference&#x27;], &#x27;prompt&#x27;: [&#x27;{\&#x27;1\&#x27;: {\&#x27;inputs\&#x27;: {\&#x27;shape\&#x27;: \&#x27;sphere\&#x27;, \&#x27;size\&#x27;: 1.0, \&#x27;subdivisions\&#x27;: 4}, \&#x27;class_type\&#x27;: \&#x27;GeomPackCreatePrimitive\&#x27;, \&#x27;_meta\&#x27;: {\&#x27;title\&#x27;: \&#x27;Create Primitive\&#x27;}}, \&#x27;2\&#x27;: {\&#x27;inputs\&#x27;: {\&#x27;shape\&#x27;: \&#x27;cube\&#x27;, \&#x27;size\&#x27;: 0.8, \&#x27;subdivisions\&#x27;: 1}, \&#x27;class_type\&#x27;: \&#x27;GeomPackCreatePrimitive\&#x27;, \&#x27;_meta\&#x27;: {\&#x27;title\&#x27;: \&#x27;Create Primitive\&#x27;}}, \&#x27;3\&#x27;: {\&#x27;inputs\&#x27;: {\&#x27;operation\&#x27;: \&#x27;difference\&#x27;, \&#x27;backend\&#x27;: \&#x27;libigl_cgal\&#x27;, \&#x27;mesh_a\&#x27;: [\&#x27;1\&#x27;, 0], \&#x27;mesh_b\&#x27;: [\&#x27;2\&#x27;, 0]}, \&#x27;class_type\&#x27;: \&#x27;GeomPackBoolean\&#x27;, \&#x27;_meta\&#x27;: {\&#x27;title\&#x27;: \&#x27;Boolean Operations\&#x27;}}, \&#x27;4\&#x27;: {\&#x27;inputs\&#x27;: {\&#x27;operation\&#x27;: \&#x27;difference\&#x27;, \&#x27;backend\&#x27;: \&#x27;blender_exact\&#x27;, \&#x27;mesh_a\&#x27;: [\&#x27;1\&#x27;, 0], \&#x27;mesh_b\&#x27;: [\&#x27;2\&#x27;, 0]}, \&#x27;class_type\&#x27;: \&#x27;GeomPackBoolean\&#x27;, \&#x27;_meta\&#x27;: {\&#x27;title\&#x27;: \&#x27;Boolean Operations\&#x27;}}, \&#x27;5\&#x27;: {\&#x27;inputs\&#x27;: {\&#x27;mode\&#x27;: \&#x27;fields\&#x27;, \&#x27;preview_multi\&#x27;: \&#x27;{&quot;show_edges&quot;:true,&quot;camera_state&quot;:&quot;{\\\\&quot;position\\\\&quot;:[1.2245775204403364,1.2245775204403364,1.2245775204403364],\\\\&quot;focalPoint\\\\&quot;:[0,0,0],\\\\&quot;viewUp\\\\&quot;:[0,0,1]}&quot;,&quot;selected_field&quot;:&quot;&quot;,&quot;selected_channel&quot;:&quot;magnitude&quot;,&quot;selected_colormap&quot;:&quot;erdc_rainbow_bright&quot;}\&#x27;, \&#x27;mesh_1\&#x27;: [\&#x27;3\&#x27;, 0], \&#x27;mesh_2\&#x27;: [\&#x27;4\&#x27;, 0]}, \&#x27;class_type\&#x27;: \&#x27;GeomPackPreviewMeshMulti\&#x27;, \&#x27;_meta\&#x27;: {\&#x27;title\&#x27;: \&#x27;Preview Mesh Multi\&#x27;}}}&#x27;], &#x27;extra_pnginfo&#x27;: [&#x27;{\&#x27;workflow\&#x27;: {\&#x27;id\&#x27;: \&#x27;test-boolean-all-0001\&#x27;, \&#x27;revision\&#x27;: 0, \&#x27;last_node_id\&#x27;: 6, \&#x27;last_link_id\&#x27;: 8, \&#x27;nodes\&#x27;: [{\&#x27;id\&#x27;: 2, \&#x27;type\&#x27;: \&#x27;GeomPackCreatePrimitive\&#x27;, \&#x27;pos\&#x27;: [-600, 100], \&#x27;size\&#x27;: [270, 170.65625], \&#x27;flags\&#x27;: {}, \&#x27;order\&#x27;: 0, \&#x27;mode\&#x27;: 0, \&#x27;inputs\&#x27;: [], \&#x27;outputs\&#x27;: [{\&#x27;name\&#x27;: \&#x27;mesh\&#x27;, \&#x27;type\&#x27;: \&#x27;TRIMESH\&#x27;, \&#x27;links\&#x27;: [2, 4]}], \&#x27;properties\&#x27;: {\&#x27;Node name for S&amp;R\&#x27;: \&#x27;GeomPackCreatePrimitive\&#x27;, \&#x27;cnr_id\&#x27;: \&#x27;comfyui-geometrypack\&#x27;, \&#x27;ver\&#x27;: \&#x27;224d843d5a35546212d1fb7babe30efabdf2116c\&#x27;}, \&#x27;widgets_values\&#x27;: [\&#x27;cube\&#x27;, 0.8, 1]}, {\&#x27;id\&#x27;: 3, \&#x27;type\&#x27;: \&#x27;GeomPackBoolean\&#x27;, \&#x27;pos\&#x27;: [-200, -200], \&#x27;size\&#x27;: [370, 165.3125], \&#x27;flags\&#x27;: {}, \&#x27;order\&#x27;: 2, \&#x27;mode\&#x27;: 0, \&#x27;inputs\&#x27;: [{\&#x27;name\&#x27;: \&#x27;mesh_a\&#x27;, \&#x27;type\&#x27;: \&#x27;TRIMESH\&#x27;, \&#x27;link\&#x27;: 1}, {\&#x27;name\&#x27;: \&#x27;mesh_b\&#x27;, \&#x27;type\&#x27;: \&#x27;TRIMESH\&#x27;, \&#x27;link\&#x27;: 2}], \&#x27;outputs\&#x27;: [{\&#x27;name\&#x27;: \&#x27;result_mesh\&#x27;, \&#x27;type\&#x27;: \&#x27;TRIMESH\&#x27;, \&#x27;links\&#x27;: [5]}, {\&#x27;name\&#x27;: \&#x27;info\&#x27;, \&#x27;type\&#x27;: \&#x27;STRING\&#x27;, \&#x27;links\&#x27;: None}], \&#x27;properties\&#x27;: {\&#x27;Node name for S&amp;R\&#x27;: \&#x27;GeomPackBoolean\&#x27;, \&#x27;cnr_id\&#x27;: \&#x27;comfyui-geometrypack\&#x27;, \&#x27;ver\&#x27;: \&#x27;224d843d5a35546212d1fb7babe30efabdf2116c\&#x27;}, \&#x27;widgets_values\&#x27;: [\&#x27;difference\&#x27;, \&#x27;libigl_cgal\&#x27;]}, {\&#x27;id\&#x27;: 4, \&#x27;type\&#x27;: \&#x27;GeomPackBoolean\&#x27;, \&#x27;pos\&#x27;: [-200, 100], \&#x27;size\&#x27;: [370, 165.3125], \&#x27;flags\&#x27;: {}, \&#x27;order\&#x27;: 3, \&#x27;mode\&#x27;: 0, \&#x27;inputs\&#x27;: [{\&#x27;name\&#x27;: \&#x27;mesh_a\&#x27;, \&#x27;type\&#x27;: \&#x27;TRIMESH\&#x27;, \&#x27;link\&#x27;: 3}, {\&#x27;name\&#x27;: \&#x27;mesh_b\&#x27;, \&#x27;type\&#x27;: \&#x27;TRIMESH\&#x27;, \&#x27;link\&#x27;: 4}], \&#x27;outputs\&#x27;: [{\&#x27;name\&#x27;: \&#x27;result_mesh\&#x27;, \&#x27;type\&#x27;: \&#x27;TRIMESH\&#x27;, \&#x27;links\&#x27;: [6]}, {\&#x27;name\&#x27;: \&#x27;info\&#x27;, \&#x27;type\&#x27;: \&#x27;STRING\&#x27;, \&#x27;links\&#x27;: None}], \&#x27;properties\&#x27;: {\&#x27;Node name for S&amp;R\&#x27;: \&#x27;GeomPackBoolean\&#x27;, \&#x27;cnr_id\&#x27;: \&#x27;comfyui-geometrypack\&#x27;, \&#x27;ver\&#x27;: \&#x27;224d843d5a35546212d1fb7babe30efabdf2116c\&#x27;}, \&#x27;widgets_values\&#x27;: [\&#x27;difference\&#x27;, \&#x27;blender_exact\&#x27;]}, {\&#x27;id\&#x27;: 5, \&#x27;type\&#x27;: \&#x27;GeomPackPreviewMeshMulti\&#x27;, \&#x27;pos\&#x27;: [213.07101477171835, -194.17306733063847], \&#x27;size\&#x27;: [768, 702], \&#x27;flags\&#x27;: {}, \&#x27;order\&#x27;: 4, \&#x27;mode\&#x27;: 0, \&#x27;inputs\&#x27;: [{\&#x27;name\&#x27;: \&#x27;mesh_1\&#x27;, \&#x27;type\&#x27;: \&#x27;TRIMESH\&#x27;, \&#x27;link\&#x27;: 5}, {\&#x27;name\&#x27;: \&#x27;mesh_2\&#x27;, \&#x27;shape\&#x27;: 7, \&#x27;type\&#x27;: \&#x27;TRIMESH\&#x27;, \&#x27;link\&#x27;: 6}, {\&#x27;name\&#x27;: \&#x27;mesh_3\&#x27;, \&#x27;shape\&#x27;: 7, \&#x27;type\&#x27;: \&#x27;TRIMESH\&#x27;, \&#x27;link\&#x27;: None}, {\&#x27;name\&#x27;: \&#x27;mesh_4\&#x27;, \&#x27;shape\&#x27;: 7, \&#x27;type\&#x27;: \&#x27;TRIMESH\&#x27;, \&#x27;link\&#x27;: None}], \&#x27;outputs\&#x27;: [], \&#x27;properties\&#x27;: {\&#x27;Node name for S&amp;R\&#x27;: \&#x27;GeomPackPreviewMeshMulti\&#x27;, \&#x27;cnr_id\&#x27;: \&#x27;comfyui-geometrypack\&#x27;, \&#x27;ver\&#x27;: \&#x27;224d843d5a35546212d1fb7babe30efabdf2116c\&#x27;}, \&#x27;widgets_values\&#x27;: [\&#x27;fields\&#x27;, \&#x27;{&quot;show_edges&quot;:true,&quot;camera_state&quot;:&quot;{\\\\&quot;position\\\\&quot;:[1.2245775204403364,1.2245775204403364,1.2245775204403364],\\\\&quot;focalPoint\\\\&quot;:[0,0,0],\\\\&quot;viewUp\\\\&quot;:[0,0,1]}&quot;,&quot;selected_field&quot;:&quot;&quot;,&quot;selected_channel&quot;:&quot;magnitude&quot;,&quot;selected_colormap&quot;:&quot;erdc_rainbow_bright&quot;}\&#x27;]}, {\&#x27;id\&#x27;: 1, \&#x27;type\&#x27;: \&#x27;GeomPackCreatePrimitive\&#x27;, \&#x27;pos\&#x27;: [-600, -200], \&#x27;size\&#x27;: [270, 170.65625], \&#x27;flags\&#x27;: {}, \&#x27;order\&#x27;: 1, \&#x27;mode\&#x27;: 0, \&#x27;inputs\&#x27;: [], \&#x27;outputs\&#x27;: [{\&#x27;name\&#x27;: \&#x27;mesh\&#x27;, \&#x27;type\&#x27;: \&#x27;TRIMESH\&#x27;, \&#x27;links\&#x27;: [1, 3]}], \&#x27;properties\&#x27;: {\&#x27;Node name for S&amp;R\&#x27;: \&#x27;GeomPackCreatePrimitive\&#x27;, \&#x27;cnr_id\&#x27;: \&#x27;comfyui-geometrypack\&#x27;, \&#x27;ver\&#x27;: \&#x27;224d843d5a35546212d1fb7babe30efabdf2116c\&#x27;}, \&#x27;widgets_values\&#x27;: [\&#x27;sphere\&#x27;, 1, 4]}], \&#x27;links\&#x27;: [[1, 1, 0, 3, 0, \&#x27;TRIMESH\&#x27;], [2, 2, 0, 3, 1, \&#x27;TRIMESH\&#x27;], [3, 1, 0, 4, 0, \&#x27;TRIMESH\&#x27;], [4, 2, 0, 4, 1, \&#x27;TRIMESH\&#x27;], [5, 3, 0, 5, 0, \&#x27;TRIMESH\&#x27;], [6, 4, 0, 5, 1, \&#x27;TRIMESH\&#x27;]], \&#x27;groups\&#x27;: [], \&#x27;config\&#x27;: {}, \&#x27;extra\&#x27;: {\&#x27;ds\&#x27;: {\&#x27;scale\&#x27;: 0.8719083213796316, \&#x27;offset\&#x27;: [536.4213213855968, 421.65866536973317]}, \&#x27;frontendVersion\&#x27;: \&#x27;1.43.18\&#x27;, \&#x27;workflowRendererVersion\&#x27;: \&#x27;LG\&#x27;}, \&#x27;version\&#x27;: 0.4}}&#x27;]}, &#x27;current_outputs&#x27;: [&#x27;5&#x27;, &#x27;4&#x27;, &#x27;1&#x27;, &#x27;2&#x27;, &#x27;3&#x27;], &#x27;timestamp&#x27;: 1778961486793}
Details:
Workflow: C:\Users\stduser\AppData\Local\Temp\comfy-test-run-55pnstfx\ComfyUI-GeometryPack\workflows\boolean_ops_all.json
Node error: GeomPackBoolean</div>
</div>
<div class="failed-item">
<div class="failed-header">
<span class="failed-name">test_loading</span>
<span class="failed-duration">6.32s</span>
</div>
<div class="failed-error">Workflow execution failed: {&#x27;prompt_id&#x27;: &#x27;7420c75d-5e27-4e33-b7ea-6e975c7ff3c6&#x27;, &#x27;node_id&#x27;: &#x27;2&#x27;, &#x27;node_type&#x27;: &#x27;GeomPackLoadMeshFBX&#x27;, &#x27;executed&#x27;: [], &#x27;exception_message&#x27;: &#x27;Failed to load FBX file: DLL load failed while importing bpy: The specified procedure could not be found.\n\nWorker traceback:\nTraceback (most recent call last):\n File &quot;D:\\a\\comfy-gpu-ci\\comfy-gpu-ci\\test_workspaces\\GeometryPack-1945\\portable-comfyui\\ComfyUI_windows_portable\\ComfyUI\\custom_nodes\\ComfyUI-GeometryPack\\nodes\\blender_io\\load_mesh_fbx.py&quot;, line 197, in execute\n result = _bpy_import_fbx(full_path)\n File &quot;D:\\a\\comfy-gpu-ci\\comfy-gpu-ci\\test_workspaces\\GeometryPack-1945\\portable-comfyui\\ComfyUI_windows_portable\\ComfyUI\\custom_nodes\\ComfyUI-GeometryPack\\nodes\\blender_io\\load_mesh_fbx.py&quot;, line 31, in _bpy_import_fbx\n import bpy\nImportError: DLL load failed while importing bpy: The specified procedure could not be found.\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File &quot;C:\\Users\\stduser\\AppData\\Local\\Temp\\comfyui_pvenv_gdpr6wpb\\persistent_worker.py&quot;, line 1762, in main\n result = method(**inputs)\n File &quot;D:\\a\\comfy-gpu-ci\\comfy-gpu-ci\\test_workspaces\\GeometryPack-1945\\portable-comfyui\\ComfyUI_windows_portable\\ComfyUI\\comfy_api\\latest\\_io.py&quot;, line 1833, in EXECUTE_NORMALIZED\n to_return = cls.execute(*args, **kwargs)\n File &quot;D:\\a\\comfy-gpu-ci\\comfy-gpu-ci\\test_workspaces\\GeometryPack-1945\\portable-comfyui\\ComfyUI_windows_portable\\ComfyUI\\custom_nodes\\ComfyUI-GeometryPack\\nodes\\blender_io\\load_mesh_fbx.py&quot;, line 199, in execute\n raise ValueError(f&quot;Failed to load FBX file: {e}&quot;)\nValueError: Failed to load FBX file: DLL load failed while importing bpy: The specified procedure could not be found.\n\n&#x27;, &#x27;exception_type&#x27;: &#x27;comfy_env.isolation.workers.base.WorkerError&#x27;, &#x27;traceback&#x27;: [&#x27; File &quot;D:\\a\\comfy-gpu-ci\\comfy-gpu-ci\\test_workspaces\\GeometryPack-1945\\portable-comfyui\\ComfyUI_windows_portable\\ComfyUI\\execution.py&quot;, line 535, in execute\n output_data, output_ui, has_subgraph, has_pending_tasks = await get_output_data(prompt_id, unique_id, obj, input_data_all, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n&#x27;, &#x27; File &quot;D:\\a\\comfy-gpu-ci\\comfy-gpu-ci\\test_workspaces\\GeometryPack-1945\\portable-comfyui\\ComfyUI_windows_portable\\ComfyUI\\execution.py&quot;, line 335, in get_output_data\n return_values = await _async_map_node_over_list(prompt_id, unique_id, obj, input_data_all, obj.FUNCTION, allow_interrupt=True, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n&#x27;, &#x27; File &quot;D:\\a\\comfy-gpu-ci\\comfy-gpu-ci\\test_workspaces\\GeometryPack-1945\\portable-comfyui\\ComfyUI_windows_portable\\ComfyUI\\execution.py&quot;, line 309, in _async_map_node_over_list\n await process_inputs(input_dict, i)\n&#x27;, &#x27; File &quot;D:\\a\\comfy-gpu-ci\\comfy-gpu-ci\\test_workspaces\\GeometryPack-1945\\portable-comfyui\\ComfyUI_windows_portable\\ComfyUI\\execution.py&quot;, line 297, in process_inputs\n result = f(**inputs)\n&#x27;, &#x27; File &quot;D:\\a\\comfy-gpu-ci\\comfy-gpu-ci\\test_workspaces\\GeometryPack-1945\\portable-comfyui\\ComfyUI_windows_portable\\python_embeded\\Lib\\site-packages\\comfy_env\\isolation\\metadata.py&quot;, line 556, in proxy\n result = worker.call_method(\n module_name=mod,\n ...&lt;4 lines&gt;...\n timeout=600.0,\n )\n&#x27;, &#x27; File &quot;D:\\a\\comfy-gpu-ci\\comfy-gpu-ci\\test_workspaces\\GeometryPack-1945\\portable-comfyui\\ComfyUI_windows_portable\\python_embeded\\Lib\\site-packages\\comfy_env\\isolation\\workers\\subprocess.py&quot;, line 674, in call_method\n raise WorkerError(\n ...&lt;2 lines&gt;...\n )\n&#x27;], &#x27;current_inputs&#x27;: {&#x27;file_path&#x27;: [&#x27;3d/rigged_human.fbx&#x27;], &#x27;prompt&#x27;: [&#x27;{\&#x27;1\&#x27;: {\&#x27;inputs\&#x27;: {\&#x27;file_path\&#x27;: \&#x27;3d/coca_cola.blend\&#x27;, \&#x27;report_panel\&#x27;: \&#x27;false\&#x27;}, \&#x27;class_type\&#x27;: \&#x27;GeomPackLoadMeshBlend\&#x27;, \&#x27;_meta\&#x27;: {\&#x27;title\&#x27;: \&#x27;Load Mesh (Blender)\&#x27;}}, \&#x27;2\&#x27;: {\&#x27;inputs\&#x27;: {\&#x27;file_path\&#x27;: \&#x27;3d/rigged_human.fbx\&#x27;, \&#x27;report_panel\&#x27;: \&#x27;false\&#x27;}, \&#x27;class_type\&#x27;: \&#x27;GeomPackLoadMeshFBX\&#x27;, \&#x27;_meta\&#x27;: {\&#x27;title\&#x27;: \&#x27;Load Mesh (FBX)\&#x27;}}, \&#x27;3\&#x27;: {\&#x27;inputs\&#x27;: {\&#x27;layout\&#x27;: \&#x27;side_by_side\&#x27;, \&#x27;mode\&#x27;: \&#x27;fields\&#x27;, \&#x27;opacity_1\&#x27;: 1.0, \&#x27;opacity_2\&#x27;: 1.0, \&#x27;preview_dual\&#x27;: \&#x27;{&quot;show_edges&quot;:false,&quot;camera_state&quot;:&quot;&quot;,&quot;selected_field&quot;:&quot;&quot;,&quot;selected_channel&quot;:&quot;magnitude&quot;,&quot;selected_colormap&quot;:&quot;erdc_rainbow_bright&quot;}\&#x27;, \&#x27;mesh_1\&#x27;: [\&#x27;1\&#x27;, 0], \&#x27;mesh_2\&#x27;: [\&#x27;2\&#x27;, 0]}, \&#x27;class_type\&#x27;: \&#x27;GeomPackPreviewMeshDual\&#x27;, \&#x27;_meta\&#x27;: {\&#x27;title\&#x27;: \&#x27;Preview Mesh Dual\&#x27;}}}&#x27;], &#x27;extra_pnginfo&#x27;: [&#x27;{\&#x27;workflow\&#x27;: {\&#x27;id\&#x27;: \&#x27;t8e9d0c1-2b3a-4567-890b-cdef12345678\&#x27;, \&#x27;revision\&#x27;: 0, \&#x27;last_node_id\&#x27;: 3, \&#x27;last_link_id\&#x27;: 2, \&#x27;nodes\&#x27;: [{\&#x27;id\&#x27;: 1, \&#x27;type\&#x27;: \&#x27;GeomPackLoadMeshBlend\&#x27;, \&#x27;pos\&#x27;: [-500, -100], \&#x27;size\&#x27;: [270, 156.359375], \&#x27;flags\&#x27;: {}, \&#x27;order\&#x27;: 0, \&#x27;mode\&#x27;: 0, \&#x27;inputs\&#x27;: [], \&#x27;outputs\&#x27;: [{\&#x27;name\&#x27;: \&#x27;mesh\&#x27;, \&#x27;type\&#x27;: \&#x27;TRIMESH\&#x27;, \&#x27;links\&#x27;: [1]}, {\&#x27;name\&#x27;: \&#x27;info\&#x27;, \&#x27;type\&#x27;: \&#x27;STRING\&#x27;, \&#x27;links\&#x27;: None}], \&#x27;properties\&#x27;: {\&#x27;Node name for S&amp;R\&#x27;: \&#x27;GeomPackLoadMeshBlend\&#x27;, \&#x27;aux_id\&#x27;: \&#x27;PozzettiAndrea/ComfyUI-GeometryPack\&#x27;, \&#x27;ver\&#x27;: \&#x27;0.1.1\&#x27;, \&#x27;cnr_id\&#x27;: \&#x27;comfyui-geometrypack\&#x27;}, \&#x27;widgets_values\&#x27;: [\&#x27;3d/coca_cola.blend\&#x27;, \&#x27;false\&#x27;]}, {\&#x27;id\&#x27;: 2, \&#x27;type\&#x27;: \&#x27;GeomPackLoadMeshFBX\&#x27;, \&#x27;pos\&#x27;: [-500, 100], \&#x27;size\&#x27;: [270, 156.359375], \&#x27;flags\&#x27;: {}, \&#x27;order\&#x27;: 1, \&#x27;mode\&#x27;: 0, \&#x27;inputs\&#x27;: [], \&#x27;outputs\&#x27;: [{\&#x27;name\&#x27;: \&#x27;mesh\&#x27;, \&#x27;type\&#x27;: \&#x27;TRIMESH\&#x27;, \&#x27;links\&#x27;: [2]}, {\&#x27;name\&#x27;: \&#x27;info\&#x27;, \&#x27;type\&#x27;: \&#x27;STRING\&#x27;, \&#x27;links\&#x27;: None}], \&#x27;properties\&#x27;: {\&#x27;Node name for S&amp;R\&#x27;: \&#x27;GeomPackLoadMeshFBX\&#x27;, \&#x27;aux_id\&#x27;: \&#x27;PozzettiAndrea/ComfyUI-GeometryPack\&#x27;, \&#x27;ver\&#x27;: \&#x27;0.1.1\&#x27;, \&#x27;cnr_id\&#x27;: \&#x27;comfyui-geometrypack\&#x27;}, \&#x27;widgets_values\&#x27;: [\&#x27;3d/rigged_human.fbx\&#x27;, \&#x27;false\&#x27;]}, {\&#x27;id\&#x27;: 3, \&#x27;type\&#x27;: \&#x27;GeomPackPreviewMeshDual\&#x27;, \&#x27;pos\&#x27;: [100, -50], \&#x27;size\&#x27;: [768, 834], \&#x27;flags\&#x27;: {}, \&#x27;order\&#x27;: 2, \&#x27;mode\&#x27;: 0, \&#x27;inputs\&#x27;: [{\&#x27;name\&#x27;: \&#x27;mesh_1\&#x27;, \&#x27;type\&#x27;: \&#x27;TRIMESH\&#x27;, \&#x27;link\&#x27;: 1}, {\&#x27;name\&#x27;: \&#x27;mesh_2\&#x27;, \&#x27;type\&#x27;: \&#x27;TRIMESH\&#x27;, \&#x27;link\&#x27;: 2}], \&#x27;outputs\&#x27;: [], \&#x27;properties\&#x27;: {\&#x27;Node name for S&amp;R\&#x27;: \&#x27;GeomPackPreviewMeshDual\&#x27;, \&#x27;aux_id\&#x27;: \&#x27;PozzettiAndrea/ComfyUI-GeometryPack\&#x27;, \&#x27;ver\&#x27;: \&#x27;0.1.1\&#x27;, \&#x27;cnr_id\&#x27;: \&#x27;comfyui-geometrypack\&#x27;}, \&#x27;widgets_values\&#x27;: [\&#x27;side_by_side\&#x27;, \&#x27;fields\&#x27;, 1, 1, \&#x27;{&quot;show_edges&quot;:false,&quot;camera_state&quot;:&quot;&quot;,&quot;selected_field&quot;:&quot;&quot;,&quot;selected_channel&quot;:&quot;magnitude&quot;,&quot;selected_colormap&quot;:&quot;erdc_rainbow_bright&quot;}\&#x27;]}], \&#x27;links\&#x27;: [[1, 1, 0, 3, 0, \&#x27;TRIMESH\&#x27;], [2, 2, 0, 3, 1, \&#x27;TRIMESH\&#x27;]], \&#x27;groups\&#x27;: [], \&#x27;config\&#x27;: {}, \&#x27;extra\&#x27;: {\&#x27;ds\&#x27;: {\&#x27;scale\&#x27;: 1, \&#x27;offset\&#x27;: [600, 300]}, \&#x27;frontendVersion\&#x27;: \&#x27;1.43.18\&#x27;, \&#x27;workflowRendererVersion\&#x27;: \&#x27;LG\&#x27;}, \&#x27;version\&#x27;: 0.4}}&#x27;]}, &#x27;current_outputs&#x27;: [&#x27;2&#x27;, &#x27;3&#x27;, &#x27;1&#x27;], &#x27;timestamp&#x27;: 1778962006336}
Details:
Workflow: C:\Users\stduser\AppData\Local\Temp\comfy-test-run-55pnstfx\ComfyUI-GeometryPack\workflows\test_loading.json
Node error: GeomPackLoadMeshFBX</div>
</div>
</div>
<div class="models-section">
<div class="section-header">
<h2 class="section-title">Downloaded Models</h2>
<span class="models-total">8 files &middot; 18.7 MB</span>
</div>
<details class="models-folder" open>
<summary class="models-folder-header">
<span class="models-folder-name">models/vae_approx/</span>
<span class="models-folder-meta">
<span class="models-folder-size">18.7 MB</span>
</span>
</summary>
<div class="models-file-list">
<div class="models-file"><span class="models-file-path">taef1_encoder.safetensors</span><span class="models-file-size">2.4 MB</span></div>
<div class="models-file"><span class="models-file-path">taesd3_encoder.safetensors</span><span class="models-file-size">2.4 MB</span></div>
<div class="models-file"><span class="models-file-path">taef1_decoder.safetensors</span><span class="models-file-size">2.4 MB</span></div>
<div class="models-file"><span class="models-file-path">taesd3_decoder.safetensors</span><span class="models-file-size">2.4 MB</span></div>
<div class="models-file"><span class="models-file-path">taesdxl_decoder.safetensors</span><span class="models-file-size">2.3 MB</span></div>
<div class="models-file"><span class="models-file-path">taesd_decoder.safetensors</span><span class="models-file-size">2.3 MB</span></div>
<div class="models-file"><span class="models-file-path">taesdxl_encoder.safetensors</span><span class="models-file-size">2.3 MB</span></div>
<div class="models-file"><span class="models-file-path">taesd_encoder.safetensors</span><span class="models-file-size">2.3 MB</span></div>
</div>
</details>
</div>
</div>
<div class="lightbox" id="lightbox">
<button class="lightbox-close" onclick="closeLightbox()">&times;</button>
<button class="lightbox-nav lightbox-nav-left" onclick="navigateLightbox(-1)">&#8249;</button>
<button class="lightbox-nav lightbox-nav-right" onclick="navigateLightbox(1)">&#8250;</button>
<div class="lightbox-content">
<img id="lightbox-img" src="" alt="">
<video id="lightbox-video" controls preload="metadata" style="display:none; max-width:90vw; max-height:80vh; background:#000;"></video>
<div class="video-player" id="video-player">
<div class="video-slider-container">
<div id="video-slider"></div>
</div>
<div class="video-controls">
<span class="video-frame-counter" id="video-frame-counter">0.0s / 0.0s</span>
</div>
</div>
<div class="resource-graph" id="resource-graph">
<div class="resource-graph-title">Resource Usage</div>
<canvas id="resource-canvas"></canvas>
<div class="resource-legend">
<span><span class="dot ram"></span> RAM (GB)</span>
<span id="gpu-legend" style="display:none"><span class="dot gpu"></span> VRAM (GB)</span>
</div>
</div>
<div class="lightbox-info">
<div>
<span class="lightbox-title" id="lightbox-title"></span>
<span class="lightbox-hardware" id="lightbox-hardware"></span>
</div>
<div class="lightbox-meta">
<span class="lightbox-badge" id="lightbox-badge"></span>
<span class="lightbox-duration" id="lightbox-duration"></span>
</div>
</div>
<pre class="lightbox-log" id="lightbox-log"></pre>
</div>
</div>
<div class="img-overlay" id="img-overlay">
<img id="img-overlay-content" src="" alt="">
</div>
<footer>
Generated by <a href="https://github.com/PozzettiAndrea/comfy-test">comfy-test</a>
</footer>
<script>
function setView(mode) {
const grid = document.getElementById('workflow-grid');
grid.className = mode === 'list' ? 'workflow-grid view-list' : 'workflow-grid';
document.querySelectorAll('.view-controls .view-btn').forEach(btn => {
btn.classList.toggle('active', btn.textContent.trim().toLowerCase() === mode);
});
}
const workflowData = {"alpha_wrap": {"src": "screenshots/alpha_wrap_executed.png", "title": "alpha_wrap", "status": "pass", "duration": "31.65", "log": "Capturing execution frames: alpha_wrap.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.6s)\n [capture-periodic] freeze=2ms shot=79ms unfreeze=3ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.8s)\n [capture-periodic] freeze=2ms shot=83ms unfreeze=6ms saved=True\n [capture-loop] iter=50 t=6.1s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=3 ram=6.0/16.0GB (38%) swap=0.5/2.9GB (17%) cpu=23% browser_rss=0.69GB\n Frame 4 saved (frame_003.jpg, t=6.9s)\n [capture-periodic] freeze=2ms shot=104ms unfreeze=6ms saved=True\n Frame 5 saved (frame_004.jpg, t=11.2s)\n [capture-periodic] freeze=2ms shot=74ms unfreeze=2ms saved=True\n [capture-loop] iter=100 t=11.9s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=3 ram=6.1/16.0GB (38%) swap=0.5/2.9GB (17%) cpu=29% browser_rss=0.68GB\n Frame 6 saved (frame_005.jpg, t=15.4s)\n [capture-periodic] freeze=2ms shot=77ms unfreeze=3ms saved=True\n Node executed (1 total), capturing...\n Frame 7 saved (frame_006.jpg, t=17.2s)\n [capture-node] freeze=3ms shot=68ms unfreeze=3ms saved=True\n [capture-loop] iter=150 t=17.6s state={'complete': False, 'error': None, 'executedCount': 1, 'wsState': 1} eval_ms=3 ram=6.0/16.0GB (38%) swap=0.5/2.9GB (17%) cpu=12% browser_rss=0.69GB\n Node executed (2 total), capturing...\n Frame 8 saved (frame_007.jpg, t=17.9s)\n [capture-node] freeze=50ms shot=430ms unfreeze=4ms saved=True\n Node executed (3 total), capturing...\n Frame 9 saved (frame_008.jpg, t=20.3s)\n [capture-node] freeze=3ms shot=88ms unfreeze=3ms saved=True\n Node executed (4 total), capturing...\n Frame 10 saved (frame_009.jpg, t=20.9s)\n [capture-node] freeze=4ms shot=116ms unfreeze=0ms saved=True\n Execution complete (t=20.9s)\n Captured 10 unique frames over 21.03s\n [debug] iframes: 2\n [debug] iframe[0]: src=http://127.0.0.1:41894/extensions/ComfyUI-GeometryPack/viewer_dual.html?v=177896, canvas=370x485, rafFrozen=True\n [debug] iframe[1]: src=http://127.0.0.1:41894/extensions/ComfyUI-GeometryPack/viewer_multi.html?v=17789, canvas=244x393, rafFrozen=True\n [timing] trigger_3d_previews: 0.0s\n Saved high-quality screenshot: alpha_wrap_executed.png\n [timing] final_screenshot: 0.2s\n Captured 11 video frames", "hardware": {"os": "Windows-2025Server-10.0.26100-SP0", "cpu": "AMD64 Family 25 Model 17 Stepping 1, AuthenticAMD"}}, "batch_remesh": {"src": "screenshots/batch_remesh_executed.png", "title": "batch_remesh", "status": "pass", "duration": "17.00", "log": "Capturing execution frames: batch_remesh.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=2ms shot=67ms unfreeze=2ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.3s)\n [capture-periodic] freeze=4ms shot=85ms unfreeze=4ms saved=True\n Node executed (1 total), capturing...\n Frame 4 saved (frame_003.jpg, t=4.7s)\n [capture-node] freeze=3ms shot=61ms unfreeze=2ms saved=True\n Node executed (2 total), capturing...\n Frame 5 saved (frame_004.jpg, t=5.7s)\n [capture-node] freeze=3ms shot=83ms unfreeze=5ms saved=True\n [capture-loop] iter=50 t=6.1s state={'complete': False, 'error': None, 'executedCount': 2, 'wsState': 1} eval_ms=4 ram=6.6/16.0GB (42%) swap=0.5/2.9GB (17%) cpu=30% browser_rss=0.82GB\n Node executed (3 total), capturing...\n Frame 6 saved (frame_005.jpg, t=7.9s)\n [capture-node] freeze=3ms shot=85ms unfreeze=3ms saved=True\n Node executed (4 total), capturing...\n Frame 7 saved (frame_006.jpg, t=8.3s)\n [capture-node] freeze=3ms shot=78ms unfreeze=3ms saved=True\n Node executed (5 total), capturing...\n Frame 8 saved (frame_007.jpg, t=8.6s)\n [capture-node] freeze=12ms shot=107ms unfreeze=4ms saved=True\n Node executed (6 total), capturing...\n Frame 9 saved (frame_008.jpg, t=9.0s)\n [capture-node] freeze=49ms shot=118ms unfreeze=0ms saved=True\n Execution complete (t=9.0s)\n Captured 9 unique frames over 9.22s\n [debug] iframes: 1\n [debug] iframe[0]: src=http://127.0.0.1:41894/extensions/ComfyUI-GeometryPack/viewer_vtk.html?v=1778961, canvas=622x373, rafFrozen=True\n [timing] trigger_3d_previews: 0.0s\n Saved high-quality screenshot: batch_remesh_executed.png\n [timing] final_screenshot: 0.1s\n Captured 10 video frames", "hardware": {"os": "Windows-2025Server-10.0.26100-SP0", "cpu": "AMD64 Family 25 Model 17 Stepping 1, AuthenticAMD"}}, "boolean_ops": {"src": "screenshots/boolean_ops_executed.png", "title": "boolean_ops", "status": "pass", "duration": "10.37", "log": "Capturing execution frames: boolean_ops.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Node executed (1 total), capturing...\n Frame 2 saved (frame_001.jpg, t=1.1s)\n [capture-node] freeze=39ms shot=80ms unfreeze=4ms saved=True\n Node executed (2 total), capturing...\n Frame 3 saved (frame_002.jpg, t=2.1s)\n [capture-node] freeze=12ms shot=233ms unfreeze=3ms saved=True\n Node executed (3 total), capturing...\n Frame 4 saved (frame_003.jpg, t=2.6s)\n [capture-node] freeze=2ms shot=86ms unfreeze=0ms saved=True\n Execution complete (t=2.6s)\n Captured 4 unique frames over 2.74s\n [debug] iframes: 2\n [debug] iframe[0]: src=http://127.0.0.1:41894/extensions/ComfyUI-GeometryPack/viewer_dual.html?v=177896, canvas=370x485, rafFrozen=True\n [debug] iframe[1]: src=http://127.0.0.1:41894/extensions/ComfyUI-GeometryPack/viewer_vtk.html?v=1778961, canvas=486x348, rafFrozen=True\n [timing] trigger_3d_previews: 0.0s\n Saved high-quality screenshot: boolean_ops_executed.png\n [timing] final_screenshot: 0.2s\n Captured 5 video frames", "hardware": {"os": "Windows-2025Server-10.0.26100-SP0", "cpu": "AMD64 Family 25 Model 17 Stepping 1, AuthenticAMD"}}, "boolean_ops_all": {"src": "", "title": "boolean_ops_all", "status": "fail", "duration": "8.14", "log": "Capturing execution frames: boolean_ops_all.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Node executed (1 total), capturing...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-node] freeze=3ms shot=87ms unfreeze=7ms saved=True\n Execution complete (t=2.5s)\n Execution error: {'prompt_id': '74fc7a9c-708c-4797-a802-97b955406fc4', 'node_id': '4', 'node_type': 'GeomPackBoolean', 'executed': ['2', '3', '1', '.0.6.1'], 'exception_message': 'DLL load failed while importing bpy: The specified procedure could not be found.\\n\\nWorker traceback:\\nTraceback (most recent call last):\\n File \"C:\\\\Users\\\\stduser\\\\AppData\\\\Local\\\\Temp\\\\comfyui_pvenv_gdpr6wpb\\\\persistent_worker.py\", line 1762, in main\\n result = method(**inputs)\\n File \"D:\\\\a\\\\comfy-gpu-ci\\\\comfy-gpu-ci\\\\test_workspaces\\\\GeometryPack-1945\\\\portable-comfyui\\\\ComfyUI_windows_portable\\\\ComfyUI\\\\comfy_api\\\\latest\\\\_io.py\", line 1833, in EXECUTE_NORMALIZED\\n to_return = cls.execute(*args, **kwargs)\\n File \"D:\\\\a\\\\comfy-gpu-ci\\\\comfy-gpu-ci\\\\test_workspaces\\\\GeometryPack-1945\\\\portable-comfyui\\\\ComfyUI_windows_portable\\\\ComfyUI\\\\custom_nodes\\\\ComfyUI-GeometryPack\\\\nodes\\\\blender_boolean\\\\boolean.py\", line 102, in execute\\n result_data = _bpy_boolean_operation(\\n vertices_a=np.asarray(mesh_a.vertices, dtype=np.float32),\\n ...<3 lines>...\\n operation=blender_op\\n )\\n File \"D:\\\\a\\\\comfy-gpu-ci\\\\comfy-gpu-ci\\\\test_workspaces\\\\GeometryPack-1945\\\\portable-comfyui\\\\ComfyUI_windows_portable\\\\ComfyUI\\\\custom_nodes\\\\ComfyUI-GeometryPack\\\\nodes\\\\blender_boolean\\\\boolean.py\", line 17, in _bpy_boolean_operation\\n import bpy\\nImportError: DLL load failed while importing bpy: The specified procedure could not be found.\\n\\n', 'exception_type': 'comfy_env.isolation.workers.base.WorkerError', 'traceback': [' File \"D:\\\\a\\\\comfy-gpu-ci\\\\comfy-gpu-ci\\\\test_workspaces\\\\GeometryPack-1945\\\\portable-comfyui\\\\ComfyUI_windows_portable\\\\ComfyUI\\\\execution.py\", line 535, in execute\\n output_data, output_ui, has_subgraph, has_pending_tasks = await get_output_data(prompt_id, unique_id, obj, input_data_all, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n', ' File \"D:\\\\a\\\\comfy-gpu-ci\\\\comfy-gpu-ci\\\\test_workspaces\\\\GeometryPack-1945\\\\portable-comfyui\\\\ComfyUI_windows_portable\\\\ComfyUI\\\\execution.py\", line 335, in get_output_data\\n return_values = await _async_map_node_over_list(prompt_id, unique_id, obj, input_data_all, obj.FUNCTION, allow_interrupt=True, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n', ' File \"D:\\\\a\\\\comfy-gpu-ci\\\\comfy-gpu-ci\\\\test_workspaces\\\\GeometryPack-1945\\\\portable-comfyui\\\\ComfyUI_windows_portable\\\\ComfyUI\\\\execution.py\", line 309, in _async_map_node_over_list\\n await process_inputs(input_dict, i)\\n', ' File \"D:\\\\a\\\\comfy-gpu-ci\\\\comfy-gpu-ci\\\\test_workspaces\\\\GeometryPack-1945\\\\portable-comfyui\\\\ComfyUI_windows_portable\\\\ComfyUI\\\\execution.py\", line 297, in process_inputs\\n result = f(**inputs)\\n', ' File \"D:\\\\a\\\\comfy-gpu-ci\\\\comfy-gpu-ci\\\\test_workspaces\\\\GeometryPack-1945\\\\portable-comfyui\\\\ComfyUI_windows_portable\\\\python_embeded\\\\Lib\\\\site-packages\\\\comfy_env\\\\isolation\\\\metadata.py\", line 556, in proxy\\n result = worker.call_method(\\n module_name=mod,\\n ...<4 lines>...\\n timeout=600.0,\\n )\\n', ' File \"D:\\\\a\\\\comfy-gpu-ci\\\\comfy-gpu-ci\\\\test_workspaces\\\\GeometryPack-1945\\\\portable-comfyui\\\\ComfyUI_windows_portable\\\\python_embeded\\\\Lib\\\\site-packages\\\\comfy_env\\\\isolation\\\\workers\\\\subprocess.py\", line 674, in call_method\\n raise WorkerError(\\n ...<2 lines>...\\n )\\n'], 'current_inputs': {'mesh_a': ['<trimesh.Trimesh(vertices.shape=(2562, 3), faces.shape=(5120, 3))>'], 'mesh_b': ['<trimesh.Trimesh(vertices.shape=(8, 3), faces.shape=(12, 3))>'], 'operation': ['difference'], 'prompt': ['{\\'1\\': {\\'inputs\\': {\\'shape\\': \\'sphere\\', \\'size\\': 1.0, \\'subdivisions\\': 4}, \\'class_type\\': \\'GeomPackCreatePrimitive\\', \\'_meta\\': {\\'title\\': \\'Create Primitive\\'}}, \\'2\\': {\\'inputs\\': {\\'shape\\': \\'cube\\', \\'size\\': 0.8, \\'subdivisions\\': 1}, \\'class_type\\': \\'GeomPackCreatePrimitive\\', \\'_meta\\': {\\'title\\': \\'Create Primitive\\'}}, \\'3\\': {\\'inputs\\': {\\'operation\\': \\'difference\\', \\'backend\\': \\'libigl_cgal\\', \\'mesh_a\\': [\\'1\\', 0], \\'mesh_b\\': [\\'2\\', 0]}, \\'class_type\\': \\'GeomPackBoolean\\', \\'_meta\\': {\\'title\\': \\'Boolean Operations\\'}}, \\'4\\': {\\'inputs\\': {\\'operation\\': \\'difference\\', \\'backend\\': \\'blender_exact\\', \\'mesh_a\\': [\\'1\\', 0], \\'mesh_b\\': [\\'2\\', 0]}, \\'class_type\\': \\'GeomPackBoolean\\', \\'_meta\\': {\\'title\\': \\'Boolean Operations\\'}}, \\'5\\': {\\'inputs\\': {\\'mode\\': \\'fields\\', \\'preview_multi\\': \\'{\"show_edges\":true,\"camera_state\":\"{\\\\\\\\\"position\\\\\\\\\":[1.2245775204403364,1.2245775204403364,1.2245775204403364],\\\\\\\\\"focalPoint\\\\\\\\\":[0,0,0],\\\\\\\\\"viewUp\\\\\\\\\":[0,0,1]}\",\"selected_field\":\"\",\"selected_channel\":\"magnitude\",\"selected_colormap\":\"erdc_rainbow_bright\"}\\', \\'mesh_1\\': [\\'3\\', 0], \\'mesh_2\\': [\\'4\\', 0]}, \\'class_type\\': \\'GeomPackPreviewMeshMulti\\', \\'_meta\\': {\\'title\\': \\'Preview Mesh Multi\\'}}}'], 'extra_pnginfo': ['{\\'workflow\\': {\\'id\\': \\'test-boolean-all-0001\\', \\'revision\\': 0, \\'last_node_id\\': 6, \\'last_link_id\\': 8, \\'nodes\\': [{\\'id\\': 2, \\'type\\': \\'GeomPackCreatePrimitive\\', \\'pos\\': [-600, 100], \\'size\\': [270, 170.65625], \\'flags\\': {}, \\'order\\': 0, \\'mode\\': 0, \\'inputs\\': [], \\'outputs\\': [{\\'name\\': \\'mesh\\', \\'type\\': \\'TRIMESH\\', \\'links\\': [2, 4]}], \\'properties\\': {\\'Node name for S&R\\': \\'GeomPackCreatePrimitive\\', \\'cnr_id\\': \\'comfyui-geometrypack\\', \\'ver\\': \\'224d843d5a35546212d1fb7babe30efabdf2116c\\'}, \\'widgets_values\\': [\\'cube\\', 0.8, 1]}, {\\'id\\': 3, \\'type\\': \\'GeomPackBoolean\\', \\'pos\\': [-200, -200], \\'size\\': [370, 165.3125], \\'flags\\': {}, \\'order\\': 2, \\'mode\\': 0, \\'inputs\\': [{\\'name\\': \\'mesh_a\\', \\'type\\': \\'TRIMESH\\', \\'link\\': 1}, {\\'name\\': \\'mesh_b\\', \\'type\\': \\'TRIMESH\\', \\'link\\': 2}], \\'outputs\\': [{\\'name\\': \\'result_mesh\\', \\'type\\': \\'TRIMESH\\', \\'links\\': [5]}, {\\'name\\': \\'info\\', \\'type\\': \\'STRING\\', \\'links\\': None}], \\'properties\\': {\\'Node name for S&R\\': \\'GeomPackBoolean\\', \\'cnr_id\\': \\'comfyui-geometrypack\\', \\'ver\\': \\'224d843d5a35546212d1fb7babe30efabdf2116c\\'}, \\'widgets_values\\': [\\'difference\\', \\'libigl_cgal\\']}, {\\'id\\': 4, \\'type\\': \\'GeomPackBoolean\\', \\'pos\\': [-200, 100], \\'size\\': [370, 165.3125], \\'flags\\': {}, \\'order\\': 3, \\'mode\\': 0, \\'inputs\\': [{\\'name\\': \\'mesh_a\\', \\'type\\': \\'TRIMESH\\', \\'link\\': 3}, {\\'name\\': \\'mesh_b\\', \\'type\\': \\'TRIMESH\\', \\'link\\': 4}], \\'outputs\\': [{\\'name\\': \\'result_mesh\\', \\'type\\': \\'TRIMESH\\', \\'links\\': [6]}, {\\'name\\': \\'info\\', \\'type\\': \\'STRING\\', \\'links\\': None}], \\'properties\\': {\\'Node name for S&R\\': \\'GeomPackBoolean\\', \\'cnr_id\\': \\'comfyui-geometrypack\\', \\'ver\\': \\'224d843d5a35546212d1fb7babe30efabdf2116c\\'}, \\'widgets_values\\': [\\'difference\\', \\'blender_exact\\']}, {\\'id\\': 5, \\'type\\': \\'GeomPackPreviewMeshMulti\\', \\'pos\\': [213.07101477171835, -194.17306733063847], \\'size\\': [768, 702], \\'flags\\': {}, \\'order\\': 4, \\'mode\\': 0, \\'inputs\\': [{\\'name\\': \\'mesh_1\\', \\'type\\': \\'TRIMESH\\', \\'link\\': 5}, {\\'name\\': \\'mesh_2\\', \\'shape\\': 7, \\'type\\': \\'TRIMESH\\', \\'link\\': 6}, {\\'name\\': \\'mesh_3\\', \\'shape\\': 7, \\'type\\': \\'TRIMESH\\', \\'link\\': None}, {\\'name\\': \\'mesh_4\\', \\'shape\\': 7, \\'type\\': \\'TRIMESH\\', \\'link\\': None}], \\'outputs\\': [], \\'properties\\': {\\'Node name for S&R\\': \\'GeomPackPreviewMeshMulti\\', \\'cnr_id\\': \\'comfyui-geometrypack\\', \\'ver\\': \\'224d843d5a35546212d1fb7babe30efabdf2116c\\'}, \\'widgets_values\\': [\\'fields\\', \\'{\"show_edges\":true,\"camera_state\":\"{\\\\\\\\\"position\\\\\\\\\":[1.2245775204403364,1.2245775204403364,1.2245775204403364],\\\\\\\\\"focalPoint\\\\\\\\\":[0,0,0],\\\\\\\\\"viewUp\\\\\\\\\":[0,0,1]}\",\"selected_field\":\"\",\"selected_channel\":\"magnitude\",\"selected_colormap\":\"erdc_rainbow_bright\"}\\']}, {\\'id\\': 1, \\'type\\': \\'GeomPackCreatePrimitive\\', \\'pos\\': [-600, -200], \\'size\\': [270, 170.65625], \\'flags\\': {}, \\'order\\': 1, \\'mode\\': 0, \\'inputs\\': [], \\'outputs\\': [{\\'name\\': \\'mesh\\', \\'type\\': \\'TRIMESH\\', \\'links\\': [1, 3]}], \\'properties\\': {\\'Node name for S&R\\': \\'GeomPackCreatePrimitive\\', \\'cnr_id\\': \\'comfyui-geometrypack\\', \\'ver\\': \\'224d843d5a35546212d1fb7babe30efabdf2116c\\'}, \\'widgets_values\\': [\\'sphere\\', 1, 4]}], \\'links\\': [[1, 1, 0, 3, 0, \\'TRIMESH\\'], [2, 2, 0, 3, 1, \\'TRIMESH\\'], [3, 1, 0, 4, 0, \\'TRIMESH\\'], [4, 2, 0, 4, 1, \\'TRIMESH\\'], [5, 3, 0, 5, 0, \\'TRIMESH\\'], [6, 4, 0, 5, 1, \\'TRIMESH\\']], \\'groups\\': [], \\'config\\': {}, \\'extra\\': {\\'ds\\': {\\'scale\\': 0.8719083213796316, \\'offset\\': [536.4213213855968, 421.65866536973317]}, \\'frontendVersion\\': \\'1.43.18\\', \\'workflowRendererVersion\\': \\'LG\\'}, \\'version\\': 0.4}}']}, 'current_outputs': ['5', '4', '1', '2', '3'], 'timestamp': 1778961486793}\n Status: FAILED\n Error: Workflow execution failed: {'prompt_id': '74fc7a9c-708c-4797-a802-97b955406fc4', 'node_id': '4', 'node_type': 'GeomPackBoolean', 'executed': ['2', '3', '1', '.0.6.1'], 'exception_message': 'DLL load failed while importing bpy: The specified procedure could not be found.\\n\\nWorker traceback:\\nTraceback (most recent call last):\\n File \"C:\\\\Users\\\\stduser\\\\AppData\\\\Local\\\\Temp\\\\comfyui_pvenv_gdpr6wpb\\\\persistent_worker.py\", line 1762, in main\\n result = method(**inputs)\\n File \"D:\\\\a\\\\comfy-gpu-ci\\\\comfy-gpu-ci\\\\test_workspaces\\\\GeometryPack-1945\\\\portable-comfyui\\\\ComfyUI_windows_portable\\\\ComfyUI\\\\comfy_api\\\\latest\\\\_io.py\", line 1833, in EXECUTE_NORMALIZED\\n to_return = cls.execute(*args, **kwargs)\\n File \"D:\\\\a\\\\comfy-gpu-ci\\\\comfy-gpu-ci\\\\test_workspaces\\\\GeometryPack-1945\\\\portable-comfyui\\\\ComfyUI_windows_portable\\\\ComfyUI\\\\custom_nodes\\\\ComfyUI-GeometryPack\\\\nodes\\\\blender_boolean\\\\boolean.py\", line 102, in execute\\n result_data = _bpy_boolean_operation(\\n vertices_a=np.asarray(mesh_a.vertices, dtype=np.float32),\\n ...<3 lines>...\\n operation=blender_op\\n )\\n File \"D:\\\\a\\\\comfy-gpu-ci\\\\comfy-gpu-ci\\\\test_workspaces\\\\GeometryPack-1945\\\\portable-comfyui\\\\ComfyUI_windows_portable\\\\ComfyUI\\\\custom_nodes\\\\ComfyUI-GeometryPack\\\\nodes\\\\blender_boolean\\\\boolean.py\", line 17, in _bpy_boolean_operation\\n import bpy\\nImportError: DLL load failed while importing bpy: The specified procedure could not be found.\\n\\n', 'exception_type': 'comfy_env.isolation.workers.base.WorkerError', 'traceback': [' File \"D:\\\\a\\\\comfy-gpu-ci\\\\comfy-gpu-ci\\\\test_workspaces\\\\GeometryPack-1945\\\\portable-comfyui\\\\ComfyUI_windows_portable\\\\ComfyUI\\\\execution.py\", line 535, in execute\\n output_data, output_ui, has_subgraph, has_pending_tasks = await get_output_data(prompt_id, unique_id, obj, input_data_all, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n', ' File \"D:\\\\a\\\\comfy-gpu-ci\\\\comfy-gpu-ci\\\\test_workspaces\\\\GeometryPack-1945\\\\portable-comfyui\\\\ComfyUI_windows_portable\\\\ComfyUI\\\\execution.py\", line 335, in get_output_data\\n return_values = await _async_map_node_over_list(prompt_id, unique_id, obj, input_data_all, obj.FUNCTION, allow_interrupt=True, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n', ' File \"D:\\\\a\\\\comfy-gpu-ci\\\\comfy-gpu-ci\\\\test_workspaces\\\\GeometryPack-1945\\\\portable-comfyui\\\\ComfyUI_windows_portable\\\\ComfyUI\\\\execution.py\", line 309, in _async_map_node_over_list\\n await process_inputs(input_dict, i)\\n', ' File \"D:\\\\a\\\\comfy-gpu-ci\\\\comfy-gpu-ci\\\\test_workspaces\\\\GeometryPack-1945\\\\portable-comfyui\\\\ComfyUI_windows_portable\\\\ComfyUI\\\\execution.py\", line 297, in process_inputs\\n result = f(**inputs)\\n', ' File \"D:\\\\a\\\\comfy-gpu-ci\\\\comfy-gpu-ci\\\\test_workspaces\\\\GeometryPack-1945\\\\portable-comfyui\\\\ComfyUI_windows_portable\\\\python_embeded\\\\Lib\\\\site-packages\\\\comfy_env\\\\isolation\\\\metadata.py\", line 556, in proxy\\n result = worker.call_method(\\n module_name=mod,\\n ...<4 lines>...\\n timeout=600.0,\\n )\\n', ' File \"D:\\\\a\\\\comfy-gpu-ci\\\\comfy-gpu-ci\\\\test_workspaces\\\\GeometryPack-1945\\\\portable-comfyui\\\\ComfyUI_windows_portable\\\\python_embeded\\\\Lib\\\\site-packages\\\\comfy_env\\\\isolation\\\\workers\\\\subprocess.py\", line 674, in call_method\\n raise WorkerError(\\n ...<2 lines>...\\n )\\n'], 'current_inputs': {'mesh_a': ['<trimesh.Trimesh(vertices.shape=(2562, 3), faces.shape=(5120, 3))>'], 'mesh_b': ['<trimesh.Trimesh(vertices.shape=(8, 3), faces.shape=(12, 3))>'], 'operation': ['difference'], 'prompt': ['{\\'1\\': {\\'inputs\\': {\\'shape\\': \\'sphere\\', \\'size\\': 1.0, \\'subdivisions\\': 4}, \\'class_type\\': \\'GeomPackCreatePrimitive\\', \\'_meta\\': {\\'title\\': \\'Create Primitive\\'}}, \\'2\\': {\\'inputs\\': {\\'shape\\': \\'cube\\', \\'size\\': 0.8, \\'subdivisions\\': 1}, \\'class_type\\': \\'GeomPackCreatePrimitive\\', \\'_meta\\': {\\'title\\': \\'Create Primitive\\'}}, \\'3\\': {\\'inputs\\': {\\'operation\\': \\'difference\\', \\'backend\\': \\'libigl_cgal\\', \\'mesh_a\\': [\\'1\\', 0], \\'mesh_b\\': [\\'2\\', 0]}, \\'class_type\\': \\'GeomPackBoolean\\', \\'_meta\\': {\\'title\\': \\'Boolean Operations\\'}}, \\'4\\': {\\'inputs\\': {\\'operation\\': \\'difference\\', \\'backend\\': \\'blender_exact\\', \\'mesh_a\\': [\\'1\\', 0], \\'mesh_b\\': [\\'2\\', 0]}, \\'class_type\\': \\'GeomPackBoolean\\', \\'_meta\\': {\\'title\\': \\'Boolean Operations\\'}}, \\'5\\': {\\'inputs\\': {\\'mode\\': \\'fields\\', \\'preview_multi\\': \\'{\"show_edges\":true,\"camera_state\":\"{\\\\\\\\\"position\\\\\\\\\":[1.2245775204403364,1.2245775204403364,1.2245775204403364],\\\\\\\\\"focalPoint\\\\\\\\\":[0,0,0],\\\\\\\\\"viewUp\\\\\\\\\":[0,0,1]}\",\"selected_field\":\"\",\"selected_channel\":\"magnitude\",\"selected_colormap\":\"erdc_rainbow_bright\"}\\', \\'mesh_1\\': [\\'3\\', 0], \\'mesh_2\\': [\\'4\\', 0]}, \\'class_type\\': \\'GeomPackPreviewMeshMulti\\', \\'_meta\\': {\\'title\\': \\'Preview Mesh Multi\\'}}}'], 'extra_pnginfo': ['{\\'workflow\\': {\\'id\\': \\'test-boolean-all-0001\\', \\'revision\\': 0, \\'last_node_id\\': 6, \\'last_link_id\\': 8, \\'nodes\\': [{\\'id\\': 2, \\'type\\': \\'GeomPackCreatePrimitive\\', \\'pos\\': [-600, 100], \\'size\\': [270, 170.65625], \\'flags\\': {}, \\'order\\': 0, \\'mode\\': 0, \\'inputs\\': [], \\'outputs\\': [{\\'name\\': \\'mesh\\', \\'type\\': \\'TRIMESH\\', \\'links\\': [2, 4]}], \\'properties\\': {\\'Node name for S&R\\': \\'GeomPackCreatePrimitive\\', \\'cnr_id\\': \\'comfyui-geometrypack\\', \\'ver\\': \\'224d843d5a35546212d1fb7babe30efabdf2116c\\'}, \\'widgets_values\\': [\\'cube\\', 0.8, 1]}, {\\'id\\': 3, \\'type\\': \\'GeomPackBoolean\\', \\'pos\\': [-200, -200], \\'size\\': [370, 165.3125], \\'flags\\': {}, \\'order\\': 2, \\'mode\\': 0, \\'inputs\\': [{\\'name\\': \\'mesh_a\\', \\'type\\': \\'TRIMESH\\', \\'link\\': 1}, {\\'name\\': \\'mesh_b\\', \\'type\\': \\'TRIMESH\\', \\'link\\': 2}], \\'outputs\\': [{\\'name\\': \\'result_mesh\\', \\'type\\': \\'TRIMESH\\', \\'links\\': [5]}, {\\'name\\': \\'info\\', \\'type\\': \\'STRING\\', \\'links\\': None}], \\'properties\\': {\\'Node name for S&R\\': \\'GeomPackBoolean\\', \\'cnr_id\\': \\'comfyui-geometrypack\\', \\'ver\\': \\'224d843d5a35546212d1fb7babe30efabdf2116c\\'}, \\'widgets_values\\': [\\'difference\\', \\'libigl_cgal\\']}, {\\'id\\': 4, \\'type\\': \\'GeomPackBoolean\\', \\'pos\\': [-200, 100], \\'size\\': [370, 165.3125], \\'flags\\': {}, \\'order\\': 3, \\'mode\\': 0, \\'inputs\\': [{\\'name\\': \\'mesh_a\\', \\'type\\': \\'TRIMESH\\', \\'link\\': 3}, {\\'name\\': \\'mesh_b\\', \\'type\\': \\'TRIMESH\\', \\'link\\': 4}], \\'outputs\\': [{\\'name\\': \\'result_mesh\\', \\'type\\': \\'TRIMESH\\', \\'links\\': [6]}, {\\'name\\': \\'info\\', \\'type\\': \\'STRING\\', \\'links\\': None}], \\'properties\\': {\\'Node name for S&R\\': \\'GeomPackBoolean\\', \\'cnr_id\\': \\'comfyui-geometrypack\\', \\'ver\\': \\'224d843d5a35546212d1fb7babe30efabdf2116c\\'}, \\'widgets_values\\': [\\'difference\\', \\'blender_exact\\']}, {\\'id\\': 5, \\'type\\': \\'GeomPackPreviewMeshMulti\\', \\'pos\\': [213.07101477171835, -194.17306733063847], \\'size\\': [768, 702], \\'flags\\': {}, \\'order\\': 4, \\'mode\\': 0, \\'inputs\\': [{\\'name\\': \\'mesh_1\\', \\'type\\': \\'TRIMESH\\', \\'link\\': 5}, {\\'name\\': \\'mesh_2\\', \\'shape\\': 7, \\'type\\': \\'TRIMESH\\', \\'link\\': 6}, {\\'name\\': \\'mesh_3\\', \\'shape\\': 7, \\'type\\': \\'TRIMESH\\', \\'link\\': None}, {\\'name\\': \\'mesh_4\\', \\'shape\\': 7, \\'type\\': \\'TRIMESH\\', \\'link\\': None}], \\'outputs\\': [], \\'properties\\': {\\'Node name for S&R\\': \\'GeomPackPreviewMeshMulti\\', \\'cnr_id\\': \\'comfyui-geometrypack\\', \\'ver\\': \\'224d843d5a35546212d1fb7babe30efabdf2116c\\'}, \\'widgets_values\\': [\\'fields\\', \\'{\"show_edges\":true,\"camera_state\":\"{\\\\\\\\\"position\\\\\\\\\":[1.2245775204403364,1.2245775204403364,1.2245775204403364],\\\\\\\\\"focalPoint\\\\\\\\\":[0,0,0],\\\\\\\\\"viewUp\\\\\\\\\":[0,0,1]}\",\"selected_field\":\"\",\"selected_channel\":\"magnitude\",\"selected_colormap\":\"erdc_rainbow_bright\"}\\']}, {\\'id\\': 1, \\'type\\': \\'GeomPackCreatePrimitive\\', \\'pos\\': [-600, -200], \\'size\\': [270, 170.65625], \\'flags\\': {}, \\'order\\': 1, \\'mode\\': 0, \\'inputs\\': [], \\'outputs\\': [{\\'name\\': \\'mesh\\', \\'type\\': \\'TRIMESH\\', \\'links\\': [1, 3]}], \\'properties\\': {\\'Node name for S&R\\': \\'GeomPackCreatePrimitive\\', \\'cnr_id\\': \\'comfyui-geometrypack\\', \\'ver\\': \\'224d843d5a35546212d1fb7babe30efabdf2116c\\'}, \\'widgets_values\\': [\\'sphere\\', 1, 4]}], \\'links\\': [[1, 1, 0, 3, 0, \\'TRIMESH\\'], [2, 2, 0, 3, 1, \\'TRIMESH\\'], [3, 1, 0, 4, 0, \\'TRIMESH\\'], [4, 2, 0, 4, 1, \\'TRIMESH\\'], [5, 3, 0, 5, 0, \\'TRIMESH\\'], [6, 4, 0, 5, 1, \\'TRIMESH\\']], \\'groups\\': [], \\'config\\': {}, \\'extra\\': {\\'ds\\': {\\'scale\\': 0.8719083213796316, \\'offset\\': [536.4213213855968, 421.65866536973317]}, \\'frontendVersion\\': \\'1.43.18\\', \\'workflowRendererVersion\\': \\'LG\\'}, \\'version\\': 0.4}}']}, 'current_outputs': ['5', '4', '1', '2', '3'], 'timestamp': 1778961486793}\n Details: Workflow: C:\\Users\\stduser\\AppData\\Local\\Temp\\comfy-test-run-55pnstfx\\ComfyUI-GeometryPack\\workflows\\boolean_ops_all.json\nNode error: GeomPackBoolean", "hardware": {"os": "Windows-2025Server-10.0.26100-SP0", "cpu": "AMD64 Family 25 Model 17 Stepping 1, AuthenticAMD"}}, "decimate": {"src": "screenshots/decimate_executed.png", "title": "decimate", "status": "pass", "duration": "31.34", "log": "Capturing execution frames: decimate.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=3ms shot=95ms unfreeze=8ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.4s)\n [capture-periodic] freeze=3ms shot=76ms unfreeze=3ms saved=True\n [capture-loop] iter=50 t=5.6s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=3 ram=5.8/16.0GB (36%) swap=0.5/2.9GB (17%) cpu=25% browser_rss=0.74GB\n [capture-loop] iter=100 t=11.2s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=3 ram=5.9/16.0GB (37%) swap=0.5/2.9GB (17%) cpu=14% browser_rss=0.73GB\n Frame 4 saved (frame_003.jpg, t=14.9s)\n [capture-periodic] freeze=3ms shot=75ms unfreeze=3ms saved=True\n [capture-loop] iter=150 t=16.7s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=3 ram=5.8/16.0GB (36%) swap=0.5/2.9GB (16%) cpu=8% browser_rss=0.68GB\n Node executed (1 total), capturing...\n Frame 5 saved (frame_004.jpg, t=22.0s)\n [capture-node] freeze=3ms shot=71ms unfreeze=2ms saved=True\n [capture-loop] iter=200 t=22.4s state={'complete': False, 'error': None, 'executedCount': 1, 'wsState': 1} eval_ms=3 ram=5.8/16.0GB (37%) swap=0.5/2.9GB (16%) cpu=9% browser_rss=0.68GB\n Node executed (2 total), capturing...\n Frame 6 saved (frame_005.jpg, t=23.6s)\n [capture-node] freeze=4ms shot=86ms unfreeze=0ms saved=True\n Execution complete (t=23.7s)\n Captured 6 unique frames over 23.77s\n [debug] iframes: 1\n [debug] iframe[0]: src=http://127.0.0.1:41894/extensions/ComfyUI-GeometryPack/viewer_dual.html?v=177896, canvas=0x0, rafFrozen=False\n [timing] trigger_3d_previews: 0.0s\n Saved high-quality screenshot: decimate_executed.png\n [timing] final_screenshot: 0.2s\n Captured 7 video frames", "hardware": {"os": "Windows-2025Server-10.0.26100-SP0", "cpu": "AMD64 Family 25 Model 17 Stepping 1, AuthenticAMD"}}, "decimate_all": {"src": "screenshots/decimate_all_executed.png", "title": "decimate_all", "status": "pass", "duration": "37.16", "log": "Capturing execution frames: decimate_all.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=3ms shot=67ms unfreeze=3ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.3s)\n [capture-periodic] freeze=3ms shot=74ms unfreeze=2ms saved=True\n Node executed (1 total), capturing...\n Frame 4 saved (frame_003.jpg, t=5.0s)\n [capture-node] freeze=3ms shot=73ms unfreeze=3ms saved=True\n [capture-loop] iter=50 t=5.8s state={'complete': False, 'error': None, 'executedCount': 1, 'wsState': 1} eval_ms=3 ram=6.0/16.0GB (38%) swap=0.5/2.9GB (16%) cpu=18% browser_rss=0.75GB\n Node executed (2 total), capturing...\n Frame 5 saved (frame_004.jpg, t=7.5s)\n [capture-node] freeze=3ms shot=67ms unfreeze=3ms saved=True\n Node executed (3 total), capturing...\n Frame 6 saved (frame_005.jpg, t=9.3s)\n [capture-node] freeze=845ms shot=549ms unfreeze=4ms saved=True\n Node executed (4 total), capturing...\n [capture-node] freeze=3ms shot=111ms unfreeze=3ms saved=False\n [capture-loop] iter=100 t=13.4s state={'complete': False, 'error': None, 'executedCount': 4, 'wsState': 1} eval_ms=3 ram=6.1/16.0GB (38%) swap=0.5/2.9GB (16%) cpu=32% browser_rss=0.83GB\n [capture-loop] iter=150 t=18.9s state={'complete': False, 'error': None, 'executedCount': 4, 'wsState': 1} eval_ms=3 ram=6.1/16.0GB (38%) swap=0.5/2.9GB (18%) cpu=8% browser_rss=0.82GB\n [capture-loop] iter=200 t=24.6s state={'complete': False, 'error': None, 'executedCount': 4, 'wsState': 1} eval_ms=3 ram=5.9/16.0GB (37%) swap=0.7/2.9GB (23%) cpu=11% browser_rss=0.80GB\n Node executed (5 total), capturing...\n Frame 7 saved (frame_006.jpg, t=26.3s)\n [capture-node] freeze=4ms shot=113ms unfreeze=4ms saved=True\n Node executed (6 total), capturing...\n Frame 8 saved (frame_007.jpg, t=28.0s)\n [capture-node] freeze=4ms shot=193ms unfreeze=892ms saved=True\n Execution complete (t=29.4s)\n Captured 8 unique frames over 29.45s\n [debug] iframes: 2\n [debug] iframe[0]: src=http://127.0.0.1:41894/extensions/ComfyUI-GeometryPack/viewer_multi.html?v=17789, canvas=244x393, rafFrozen=False\n [debug] iframe[1]: src=http://127.0.0.1:41894/extensions/ComfyUI-GeometryPack/viewer_multi.html?v=17789, canvas=244x393, rafFrozen=False\n [timing] trigger_3d_previews: 0.0s\n Saved high-quality screenshot: decimate_all_executed.png\n [timing] final_screenshot: 0.2s\n Captured 9 video frames", "hardware": {"os": "Windows-2025Server-10.0.26100-SP0", "cpu": "AMD64 Family 25 Model 17 Stepping 1, AuthenticAMD"}}, "depth_map_to_mesh": {"src": "screenshots/depth_map_to_mesh_executed.png", "title": "depth_map_to_mesh", "status": "pass", "duration": "25.34", "log": "Capturing execution frames: depth_map_to_mesh.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=3ms shot=75ms unfreeze=3ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.3s)\n [capture-periodic] freeze=5ms shot=94ms unfreeze=4ms saved=True\n [capture-loop] iter=50 t=5.6s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=3 ram=5.7/16.0GB (36%) swap=0.6/2.9GB (22%) cpu=30% browser_rss=0.72GB\n Node executed (1 total), capturing...\n Frame 4 saved (frame_003.jpg, t=9.7s)\n [capture-node] freeze=4ms shot=70ms unfreeze=3ms saved=True\n [capture-loop] iter=100 t=11.4s state={'complete': False, 'error': None, 'executedCount': 1, 'wsState': 1} eval_ms=4 ram=6.2/16.0GB (38%) swap=0.8/2.9GB (28%) cpu=32% browser_rss=0.62GB\n Node executed (2 total), capturing...\n Frame 5 saved (frame_004.jpg, t=14.4s)\n [capture-node] freeze=30ms shot=2533ms unfreeze=2ms saved=True\n Execution complete (t=17.3s)\n Captured 5 unique frames over 17.26s\n [debug] iframes: 1\n [debug] iframe[0]: src=http://127.0.0.1:41894/extensions/ComfyUI-GeometryPack/viewer_vtk.html?v=1778961, canvas=486x348, rafFrozen=False\n [timing] trigger_3d_previews: 0.0s\n Saved high-quality screenshot: depth_map_to_mesh_executed.png\n [timing] final_screenshot: 0.1s\n Captured 6 video frames", "hardware": {"os": "Windows-2025Server-10.0.26100-SP0", "cpu": "AMD64 Family 25 Model 17 Stepping 1, AuthenticAMD"}}, "fix_normals_all": {"src": "screenshots/fix_normals_all_executed.png", "title": "fix_normals_all", "status": "pass", "duration": "22.05", "log": "Capturing execution frames: fix_normals_all.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=2ms shot=76ms unfreeze=3ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.3s)\n [capture-periodic] freeze=2ms shot=69ms unfreeze=3ms saved=True\n [capture-loop] iter=50 t=5.5s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=3 ram=6.1/16.0GB (38%) swap=0.8/2.9GB (28%) cpu=25% browser_rss=0.85GB\n Node executed (1 total), capturing...\n Frame 4 saved (frame_003.jpg, t=6.1s)\n [capture-node] freeze=4ms shot=68ms unfreeze=2ms saved=True\n Node executed (2 total), capturing...\n Frame 5 saved (frame_004.jpg, t=6.9s)\n [capture-node] freeze=4ms shot=76ms unfreeze=4ms saved=True\n Node executed (3 total), capturing...\n Frame 6 saved (frame_005.jpg, t=8.2s)\n [capture-node] freeze=4ms shot=75ms unfreeze=3ms saved=True\n Node executed (4 total), capturing...\n Frame 7 saved (frame_006.jpg, t=9.3s)\n [capture-node] freeze=3ms shot=75ms unfreeze=3ms saved=True\n Node executed (5 total), capturing...\n Frame 8 saved (frame_007.jpg, t=10.8s)\n [capture-node] freeze=315ms shot=295ms unfreeze=4ms saved=True\n Node executed (6 total), capturing...\n Frame 9 saved (frame_008.jpg, t=12.1s)\n [capture-node] freeze=3ms shot=77ms unfreeze=3ms saved=True\n [capture-loop] iter=100 t=13.0s state={'complete': False, 'error': None, 'executedCount': 6, 'wsState': 1} eval_ms=4 ram=5.4/16.0GB (34%) swap=0.8/2.9GB (28%) cpu=20% browser_rss=0.73GB\n Node executed (7 total), capturing...\n Frame 10 saved (frame_009.jpg, t=13.7s)\n [capture-node] freeze=4ms shot=89ms unfreeze=0ms saved=True\n Execution complete (t=13.7s)\n Captured 10 unique frames over 13.81s\n [debug] iframes: 2\n [debug] iframe[0]: src=http://127.0.0.1:41894/extensions/ComfyUI-GeometryPack/viewer_multi.html?v=17789, canvas=368x393, rafFrozen=True\n [debug] iframe[1]: src=http://127.0.0.1:41894/extensions/ComfyUI-GeometryPack/viewer_multi.html?v=17789, canvas=368x195, rafFrozen=True\n [timing] trigger_3d_previews: 0.2s\n Saved high-quality screenshot: fix_normals_all_executed.png\n [timing] final_screenshot: 0.2s\n Captured 11 video frames", "hardware": {"os": "Windows-2025Server-10.0.26100-SP0", "cpu": "AMD64 Family 25 Model 17 Stepping 1, AuthenticAMD"}}, "fix_self_intersection": {"src": "screenshots/fix_self_intersection_executed.png", "title": "fix_self_intersection", "status": "pass", "duration": "13.11", "log": "Capturing execution frames: fix_self_intersection.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Node executed (1 total), capturing...\n Frame 2 saved (frame_001.jpg, t=2.0s)\n [capture-node] freeze=3ms shot=82ms unfreeze=6ms saved=True\n Node executed (2 total), capturing...\n Frame 3 saved (frame_002.jpg, t=3.4s)\n [capture-node] freeze=3ms shot=72ms unfreeze=3ms saved=True\n Node executed (3 total), capturing...\n Frame 4 saved (frame_003.jpg, t=3.9s)\n [capture-node] freeze=3ms shot=78ms unfreeze=3ms saved=True\n Node executed (4 total), capturing...\n Frame 5 saved (frame_004.jpg, t=4.8s)\n [capture-node] freeze=195ms shot=323ms unfreeze=0ms saved=True\n Execution complete (t=4.8s)\n Captured 5 unique frames over 5.35s\n [debug] iframes: 1\n [debug] iframe[0]: src=http://127.0.0.1:41894/extensions/ComfyUI-GeometryPack/viewer_dual.html?v=177896, canvas=370x485, rafFrozen=True\n [timing] trigger_3d_previews: 0.0s\n Saved high-quality screenshot: fix_self_intersection_executed.png\n [timing] final_screenshot: 0.3s\n Captured 6 video frames", "hardware": {"os": "Windows-2025Server-10.0.26100-SP0", "cpu": "AMD64 Family 25 Model 17 Stepping 1, AuthenticAMD"}}, "mesh_info": {"src": "screenshots/mesh_info_executed.png", "title": "mesh_info", "status": "pass", "duration": "13.79", "log": "Capturing execution frames: mesh_info.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=3ms shot=76ms unfreeze=3ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.3s)\n [capture-periodic] freeze=5ms shot=73ms unfreeze=4ms saved=True\n [capture-loop] iter=50 t=5.5s state={'complete': False, 'error': None, 'executedCount': 1, 'wsState': 1} eval_ms=3 ram=5.4/16.0GB (34%) swap=0.8/2.9GB (28%) cpu=22% browser_rss=0.76GB\n Node executed (1 total), capturing...\n Frame 4 saved (frame_003.jpg, t=5.7s)\n [capture-node] freeze=3ms shot=61ms unfreeze=5ms saved=True\n Node executed (2 total), capturing...\n Frame 5 saved (frame_004.jpg, t=6.1s)\n [capture-node] freeze=4ms shot=68ms unfreeze=0ms saved=True\n Execution complete (t=6.1s)\n Captured 5 unique frames over 6.24s\n [debug] iframes: 0\n [timing] trigger_3d_previews: 0.0s\n Saved high-quality screenshot: mesh_info_executed.png\n [timing] final_screenshot: 0.1s\n Captured 6 video frames", "hardware": {"os": "Windows-2025Server-10.0.26100-SP0", "cpu": "AMD64 Family 25 Model 17 Stepping 1, AuthenticAMD"}}, "mesh_mesh_distance": {"src": "screenshots/mesh_mesh_distance_executed.png", "title": "mesh_mesh_distance", "status": "pass", "duration": "25.40", "log": "Capturing execution frames: mesh_mesh_distance.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=3ms shot=78ms unfreeze=3ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.3s)\n [capture-periodic] freeze=2ms shot=68ms unfreeze=3ms saved=True\n [capture-loop] iter=50 t=5.6s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=3 ram=5.4/16.0GB (34%) swap=0.8/2.9GB (27%) cpu=17% browser_rss=0.73GB\n Node executed (1 total), capturing...\n Frame 4 saved (frame_003.jpg, t=8.9s)\n [capture-node] freeze=3ms shot=77ms unfreeze=4ms saved=True\n Node executed (2 total), capturing...\n Frame 5 saved (frame_004.jpg, t=9.3s)\n [capture-node] freeze=3ms shot=68ms unfreeze=3ms saved=True\n [capture-loop] iter=100 t=11.6s state={'complete': False, 'error': None, 'executedCount': 2, 'wsState': 1} eval_ms=4 ram=5.6/16.0GB (35%) swap=0.8/2.9GB (27%) cpu=29% browser_rss=0.72GB\n Node executed (3 total), capturing...\n Frame 6 saved (frame_005.jpg, t=17.1s)\n [capture-node] freeze=3ms shot=68ms unfreeze=3ms saved=True\n [capture-loop] iter=150 t=17.4s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=4 ram=5.5/16.0GB (34%) swap=0.8/2.9GB (27%) cpu=32% browser_rss=0.71GB\n Node executed (4 total), capturing...\n Frame 7 saved (frame_006.jpg, t=17.8s)\n [capture-node] freeze=3ms shot=76ms unfreeze=0ms saved=True\n Execution complete (t=17.8s)\n Captured 7 unique frames over 17.86s\n [debug] iframes: 0\n [timing] trigger_3d_previews: 0.0s\n Saved high-quality screenshot: mesh_mesh_distance_executed.png\n [timing] final_screenshot: 0.1s\n Captured 8 video frames", "hardware": {"os": "Windows-2025Server-10.0.26100-SP0", "cpu": "AMD64 Family 25 Model 17 Stepping 1, AuthenticAMD"}}, "normals": {"src": "screenshots/normals_executed.png", "title": "normals", "status": "pass", "duration": "13.31", "log": "Capturing execution frames: normals.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Node executed (1 total), capturing...\n Frame 2 saved (frame_001.jpg, t=1.7s)\n [capture-node] freeze=3ms shot=59ms unfreeze=3ms saved=True\n Frame 3 saved (frame_002.jpg, t=3.8s)\n [capture-periodic] freeze=3ms shot=70ms unfreeze=2ms saved=True\n Node executed (2 total), capturing...\n Frame 4 saved (frame_003.jpg, t=5.0s)\n [capture-node] freeze=610ms shot=103ms unfreeze=0ms saved=True\n Execution complete (t=5.0s)\n Captured 4 unique frames over 5.72s\n [debug] iframes: 1\n [debug] iframe[0]: src=http://127.0.0.1:41894/extensions/ComfyUI-GeometryPack/viewer_vtk.html?v=1778961, canvas=486x348, rafFrozen=True\n [timing] trigger_3d_previews: 0.0s\n Saved high-quality screenshot: normals_executed.png\n [timing] final_screenshot: 0.1s\n Captured 5 video frames", "hardware": {"os": "Windows-2025Server-10.0.26100-SP0", "cpu": "AMD64 Family 25 Model 17 Stepping 1, AuthenticAMD"}}, "point_mesh_distance": {"src": "screenshots/point_mesh_distance_executed.png", "title": "point_mesh_distance", "status": "pass", "duration": "13.17", "log": "Capturing execution frames: point_mesh_distance.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=2ms shot=78ms unfreeze=3ms saved=True\n Node executed (1 total), capturing...\n Frame 3 saved (frame_002.jpg, t=4.1s)\n [capture-node] freeze=4ms shot=76ms unfreeze=3ms saved=True\n Node executed (2 total), capturing...\n Frame 4 saved (frame_003.jpg, t=4.5s)\n [capture-node] freeze=3ms shot=77ms unfreeze=3ms saved=True\n Node executed (3 total), capturing...\n Frame 5 saved (frame_004.jpg, t=5.4s)\n [capture-node] freeze=4ms shot=78ms unfreeze=0ms saved=True\n Execution complete (t=5.4s)\n Captured 5 unique frames over 5.5s\n [debug] iframes: 1\n [debug] iframe[0]: src=http://127.0.0.1:41894/extensions/ComfyUI-GeometryPack/viewer_dual.html?v=177896, canvas=0x0, rafFrozen=True\n [timing] trigger_3d_previews: 0.0s\n Saved high-quality screenshot: point_mesh_distance_executed.png\n [timing] final_screenshot: 0.2s\n Captured 6 video frames", "hardware": {"os": "Windows-2025Server-10.0.26100-SP0", "cpu": "AMD64 Family 25 Model 17 Stepping 1, AuthenticAMD"}}, "preview_mesh_threejs": {"src": "screenshots/preview_mesh_threejs_executed.png", "title": "preview_mesh_threejs", "status": "pass", "duration": "13.19", "log": "Capturing execution frames: preview_mesh_threejs.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=8ms shot=80ms unfreeze=3ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.4s)\n [capture-periodic] freeze=5ms shot=95ms unfreeze=5ms saved=True\n Node executed (1 total), capturing...\n Frame 4 saved (frame_003.jpg, t=5.5s)\n [capture-node] freeze=3ms shot=79ms unfreeze=0ms saved=True\n Execution complete (t=5.5s)\n Captured 4 unique frames over 5.65s\n [debug] iframes: 1\n [debug] iframe[0]: src=http://127.0.0.1:41894/extensions/ComfyUI-GeometryPack/viewer.html?v=17789616880, canvas=486x486, rafFrozen=True\n [timing] trigger_3d_previews: 0.0s\n Saved high-quality screenshot: preview_mesh_threejs_executed.png\n [timing] final_screenshot: 0.1s\n Captured 5 video frames", "hardware": {"os": "Windows-2025Server-10.0.26100-SP0", "cpu": "AMD64 Family 25 Model 17 Stepping 1, AuthenticAMD"}}, "reconstruct_all": {"src": "screenshots/reconstruct_all_executed.png", "title": "reconstruct_all", "status": "pass", "duration": "16.65", "log": "Capturing execution frames: reconstruct_all.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Node executed (1 total), capturing...\n Frame 2 saved (frame_001.jpg, t=1.9s)\n [capture-node] freeze=56ms shot=106ms unfreeze=4ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.2s)\n [capture-periodic] freeze=2ms shot=92ms unfreeze=3ms saved=True\n Node executed (2 total), capturing...\n Frame 4 saved (frame_003.jpg, t=4.5s)\n [capture-node] freeze=3ms shot=80ms unfreeze=3ms saved=True\n Node executed (3 total), capturing...\n Frame 5 saved (frame_004.jpg, t=5.3s)\n [capture-node] freeze=4ms shot=110ms unfreeze=4ms saved=True\n Node executed (4 total), capturing...\n [capture-node] freeze=18ms shot=109ms unfreeze=4ms saved=False\n [capture-loop] iter=50 t=6.7s state={'complete': False, 'error': None, 'executedCount': 4, 'wsState': 1} eval_ms=4 ram=5.2/16.0GB (33%) swap=0.9/2.9GB (32%) cpu=27% browser_rss=0.68GB\n Node executed (5 total), capturing...\n Frame 6 saved (frame_005.jpg, t=7.1s)\n [capture-node] freeze=4ms shot=89ms unfreeze=3ms saved=True\n Node executed (6 total), capturing...\n Frame 7 saved (frame_006.jpg, t=8.0s)\n [capture-node] freeze=4ms shot=101ms unfreeze=0ms saved=True\n Execution complete (t=8.0s)\n Captured 7 unique frames over 8.18s\n [debug] iframes: 2\n [debug] iframe[0]: src=http://127.0.0.1:41894/extensions/ComfyUI-GeometryPack/viewer_vtk.html?v=1778961, canvas=486x384, rafFrozen=True\n [debug] iframe[1]: src=http://127.0.0.1:41894/extensions/ComfyUI-GeometryPack/viewer_multi.html?v=17789, canvas=368x195, rafFrozen=True\n [timing] trigger_3d_previews: 0.0s\n Saved high-quality screenshot: reconstruct_all_executed.png\n [timing] final_screenshot: 0.2s\n Captured 8 video frames", "hardware": {"os": "Windows-2025Server-10.0.26100-SP0", "cpu": "AMD64 Family 25 Model 17 Stepping 1, AuthenticAMD"}}, "refine_mesh": {"src": "screenshots/refine_mesh_executed.png", "title": "refine_mesh", "status": "pass", "duration": "10.93", "log": "Capturing execution frames: refine_mesh.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Node executed (1 total), capturing...\n Frame 2 saved (frame_001.jpg, t=1.5s)\n [capture-node] freeze=3ms shot=57ms unfreeze=4ms saved=True\n Node executed (2 total), capturing...\n Frame 3 saved (frame_002.jpg, t=2.3s)\n [capture-node] freeze=270ms shot=587ms unfreeze=0ms saved=True\n Execution complete (t=2.3s)\n Captured 3 unique frames over 3.23s\n [debug] iframes: 1\n [debug] iframe[0]: src=http://127.0.0.1:41894/extensions/ComfyUI-GeometryPack/viewer_dual.html?v=177896, canvas=387x485, rafFrozen=True\n [timing] trigger_3d_previews: 0.0s\n Saved high-quality screenshot: refine_mesh_executed.png\n [timing] final_screenshot: 0.2s\n Captured 4 video frames", "hardware": {"os": "Windows-2025Server-10.0.26100-SP0", "cpu": "AMD64 Family 25 Model 17 Stepping 1, AuthenticAMD"}}, "remesh_intersections": {"src": "screenshots/remesh_intersections_executed.png", "title": "remesh_intersections", "status": "pass", "duration": "20.13", "log": "Capturing execution frames: remesh_intersections.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.1s)\n [capture-periodic] freeze=2ms shot=52ms unfreeze=3ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.2s)\n [capture-periodic] freeze=3ms shot=56ms unfreeze=2ms saved=True\n [capture-loop] iter=50 t=5.5s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=3 ram=5.2/16.0GB (33%) swap=0.9/2.9GB (32%) cpu=26% browser_rss=0.59GB\n Node executed (1 total), capturing...\n Frame 4 saved (frame_003.jpg, t=5.9s)\n [capture-node] freeze=3ms shot=57ms unfreeze=4ms saved=True\n Node executed (2 total), capturing...\n Frame 5 saved (frame_004.jpg, t=8.7s)\n [capture-node] freeze=3ms shot=65ms unfreeze=3ms saved=True\n Node executed (3 total), capturing...\n Frame 6 saved (frame_005.jpg, t=11.2s)\n [capture-node] freeze=4ms shot=61ms unfreeze=3ms saved=True\n [capture-loop] iter=100 t=11.7s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=3 ram=5.3/16.0GB (33%) swap=0.9/2.9GB (32%) cpu=16% browser_rss=0.59GB\n Node executed (4 total), capturing...\n Frame 7 saved (frame_006.jpg, t=12.5s)\n [capture-node] freeze=3ms shot=76ms unfreeze=0ms saved=True\n Execution complete (t=12.5s)\n Captured 7 unique frames over 12.57s\n [debug] iframes: 1\n [debug] iframe[0]: src=http://127.0.0.1:41894/extensions/ComfyUI-GeometryPack/viewer_dual.html?v=177896, canvas=0x0, rafFrozen=False\n [timing] trigger_3d_previews: 0.0s\n Saved high-quality screenshot: remesh_intersections_executed.png\n [timing] final_screenshot: 0.2s\n Captured 8 video frames", "hardware": {"os": "Windows-2025Server-10.0.26100-SP0", "cpu": "AMD64 Family 25 Model 17 Stepping 1, AuthenticAMD"}}, "remeshing": {"src": "screenshots/remeshing_executed.png", "title": "remeshing", "status": "pass", "duration": "51.76", "log": "Capturing execution frames: remeshing.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=6.5s)\n [capture-periodic] freeze=4ms shot=76ms unfreeze=5ms saved=True\n [capture-loop] iter=50 t=11.8s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=4 ram=5.3/16.0GB (33%) swap=0.9/2.9GB (32%) cpu=21% browser_rss=0.70GB\n Frame 3 saved (frame_002.jpg, t=12.8s)\n [capture-periodic] freeze=3ms shot=74ms unfreeze=3ms saved=True\n [capture-loop] iter=100 t=17.4s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=3 ram=5.3/16.0GB (33%) swap=0.9/2.9GB (32%) cpu=32% browser_rss=0.70GB\n [capture-loop] iter=150 t=22.9s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=3 ram=5.2/16.0GB (32%) swap=0.9/2.9GB (32%) cpu=33% browser_rss=0.57GB\n [capture-loop] iter=200 t=28.5s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=3 ram=5.2/16.0GB (32%) swap=0.9/2.9GB (32%) cpu=32% browser_rss=0.57GB\n [capture-loop] iter=250 t=34.0s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=4 ram=5.2/16.0GB (32%) swap=0.9/2.9GB (32%) cpu=31% browser_rss=0.57GB\n [capture-loop] iter=300 t=39.5s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=3 ram=5.2/16.0GB (32%) swap=0.9/2.9GB (32%) cpu=32% browser_rss=0.57GB\n Node executed (1 total), capturing...\n Frame 4 saved (frame_003.jpg, t=43.3s)\n [capture-node] freeze=3ms shot=68ms unfreeze=4ms saved=True\n Node executed (2 total), capturing...\n Frame 5 saved (frame_004.jpg, t=44.0s)\n [capture-node] freeze=3ms shot=64ms unfreeze=0ms saved=True\n Execution complete (t=44.0s)\n Captured 5 unique frames over 44.09s\n [debug] iframes: 1\n [debug] iframe[0]: src=http://127.0.0.1:41894/extensions/ComfyUI-GeometryPack/viewer_dual.html?v=177896, canvas=0x0, rafFrozen=True\n [timing] trigger_3d_previews: 0.0s\n Saved high-quality screenshot: remeshing_executed.png\n [timing] final_screenshot: 0.2s\n Captured 6 video frames", "hardware": {"os": "Windows-2025Server-10.0.26100-SP0", "cpu": "AMD64 Family 25 Model 17 Stepping 1, AuthenticAMD"}}, "sharpen": {"src": "screenshots/sharpen_executed.png", "title": "sharpen", "status": "pass", "duration": "16.94", "log": "Capturing execution frames: sharpen.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=2ms shot=63ms unfreeze=4ms saved=True\n Node executed (1 total), capturing...\n Frame 3 saved (frame_002.jpg, t=4.0s)\n [capture-node] freeze=4ms shot=70ms unfreeze=2ms saved=True\n [capture-loop] iter=50 t=5.7s state={'complete': False, 'error': None, 'executedCount': 1, 'wsState': 1} eval_ms=3 ram=5.2/16.0GB (33%) swap=0.9/2.9GB (32%) cpu=30% browser_rss=0.62GB\n Frame 4 saved (frame_003.jpg, t=6.1s)\n [capture-periodic] freeze=2ms shot=70ms unfreeze=4ms saved=True\n Frame 5 saved (frame_004.jpg, t=8.2s)\n [capture-periodic] freeze=3ms shot=63ms unfreeze=3ms saved=True\n Node executed (2 total), capturing...\n Frame 6 saved (frame_005.jpg, t=8.7s)\n [capture-node] freeze=4ms shot=68ms unfreeze=0ms saved=True\n Execution complete (t=8.7s)\n Captured 6 unique frames over 8.77s\n [debug] iframes: 1\n [debug] iframe[0]: src=http://127.0.0.1:41894/extensions/ComfyUI-GeometryPack/viewer_multi.html?v=17789, canvas=244x393, rafFrozen=True\n [timing] trigger_3d_previews: 0.1s\n Saved high-quality screenshot: sharpen_executed.png\n [timing] final_screenshot: 0.2s\n Captured 7 video frames", "hardware": {"os": "Windows-2025Server-10.0.26100-SP0", "cpu": "AMD64 Family 25 Model 17 Stepping 1, AuthenticAMD"}}, "sharpen_all": {"src": "screenshots/sharpen_all_executed.png", "title": "sharpen_all", "status": "pass", "duration": "69.05", "log": "Capturing execution frames: sharpen_all.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=3ms shot=78ms unfreeze=3ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.3s)\n [capture-periodic] freeze=4ms shot=90ms unfreeze=4ms saved=True\n [capture-loop] iter=50 t=5.8s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=4 ram=5.2/16.0GB (33%) swap=0.9/2.9GB (32%) cpu=24% browser_rss=0.69GB\n Frame 4 saved (frame_003.jpg, t=6.5s)\n [capture-periodic] freeze=2ms shot=84ms unfreeze=7ms saved=True\n Frame 5 saved (frame_004.jpg, t=8.6s)\n [capture-periodic] freeze=3ms shot=83ms unfreeze=3ms saved=True\n Node executed (1 total), capturing...\n Frame 6 saved (frame_005.jpg, t=10.5s)\n [capture-node] freeze=4ms shot=90ms unfreeze=3ms saved=True\n [capture-loop] iter=100 t=11.6s state={'complete': False, 'error': None, 'executedCount': 1, 'wsState': 1} eval_ms=3 ram=5.2/16.0GB (32%) swap=0.9/2.9GB (32%) cpu=14% browser_rss=0.59GB\n Frame 7 saved (frame_006.jpg, t=12.6s)\n [capture-periodic] freeze=3ms shot=104ms unfreeze=4ms saved=True\n [capture-loop] iter=150 t=17.3s state={'complete': False, 'error': None, 'executedCount': 1, 'wsState': 1} eval_ms=3 ram=5.2/16.0GB (32%) swap=0.9/2.9GB (32%) cpu=34% browser_rss=0.59GB\n Node executed (2 total), capturing...\n Frame 8 saved (frame_007.jpg, t=19.8s)\n [capture-node] freeze=3ms shot=81ms unfreeze=6ms saved=True\n Frame 9 saved (frame_008.jpg, t=21.9s)\n [capture-periodic] freeze=2ms shot=75ms unfreeze=4ms saved=True\n [capture-loop] iter=200 t=23.1s state={'complete': False, 'error': None, 'executedCount': 2, 'wsState': 1} eval_ms=4 ram=5.1/16.0GB (32%) swap=0.9/2.9GB (32%) cpu=28% browser_rss=0.59GB\n Node executed (3 total), capturing...\n Frame 10 saved (frame_009.jpg, t=28.1s)\n [capture-node] freeze=8ms shot=102ms unfreeze=6ms saved=True\n [capture-loop] iter=250 t=28.9s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=3 ram=5.1/16.0GB (32%) swap=0.9/2.9GB (32%) cpu=27% browser_rss=0.59GB\n Frame 11 saved (frame_010.jpg, t=30.3s)\n [capture-periodic] freeze=3ms shot=98ms unfreeze=4ms saved=True\n [capture-loop] iter=300 t=34.5s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=3 ram=5.1/16.0GB (32%) swap=0.9/2.9GB (32%) cpu=33% browser_rss=0.59GB\n [capture-loop] iter=350 t=40.1s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=3 ram=5.1/16.0GB (32%) swap=0.9/2.9GB (32%) cpu=35% browser_rss=0.58GB\n [capture-loop] iter=400 t=45.7s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=4 ram=5.1/16.0GB (32%) swap=0.9/2.9GB (32%) cpu=32% browser_rss=0.58GB\n [capture-loop] iter=450 t=51.2s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=3 ram=5.1/16.0GB (32%) swap=0.9/2.9GB (32%) cpu=31% browser_rss=0.58GB\n Node executed (4 total), capturing...\n Frame 12 saved (frame_011.jpg, t=53.6s)\n [capture-node] freeze=4ms shot=82ms unfreeze=7ms saved=True\n Frame 13 saved (frame_012.jpg, t=55.8s)\n [capture-periodic] freeze=3ms shot=94ms unfreeze=3ms saved=True\n [capture-loop] iter=500 t=57.1s state={'complete': False, 'error': None, 'executedCount': 4, 'wsState': 1} eval_ms=3 ram=4.9/16.0GB (31%) swap=1.1/2.9GB (38%) cpu=27% browser_rss=0.58GB\n Node executed (5 total), capturing...\n Frame 14 saved (frame_013.jpg, t=57.9s)\n [capture-node] freeze=3ms shot=92ms unfreeze=3ms saved=True\n Node executed (6 total), capturing...\n Frame 15 saved (frame_014.jpg, t=58.5s)\n [capture-node] freeze=440ms shot=318ms unfreeze=10ms saved=True\n Node executed (7 total), capturing...\n Frame 16 saved (frame_015.jpg, t=59.5s)\n [capture-node] freeze=3ms shot=102ms unfreeze=4ms saved=True\n Node executed (8 total), capturing...\n Frame 17 saved (frame_016.jpg, t=59.9s)\n [capture-node] freeze=3ms shot=117ms unfreeze=5ms saved=True\n Node executed (9 total), capturing...\n Frame 18 saved (frame_017.jpg, t=60.6s)\n [capture-node] freeze=4ms shot=112ms unfreeze=0ms saved=True\n Execution complete (t=60.6s)\n Captured 18 unique frames over 60.75s\n [debug] iframes: 2\n [debug] iframe[0]: src=http://127.0.0.1:41894/extensions/ComfyUI-GeometryPack/viewer_multi.html?v=17789, canvas=368x195, rafFrozen=True\n [debug] iframe[1]: src=http://127.0.0.1:41894/extensions/ComfyUI-GeometryPack/viewer_multi.html?v=17789, canvas=368x195, rafFrozen=True\n [timing] trigger_3d_previews: 0.6s\n Saved high-quality screenshot: sharpen_all_executed.png\n [timing] final_screenshot: 0.2s\n Captured 19 video frames", "hardware": {"os": "Windows-2025Server-10.0.26100-SP0", "cpu": "AMD64 Family 25 Model 17 Stepping 1, AuthenticAMD"}}, "side_by_side_viewer": {"src": "screenshots/side_by_side_viewer_executed.png", "title": "side_by_side_viewer", "status": "pass", "duration": "14.99", "log": "Capturing execution frames: side_by_side_viewer.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=3ms shot=76ms unfreeze=3ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.3s)\n [capture-periodic] freeze=3ms shot=69ms unfreeze=4ms saved=True\n [capture-loop] iter=50 t=5.6s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=3 ram=5.0/16.0GB (31%) swap=1.1/2.9GB (38%) cpu=34% browser_rss=0.64GB\n Frame 4 saved (frame_003.jpg, t=6.4s)\n [capture-periodic] freeze=2ms shot=61ms unfreeze=3ms saved=True\n Node executed (1 total), capturing...\n Frame 5 saved (frame_004.jpg, t=7.0s)\n [capture-node] freeze=3ms shot=67ms unfreeze=3ms saved=True\n Execution complete (t=7.2s)\n Captured 5 unique frames over 7.21s\n [debug] iframes: 1\n [debug] iframe[0]: src=http://127.0.0.1:41894/extensions/ComfyUI-GeometryPack/viewer_dual.html?v=177896, canvas=370x485, rafFrozen=False\n [timing] trigger_3d_previews: 0.0s\n Saved high-quality screenshot: side_by_side_viewer_executed.png\n [timing] final_screenshot: 0.2s\n Captured 6 video frames", "hardware": {"os": "Windows-2025Server-10.0.26100-SP0", "cpu": "AMD64 Family 25 Model 17 Stepping 1, AuthenticAMD"}}, "skeleton_all": {"src": "screenshots/skeleton_all_executed.png", "title": "skeleton_all", "status": "pass", "duration": "33.50", "log": "Capturing execution frames: skeleton_all.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=4ms shot=86ms unfreeze=3ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.4s)\n [capture-periodic] freeze=2ms shot=78ms unfreeze=4ms saved=True\n [capture-loop] iter=50 t=5.6s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=3 ram=5.0/16.0GB (31%) swap=1.1/2.9GB (38%) cpu=21% browser_rss=0.66GB\n Frame 4 saved (frame_003.jpg, t=6.5s)\n [capture-periodic] freeze=2ms shot=85ms unfreeze=3ms saved=True\n [capture-loop] iter=100 t=11.3s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=3 ram=4.9/16.0GB (31%) swap=1.1/2.9GB (38%) cpu=14% browser_rss=0.56GB\n [capture-loop] iter=150 t=16.8s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=3 ram=4.9/16.0GB (31%) swap=1.1/2.9GB (38%) cpu=31% browser_rss=0.55GB\n Frame 5 saved (frame_004.jpg, t=17.1s)\n [capture-periodic] freeze=2ms shot=78ms unfreeze=3ms saved=True\n Frame 6 saved (frame_005.jpg, t=19.2s)\n [capture-periodic] freeze=3ms shot=69ms unfreeze=4ms saved=True\n Frame 7 saved (frame_006.jpg, t=21.3s)\n [capture-periodic] freeze=2ms shot=79ms unfreeze=8ms saved=True\n Node executed (1 total), capturing...\n Frame 8 saved (frame_007.jpg, t=22.7s)\n [capture-node] freeze=4ms shot=102ms unfreeze=3ms saved=True\n [capture-loop] iter=200 t=22.9s state={'complete': False, 'error': None, 'executedCount': 1, 'wsState': 1} eval_ms=4 ram=5.0/16.0GB (31%) swap=1.1/2.9GB (38%) cpu=17% browser_rss=0.62GB\n Node executed (2 total), capturing...\n Frame 9 saved (frame_008.jpg, t=24.8s)\n [capture-node] freeze=4ms shot=91ms unfreeze=3ms saved=True\n Execution complete (t=25.4s)\n Captured 9 unique frames over 25.54s\n [debug] iframes: 2\n [debug] iframe[0]: src=http://127.0.0.1:41894/extensions/ComfyUI-GeometryPack/viewer_multi.html?v=17789, canvas=368x393, rafFrozen=False\n [debug] iframe[1]: src=http://127.0.0.1:41894/extensions/ComfyUI-GeometryPack/viewer_multi.html?v=17789, canvas=368x195, rafFrozen=False\n [timing] trigger_3d_previews: 0.0s\n Saved high-quality screenshot: skeleton_all_executed.png\n [timing] final_screenshot: 0.2s\n Captured 10 video frames", "hardware": {"os": "Windows-2025Server-10.0.26100-SP0", "cpu": "AMD64 Family 25 Model 17 Stepping 1, AuthenticAMD"}}, "skeleton_extraction": {"src": "screenshots/skeleton_extraction_executed.png", "title": "skeleton_extraction", "status": "pass", "duration": "10.26", "log": "Capturing execution frames: skeleton_extraction.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=3ms shot=69ms unfreeze=14ms saved=True\n Node executed (1 total), capturing...\n Frame 3 saved (frame_002.jpg, t=2.6s)\n [capture-node] freeze=3ms shot=81ms unfreeze=0ms saved=True\n Execution complete (t=2.6s)\n Captured 3 unique frames over 2.74s\n [debug] iframes: 1\n [debug] iframe[0]: src=http://127.0.0.1:41894/extensions/ComfyUI-GeometryPack/viewer_dual.html?v=177896, canvas=742x485, rafFrozen=True\n [timing] trigger_3d_previews: 0.0s\n Saved high-quality screenshot: skeleton_extraction_executed.png\n [timing] final_screenshot: 0.2s\n Captured 4 video frames", "hardware": {"os": "Windows-2025Server-10.0.26100-SP0", "cpu": "AMD64 Family 25 Model 17 Stepping 1, AuthenticAMD"}}, "sMOOth": {"src": "screenshots/sMOOth_executed.png", "title": "sMOOth", "status": "pass", "duration": "10.92", "log": "Capturing execution frames: sMOOth.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Node executed (1 total), capturing...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-node] freeze=3ms shot=69ms unfreeze=3ms saved=True\n Node executed (2 total), capturing...\n Frame 3 saved (frame_002.jpg, t=3.0s)\n [capture-node] freeze=51ms shot=251ms unfreeze=0ms saved=True\n Execution complete (t=3.0s)\n Captured 3 unique frames over 3.32s\n [debug] iframes: 1\n [debug] iframe[0]: src=http://127.0.0.1:41894/extensions/ComfyUI-GeometryPack/viewer_dual.html?v=177896, canvas=370x485, rafFrozen=True\n [timing] trigger_3d_previews: 0.0s\n Saved high-quality screenshot: sMOOth_executed.png\n [timing] final_screenshot: 0.2s\n Captured 4 video frames", "hardware": {"os": "Windows-2025Server-10.0.26100-SP0", "cpu": "AMD64 Family 25 Model 17 Stepping 1, AuthenticAMD"}}, "smooth_all": {"src": "screenshots/smooth_all_executed.png", "title": "smooth_all", "status": "pass", "duration": "27.74", "log": "Capturing execution frames: smooth_all.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=3ms shot=99ms unfreeze=5ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.4s)\n [capture-periodic] freeze=2ms shot=69ms unfreeze=3ms saved=True\n [capture-loop] iter=50 t=5.6s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=3 ram=5.1/16.0GB (32%) swap=1.1/2.9GB (38%) cpu=22% browser_rss=0.69GB\n Frame 4 saved (frame_003.jpg, t=6.5s)\n [capture-periodic] freeze=3ms shot=83ms unfreeze=4ms saved=True\n Node executed (1 total), capturing...\n Frame 5 saved (frame_004.jpg, t=10.4s)\n [capture-node] freeze=3ms shot=80ms unfreeze=3ms saved=True\n [capture-loop] iter=100 t=11.4s state={'complete': False, 'error': None, 'executedCount': 1, 'wsState': 1} eval_ms=3 ram=5.1/16.0GB (32%) swap=1.1/2.9GB (38%) cpu=11% browser_rss=0.68GB\n Frame 6 saved (frame_005.jpg, t=12.5s)\n [capture-periodic] freeze=3ms shot=76ms unfreeze=4ms saved=True\n Node executed (2 total), capturing...\n Frame 7 saved (frame_006.jpg, t=12.9s)\n [capture-node] freeze=2ms shot=88ms unfreeze=4ms saved=True\n Node executed (3 total), capturing...\n Frame 8 saved (frame_007.jpg, t=14.2s)\n [capture-node] freeze=3ms shot=84ms unfreeze=6ms saved=True\n Node executed (4 total), capturing...\n Frame 9 saved (frame_008.jpg, t=14.9s)\n [capture-node] freeze=3ms shot=74ms unfreeze=3ms saved=True\n Frame 10 saved (frame_009.jpg, t=17.0s)\n [capture-periodic] freeze=3ms shot=82ms unfreeze=3ms saved=True\n Node executed (5 total), capturing...\n Frame 11 saved (frame_010.jpg, t=17.7s)\n [capture-node] freeze=177ms shot=172ms unfreeze=3ms saved=True\n [capture-loop] iter=150 t=18.3s state={'complete': False, 'error': None, 'executedCount': 5, 'wsState': 1} eval_ms=3 ram=5.1/16.0GB (32%) swap=1.1/2.9GB (38%) cpu=18% browser_rss=0.66GB\n Node executed (6 total), capturing...\n Frame 12 saved (frame_011.jpg, t=19.0s)\n [capture-node] freeze=4ms shot=88ms unfreeze=3ms saved=True\n Node executed (7 total), capturing...\n Frame 13 saved (frame_012.jpg, t=19.6s)\n [capture-node] freeze=3ms shot=96ms unfreeze=0ms saved=True\n Execution complete (t=19.6s)\n Captured 13 unique frames over 19.71s\n [debug] iframes: 2\n [debug] iframe[0]: src=http://127.0.0.1:41894/extensions/ComfyUI-GeometryPack/viewer_multi.html?v=17789, canvas=368x393, rafFrozen=True\n [debug] iframe[1]: src=http://127.0.0.1:41894/extensions/ComfyUI-GeometryPack/viewer_multi.html?v=17789, canvas=368x195, rafFrozen=True\n [timing] trigger_3d_previews: 0.0s\n Saved high-quality screenshot: smooth_all_executed.png\n [timing] final_screenshot: 0.4s\n Captured 14 video frames", "hardware": {"os": "Windows-2025Server-10.0.26100-SP0", "cpu": "AMD64 Family 25 Model 17 Stepping 1, AuthenticAMD"}}, "surface_reconstruction": {"src": "screenshots/surface_reconstruction_executed.png", "title": "surface_reconstruction", "status": "pass", "duration": "13.37", "log": "Capturing execution frames: surface_reconstruction.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=3ms shot=95ms unfreeze=3ms saved=True\n Node executed (1 total), capturing...\n Frame 3 saved (frame_002.jpg, t=3.6s)\n [capture-node] freeze=3ms shot=71ms unfreeze=4ms saved=True\n Node executed (2 total), capturing...\n Frame 4 saved (frame_003.jpg, t=4.4s)\n [capture-node] freeze=176ms shot=1055ms unfreeze=0ms saved=True\n Execution complete (t=4.4s)\n Captured 4 unique frames over 5.64s\n [debug] iframes: 1\n [debug] iframe[0]: src=http://127.0.0.1:41894/extensions/ComfyUI-GeometryPack/viewer_dual.html?v=177896, canvas=370x485, rafFrozen=True\n [timing] trigger_3d_previews: 0.0s\n Saved high-quality screenshot: surface_reconstruction_executed.png\n [timing] final_screenshot: 0.2s\n Captured 5 video frames", "hardware": {"os": "Windows-2025Server-10.0.26100-SP0", "cpu": "AMD64 Family 25 Model 17 Stepping 1, AuthenticAMD"}}, "test_loading": {"src": "", "title": "test_loading", "status": "fail", "duration": "6.32", "log": "Capturing execution frames: test_loading.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Execution complete (t=0.9s)\n Execution error: {'prompt_id': '7420c75d-5e27-4e33-b7ea-6e975c7ff3c6', 'node_id': '2', 'node_type': 'GeomPackLoadMeshFBX', 'executed': [], 'exception_message': 'Failed to load FBX file: DLL load failed while importing bpy: The specified procedure could not be found.\\n\\nWorker traceback:\\nTraceback (most recent call last):\\n File \"D:\\\\a\\\\comfy-gpu-ci\\\\comfy-gpu-ci\\\\test_workspaces\\\\GeometryPack-1945\\\\portable-comfyui\\\\ComfyUI_windows_portable\\\\ComfyUI\\\\custom_nodes\\\\ComfyUI-GeometryPack\\\\nodes\\\\blender_io\\\\load_mesh_fbx.py\", line 197, in execute\\n result = _bpy_import_fbx(full_path)\\n File \"D:\\\\a\\\\comfy-gpu-ci\\\\comfy-gpu-ci\\\\test_workspaces\\\\GeometryPack-1945\\\\portable-comfyui\\\\ComfyUI_windows_portable\\\\ComfyUI\\\\custom_nodes\\\\ComfyUI-GeometryPack\\\\nodes\\\\blender_io\\\\load_mesh_fbx.py\", line 31, in _bpy_import_fbx\\n import bpy\\nImportError: DLL load failed while importing bpy: The specified procedure could not be found.\\n\\nDuring handling of the above exception, another exception occurred:\\n\\nTraceback (most recent call last):\\n File \"C:\\\\Users\\\\stduser\\\\AppData\\\\Local\\\\Temp\\\\comfyui_pvenv_gdpr6wpb\\\\persistent_worker.py\", line 1762, in main\\n result = method(**inputs)\\n File \"D:\\\\a\\\\comfy-gpu-ci\\\\comfy-gpu-ci\\\\test_workspaces\\\\GeometryPack-1945\\\\portable-comfyui\\\\ComfyUI_windows_portable\\\\ComfyUI\\\\comfy_api\\\\latest\\\\_io.py\", line 1833, in EXECUTE_NORMALIZED\\n to_return = cls.execute(*args, **kwargs)\\n File \"D:\\\\a\\\\comfy-gpu-ci\\\\comfy-gpu-ci\\\\test_workspaces\\\\GeometryPack-1945\\\\portable-comfyui\\\\ComfyUI_windows_portable\\\\ComfyUI\\\\custom_nodes\\\\ComfyUI-GeometryPack\\\\nodes\\\\blender_io\\\\load_mesh_fbx.py\", line 199, in execute\\n raise ValueError(f\"Failed to load FBX file: {e}\")\\nValueError: Failed to load FBX file: DLL load failed while importing bpy: The specified procedure could not be found.\\n\\n', 'exception_type': 'comfy_env.isolation.workers.base.WorkerError', 'traceback': [' File \"D:\\\\a\\\\comfy-gpu-ci\\\\comfy-gpu-ci\\\\test_workspaces\\\\GeometryPack-1945\\\\portable-comfyui\\\\ComfyUI_windows_portable\\\\ComfyUI\\\\execution.py\", line 535, in execute\\n output_data, output_ui, has_subgraph, has_pending_tasks = await get_output_data(prompt_id, unique_id, obj, input_data_all, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n', ' File \"D:\\\\a\\\\comfy-gpu-ci\\\\comfy-gpu-ci\\\\test_workspaces\\\\GeometryPack-1945\\\\portable-comfyui\\\\ComfyUI_windows_portable\\\\ComfyUI\\\\execution.py\", line 335, in get_output_data\\n return_values = await _async_map_node_over_list(prompt_id, unique_id, obj, input_data_all, obj.FUNCTION, allow_interrupt=True, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n', ' File \"D:\\\\a\\\\comfy-gpu-ci\\\\comfy-gpu-ci\\\\test_workspaces\\\\GeometryPack-1945\\\\portable-comfyui\\\\ComfyUI_windows_portable\\\\ComfyUI\\\\execution.py\", line 309, in _async_map_node_over_list\\n await process_inputs(input_dict, i)\\n', ' File \"D:\\\\a\\\\comfy-gpu-ci\\\\comfy-gpu-ci\\\\test_workspaces\\\\GeometryPack-1945\\\\portable-comfyui\\\\ComfyUI_windows_portable\\\\ComfyUI\\\\execution.py\", line 297, in process_inputs\\n result = f(**inputs)\\n', ' File \"D:\\\\a\\\\comfy-gpu-ci\\\\comfy-gpu-ci\\\\test_workspaces\\\\GeometryPack-1945\\\\portable-comfyui\\\\ComfyUI_windows_portable\\\\python_embeded\\\\Lib\\\\site-packages\\\\comfy_env\\\\isolation\\\\metadata.py\", line 556, in proxy\\n result = worker.call_method(\\n module_name=mod,\\n ...<4 lines>...\\n timeout=600.0,\\n )\\n', ' File \"D:\\\\a\\\\comfy-gpu-ci\\\\comfy-gpu-ci\\\\test_workspaces\\\\GeometryPack-1945\\\\portable-comfyui\\\\ComfyUI_windows_portable\\\\python_embeded\\\\Lib\\\\site-packages\\\\comfy_env\\\\isolation\\\\workers\\\\subprocess.py\", line 674, in call_method\\n raise WorkerError(\\n ...<2 lines>...\\n )\\n'], 'current_inputs': {'file_path': ['3d/rigged_human.fbx'], 'prompt': ['{\\'1\\': {\\'inputs\\': {\\'file_path\\': \\'3d/coca_cola.blend\\', \\'report_panel\\': \\'false\\'}, \\'class_type\\': \\'GeomPackLoadMeshBlend\\', \\'_meta\\': {\\'title\\': \\'Load Mesh (Blender)\\'}}, \\'2\\': {\\'inputs\\': {\\'file_path\\': \\'3d/rigged_human.fbx\\', \\'report_panel\\': \\'false\\'}, \\'class_type\\': \\'GeomPackLoadMeshFBX\\', \\'_meta\\': {\\'title\\': \\'Load Mesh (FBX)\\'}}, \\'3\\': {\\'inputs\\': {\\'layout\\': \\'side_by_side\\', \\'mode\\': \\'fields\\', \\'opacity_1\\': 1.0, \\'opacity_2\\': 1.0, \\'preview_dual\\': \\'{\"show_edges\":false,\"camera_state\":\"\",\"selected_field\":\"\",\"selected_channel\":\"magnitude\",\"selected_colormap\":\"erdc_rainbow_bright\"}\\', \\'mesh_1\\': [\\'1\\', 0], \\'mesh_2\\': [\\'2\\', 0]}, \\'class_type\\': \\'GeomPackPreviewMeshDual\\', \\'_meta\\': {\\'title\\': \\'Preview Mesh Dual\\'}}}'], 'extra_pnginfo': ['{\\'workflow\\': {\\'id\\': \\'t8e9d0c1-2b3a-4567-890b-cdef12345678\\', \\'revision\\': 0, \\'last_node_id\\': 3, \\'last_link_id\\': 2, \\'nodes\\': [{\\'id\\': 1, \\'type\\': \\'GeomPackLoadMeshBlend\\', \\'pos\\': [-500, -100], \\'size\\': [270, 156.359375], \\'flags\\': {}, \\'order\\': 0, \\'mode\\': 0, \\'inputs\\': [], \\'outputs\\': [{\\'name\\': \\'mesh\\', \\'type\\': \\'TRIMESH\\', \\'links\\': [1]}, {\\'name\\': \\'info\\', \\'type\\': \\'STRING\\', \\'links\\': None}], \\'properties\\': {\\'Node name for S&R\\': \\'GeomPackLoadMeshBlend\\', \\'aux_id\\': \\'PozzettiAndrea/ComfyUI-GeometryPack\\', \\'ver\\': \\'0.1.1\\', \\'cnr_id\\': \\'comfyui-geometrypack\\'}, \\'widgets_values\\': [\\'3d/coca_cola.blend\\', \\'false\\']}, {\\'id\\': 2, \\'type\\': \\'GeomPackLoadMeshFBX\\', \\'pos\\': [-500, 100], \\'size\\': [270, 156.359375], \\'flags\\': {}, \\'order\\': 1, \\'mode\\': 0, \\'inputs\\': [], \\'outputs\\': [{\\'name\\': \\'mesh\\', \\'type\\': \\'TRIMESH\\', \\'links\\': [2]}, {\\'name\\': \\'info\\', \\'type\\': \\'STRING\\', \\'links\\': None}], \\'properties\\': {\\'Node name for S&R\\': \\'GeomPackLoadMeshFBX\\', \\'aux_id\\': \\'PozzettiAndrea/ComfyUI-GeometryPack\\', \\'ver\\': \\'0.1.1\\', \\'cnr_id\\': \\'comfyui-geometrypack\\'}, \\'widgets_values\\': [\\'3d/rigged_human.fbx\\', \\'false\\']}, {\\'id\\': 3, \\'type\\': \\'GeomPackPreviewMeshDual\\', \\'pos\\': [100, -50], \\'size\\': [768, 834], \\'flags\\': {}, \\'order\\': 2, \\'mode\\': 0, \\'inputs\\': [{\\'name\\': \\'mesh_1\\', \\'type\\': \\'TRIMESH\\', \\'link\\': 1}, {\\'name\\': \\'mesh_2\\', \\'type\\': \\'TRIMESH\\', \\'link\\': 2}], \\'outputs\\': [], \\'properties\\': {\\'Node name for S&R\\': \\'GeomPackPreviewMeshDual\\', \\'aux_id\\': \\'PozzettiAndrea/ComfyUI-GeometryPack\\', \\'ver\\': \\'0.1.1\\', \\'cnr_id\\': \\'comfyui-geometrypack\\'}, \\'widgets_values\\': [\\'side_by_side\\', \\'fields\\', 1, 1, \\'{\"show_edges\":false,\"camera_state\":\"\",\"selected_field\":\"\",\"selected_channel\":\"magnitude\",\"selected_colormap\":\"erdc_rainbow_bright\"}\\']}], \\'links\\': [[1, 1, 0, 3, 0, \\'TRIMESH\\'], [2, 2, 0, 3, 1, \\'TRIMESH\\']], \\'groups\\': [], \\'config\\': {}, \\'extra\\': {\\'ds\\': {\\'scale\\': 1, \\'offset\\': [600, 300]}, \\'frontendVersion\\': \\'1.43.18\\', \\'workflowRendererVersion\\': \\'LG\\'}, \\'version\\': 0.4}}']}, 'current_outputs': ['2', '3', '1'], 'timestamp': 1778962006336}\n Status: FAILED\n Error: Workflow execution failed: {'prompt_id': '7420c75d-5e27-4e33-b7ea-6e975c7ff3c6', 'node_id': '2', 'node_type': 'GeomPackLoadMeshFBX', 'executed': [], 'exception_message': 'Failed to load FBX file: DLL load failed while importing bpy: The specified procedure could not be found.\\n\\nWorker traceback:\\nTraceback (most recent call last):\\n File \"D:\\\\a\\\\comfy-gpu-ci\\\\comfy-gpu-ci\\\\test_workspaces\\\\GeometryPack-1945\\\\portable-comfyui\\\\ComfyUI_windows_portable\\\\ComfyUI\\\\custom_nodes\\\\ComfyUI-GeometryPack\\\\nodes\\\\blender_io\\\\load_mesh_fbx.py\", line 197, in execute\\n result = _bpy_import_fbx(full_path)\\n File \"D:\\\\a\\\\comfy-gpu-ci\\\\comfy-gpu-ci\\\\test_workspaces\\\\GeometryPack-1945\\\\portable-comfyui\\\\ComfyUI_windows_portable\\\\ComfyUI\\\\custom_nodes\\\\ComfyUI-GeometryPack\\\\nodes\\\\blender_io\\\\load_mesh_fbx.py\", line 31, in _bpy_import_fbx\\n import bpy\\nImportError: DLL load failed while importing bpy: The specified procedure could not be found.\\n\\nDuring handling of the above exception, another exception occurred:\\n\\nTraceback (most recent call last):\\n File \"C:\\\\Users\\\\stduser\\\\AppData\\\\Local\\\\Temp\\\\comfyui_pvenv_gdpr6wpb\\\\persistent_worker.py\", line 1762, in main\\n result = method(**inputs)\\n File \"D:\\\\a\\\\comfy-gpu-ci\\\\comfy-gpu-ci\\\\test_workspaces\\\\GeometryPack-1945\\\\portable-comfyui\\\\ComfyUI_windows_portable\\\\ComfyUI\\\\comfy_api\\\\latest\\\\_io.py\", line 1833, in EXECUTE_NORMALIZED\\n to_return = cls.execute(*args, **kwargs)\\n File \"D:\\\\a\\\\comfy-gpu-ci\\\\comfy-gpu-ci\\\\test_workspaces\\\\GeometryPack-1945\\\\portable-comfyui\\\\ComfyUI_windows_portable\\\\ComfyUI\\\\custom_nodes\\\\ComfyUI-GeometryPack\\\\nodes\\\\blender_io\\\\load_mesh_fbx.py\", line 199, in execute\\n raise ValueError(f\"Failed to load FBX file: {e}\")\\nValueError: Failed to load FBX file: DLL load failed while importing bpy: The specified procedure could not be found.\\n\\n', 'exception_type': 'comfy_env.isolation.workers.base.WorkerError', 'traceback': [' File \"D:\\\\a\\\\comfy-gpu-ci\\\\comfy-gpu-ci\\\\test_workspaces\\\\GeometryPack-1945\\\\portable-comfyui\\\\ComfyUI_windows_portable\\\\ComfyUI\\\\execution.py\", line 535, in execute\\n output_data, output_ui, has_subgraph, has_pending_tasks = await get_output_data(prompt_id, unique_id, obj, input_data_all, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n', ' File \"D:\\\\a\\\\comfy-gpu-ci\\\\comfy-gpu-ci\\\\test_workspaces\\\\GeometryPack-1945\\\\portable-comfyui\\\\ComfyUI_windows_portable\\\\ComfyUI\\\\execution.py\", line 335, in get_output_data\\n return_values = await _async_map_node_over_list(prompt_id, unique_id, obj, input_data_all, obj.FUNCTION, allow_interrupt=True, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n', ' File \"D:\\\\a\\\\comfy-gpu-ci\\\\comfy-gpu-ci\\\\test_workspaces\\\\GeometryPack-1945\\\\portable-comfyui\\\\ComfyUI_windows_portable\\\\ComfyUI\\\\execution.py\", line 309, in _async_map_node_over_list\\n await process_inputs(input_dict, i)\\n', ' File \"D:\\\\a\\\\comfy-gpu-ci\\\\comfy-gpu-ci\\\\test_workspaces\\\\GeometryPack-1945\\\\portable-comfyui\\\\ComfyUI_windows_portable\\\\ComfyUI\\\\execution.py\", line 297, in process_inputs\\n result = f(**inputs)\\n', ' File \"D:\\\\a\\\\comfy-gpu-ci\\\\comfy-gpu-ci\\\\test_workspaces\\\\GeometryPack-1945\\\\portable-comfyui\\\\ComfyUI_windows_portable\\\\python_embeded\\\\Lib\\\\site-packages\\\\comfy_env\\\\isolation\\\\metadata.py\", line 556, in proxy\\n result = worker.call_method(\\n module_name=mod,\\n ...<4 lines>...\\n timeout=600.0,\\n )\\n', ' File \"D:\\\\a\\\\comfy-gpu-ci\\\\comfy-gpu-ci\\\\test_workspaces\\\\GeometryPack-1945\\\\portable-comfyui\\\\ComfyUI_windows_portable\\\\python_embeded\\\\Lib\\\\site-packages\\\\comfy_env\\\\isolation\\\\workers\\\\subprocess.py\", line 674, in call_method\\n raise WorkerError(\\n ...<2 lines>...\\n )\\n'], 'current_inputs': {'file_path': ['3d/rigged_human.fbx'], 'prompt': ['{\\'1\\': {\\'inputs\\': {\\'file_path\\': \\'3d/coca_cola.blend\\', \\'report_panel\\': \\'false\\'}, \\'class_type\\': \\'GeomPackLoadMeshBlend\\', \\'_meta\\': {\\'title\\': \\'Load Mesh (Blender)\\'}}, \\'2\\': {\\'inputs\\': {\\'file_path\\': \\'3d/rigged_human.fbx\\', \\'report_panel\\': \\'false\\'}, \\'class_type\\': \\'GeomPackLoadMeshFBX\\', \\'_meta\\': {\\'title\\': \\'Load Mesh (FBX)\\'}}, \\'3\\': {\\'inputs\\': {\\'layout\\': \\'side_by_side\\', \\'mode\\': \\'fields\\', \\'opacity_1\\': 1.0, \\'opacity_2\\': 1.0, \\'preview_dual\\': \\'{\"show_edges\":false,\"camera_state\":\"\",\"selected_field\":\"\",\"selected_channel\":\"magnitude\",\"selected_colormap\":\"erdc_rainbow_bright\"}\\', \\'mesh_1\\': [\\'1\\', 0], \\'mesh_2\\': [\\'2\\', 0]}, \\'class_type\\': \\'GeomPackPreviewMeshDual\\', \\'_meta\\': {\\'title\\': \\'Preview Mesh Dual\\'}}}'], 'extra_pnginfo': ['{\\'workflow\\': {\\'id\\': \\'t8e9d0c1-2b3a-4567-890b-cdef12345678\\', \\'revision\\': 0, \\'last_node_id\\': 3, \\'last_link_id\\': 2, \\'nodes\\': [{\\'id\\': 1, \\'type\\': \\'GeomPackLoadMeshBlend\\', \\'pos\\': [-500, -100], \\'size\\': [270, 156.359375], \\'flags\\': {}, \\'order\\': 0, \\'mode\\': 0, \\'inputs\\': [], \\'outputs\\': [{\\'name\\': \\'mesh\\', \\'type\\': \\'TRIMESH\\', \\'links\\': [1]}, {\\'name\\': \\'info\\', \\'type\\': \\'STRING\\', \\'links\\': None}], \\'properties\\': {\\'Node name for S&R\\': \\'GeomPackLoadMeshBlend\\', \\'aux_id\\': \\'PozzettiAndrea/ComfyUI-GeometryPack\\', \\'ver\\': \\'0.1.1\\', \\'cnr_id\\': \\'comfyui-geometrypack\\'}, \\'widgets_values\\': [\\'3d/coca_cola.blend\\', \\'false\\']}, {\\'id\\': 2, \\'type\\': \\'GeomPackLoadMeshFBX\\', \\'pos\\': [-500, 100], \\'size\\': [270, 156.359375], \\'flags\\': {}, \\'order\\': 1, \\'mode\\': 0, \\'inputs\\': [], \\'outputs\\': [{\\'name\\': \\'mesh\\', \\'type\\': \\'TRIMESH\\', \\'links\\': [2]}, {\\'name\\': \\'info\\', \\'type\\': \\'STRING\\', \\'links\\': None}], \\'properties\\': {\\'Node name for S&R\\': \\'GeomPackLoadMeshFBX\\', \\'aux_id\\': \\'PozzettiAndrea/ComfyUI-GeometryPack\\', \\'ver\\': \\'0.1.1\\', \\'cnr_id\\': \\'comfyui-geometrypack\\'}, \\'widgets_values\\': [\\'3d/rigged_human.fbx\\', \\'false\\']}, {\\'id\\': 3, \\'type\\': \\'GeomPackPreviewMeshDual\\', \\'pos\\': [100, -50], \\'size\\': [768, 834], \\'flags\\': {}, \\'order\\': 2, \\'mode\\': 0, \\'inputs\\': [{\\'name\\': \\'mesh_1\\', \\'type\\': \\'TRIMESH\\', \\'link\\': 1}, {\\'name\\': \\'mesh_2\\', \\'type\\': \\'TRIMESH\\', \\'link\\': 2}], \\'outputs\\': [], \\'properties\\': {\\'Node name for S&R\\': \\'GeomPackPreviewMeshDual\\', \\'aux_id\\': \\'PozzettiAndrea/ComfyUI-GeometryPack\\', \\'ver\\': \\'0.1.1\\', \\'cnr_id\\': \\'comfyui-geometrypack\\'}, \\'widgets_values\\': [\\'side_by_side\\', \\'fields\\', 1, 1, \\'{\"show_edges\":false,\"camera_state\":\"\",\"selected_field\":\"\",\"selected_channel\":\"magnitude\",\"selected_colormap\":\"erdc_rainbow_bright\"}\\']}], \\'links\\': [[1, 1, 0, 3, 0, \\'TRIMESH\\'], [2, 2, 0, 3, 1, \\'TRIMESH\\']], \\'groups\\': [], \\'config\\': {}, \\'extra\\': {\\'ds\\': {\\'scale\\': 1, \\'offset\\': [600, 300]}, \\'frontendVersion\\': \\'1.43.18\\', \\'workflowRendererVersion\\': \\'LG\\'}, \\'version\\': 0.4}}']}, 'current_outputs': ['2', '3', '1'], 'timestamp': 1778962006336}\n Details: Workflow: C:\\Users\\stduser\\AppData\\Local\\Temp\\comfy-test-run-55pnstfx\\ComfyUI-GeometryPack\\workflows\\test_loading.json\nNode error: GeomPackLoadMeshFBX", "hardware": {"os": "Windows-2025Server-10.0.26100-SP0", "cpu": "AMD64 Family 25 Model 17 Stepping 1, AuthenticAMD"}}, "transform": {"src": "screenshots/transform_executed.png", "title": "transform", "status": "pass", "duration": "9.33", "log": "Capturing execution frames: transform.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Node executed (1 total), capturing...\n Frame 2 saved (frame_001.jpg, t=0.8s)\n [capture-node] freeze=3ms shot=69ms unfreeze=6ms saved=True\n Node executed (2 total), capturing...\n Frame 3 saved (frame_002.jpg, t=1.7s)\n [capture-node] freeze=40ms shot=74ms unfreeze=0ms saved=True\n Execution complete (t=1.7s)\n Captured 3 unique frames over 1.86s\n [debug] iframes: 1\n [debug] iframe[0]: src=http://127.0.0.1:41894/extensions/ComfyUI-GeometryPack/viewer_dual.html?v=177896, canvas=742x485, rafFrozen=True\n [timing] trigger_3d_previews: 0.0s\n Saved high-quality screenshot: transform_executed.png\n [timing] final_screenshot: 0.1s\n Captured 4 video frames", "hardware": {"os": "Windows-2025Server-10.0.26100-SP0", "cpu": "AMD64 Family 25 Model 17 Stepping 1, AuthenticAMD"}}, "uv_unwrap": {"src": "screenshots/uv_unwrap_executed.png", "title": "uv_unwrap", "status": "pass", "duration": "15.53", "log": "Capturing execution frames: uv_unwrap.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=8ms shot=96ms unfreeze=4ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.4s)\n [capture-periodic] freeze=4ms shot=106ms unfreeze=6ms saved=True\n [capture-loop] iter=50 t=5.8s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=8 ram=5.1/16.0GB (32%) swap=1.1/2.9GB (37%) cpu=34% browser_rss=0.58GB\n Node executed (1 total), capturing...\n Frame 4 saved (frame_003.jpg, t=7.0s)\n [capture-node] freeze=4ms shot=68ms unfreeze=4ms saved=True\n Node executed (2 total), capturing...\n Frame 5 saved (frame_004.jpg, t=7.9s)\n [capture-node] freeze=4ms shot=76ms unfreeze=0ms saved=True\n Execution complete (t=7.9s)\n Captured 5 unique frames over 8.0s\n [debug] iframes: 1\n [debug] iframe[0]: src=http://127.0.0.1:41894/extensions/ComfyUI-GeometryPack/viewer_uv.html?v=17789620, canvas=287x287, rafFrozen=True\n [timing] trigger_3d_previews: 0.0s\n Saved high-quality screenshot: uv_unwrap_executed.png\n [timing] final_screenshot: 0.1s\n Captured 6 video frames", "hardware": {"os": "Windows-2025Server-10.0.26100-SP0", "cpu": "AMD64 Family 25 Model 17 Stepping 1, AuthenticAMD"}}, "view_texture": {"src": "screenshots/view_texture_executed.png", "title": "view_texture", "status": "pass", "duration": "13.54", "log": "Capturing execution frames: view_texture.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.1s)\n [capture-periodic] freeze=3ms shot=68ms unfreeze=4ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.2s)\n [capture-periodic] freeze=3ms shot=68ms unfreeze=4ms saved=True\n [capture-loop] iter=50 t=5.5s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=3 ram=5.3/16.0GB (33%) swap=1.1/2.9GB (37%) cpu=28% browser_rss=0.66GB\n Node executed (1 total), capturing...\n Frame 4 saved (frame_003.jpg, t=5.9s)\n [capture-node] freeze=3ms shot=55ms unfreeze=0ms saved=True\n Execution complete (t=5.9s)\n Captured 4 unique frames over 5.95s\n [debug] iframes: 1\n [debug] iframe[0]: src=http://127.0.0.1:41894/extensions/ComfyUI-GeometryPack/viewer_vtk_textured.html?, canvas=221x224, rafFrozen=True\n [timing] trigger_3d_previews: 0.0s\n Saved high-quality screenshot: view_texture_executed.png\n [timing] final_screenshot: 0.1s\n Captured 5 video frames", "hardware": {"os": "Windows-2025Server-10.0.26100-SP0", "cpu": "AMD64 Family 25 Model 17 Stepping 1, AuthenticAMD"}}};
const workflowNames = Object.keys(workflowData);
const videoData = {"preview_mesh_threejs": {"frames": [{"file": "frame_000.jpg", "time": 0.0, "log": "Capturing execution frames: preview_mesh_threejs.json"}, {"file": "frame_001.jpg", "time": 2.25, "log": "Capturing execution frames: preview_mesh_threejs.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution..."}, {"file": "frame_002.jpg", "time": 4.41, "log": "Capturing execution frames: preview_mesh_threejs.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=8ms shot=80ms unfreeze=3ms saved=True"}, {"file": "frame_003.jpg", "time": 5.54, "log": "Capturing execution frames: preview_mesh_threejs.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=8ms shot=80ms unfreeze=3ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.4s)\n [capture-periodic] freeze=5ms shot=95ms unfreeze=5ms saved=True"}, {"file": "frame_004.jpg", "time": 7.793611526489258, "log": "Final screenshot"}], "total_time": 5.65}, "skeleton_extraction": {"frames": [{"file": "frame_000.jpg", "time": 0.0, "log": "Capturing execution frames: skeleton_extraction.json"}, {"file": "frame_001.jpg", "time": 2.17, "log": "Capturing execution frames: skeleton_extraction.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution..."}, {"file": "frame_002.jpg", "time": 2.63, "log": "Capturing execution frames: skeleton_extraction.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=3ms shot=69ms unfreeze=14ms saved=True"}, {"file": "frame_003.jpg", "time": 4.902827739715576, "log": "Final screenshot"}], "total_time": 2.74}, "side_by_side_viewer": {"frames": [{"file": "frame_000.jpg", "time": 0.0, "log": "Capturing execution frames: side_by_side_viewer.json"}, {"file": "frame_001.jpg", "time": 2.19, "log": "Capturing execution frames: side_by_side_viewer.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution..."}, {"file": "frame_002.jpg", "time": 4.31, "log": "Capturing execution frames: side_by_side_viewer.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=3ms shot=76ms unfreeze=3ms saved=True"}, {"file": "frame_003.jpg", "time": 6.44, "log": "Capturing execution frames: side_by_side_viewer.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=3ms shot=76ms unfreeze=3ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.3s)\n [capture-periodic] freeze=3ms shot=69ms unfreeze=4ms saved=True\n [capture-loop] iter=50 t=5.6s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=3 ram=5.0/16.0GB (31%) swap=1.1/2.9GB (38%) cpu=34% browser_rss=0.64GB"}, {"file": "frame_004.jpg", "time": 7.0, "log": "Capturing execution frames: side_by_side_viewer.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=3ms shot=76ms unfreeze=3ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.3s)\n [capture-periodic] freeze=3ms shot=69ms unfreeze=4ms saved=True\n [capture-loop] iter=50 t=5.6s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=3 ram=5.0/16.0GB (31%) swap=1.1/2.9GB (38%) cpu=34% browser_rss=0.64GB\n Frame 4 saved (frame_003.jpg, t=6.4s)\n [capture-periodic] freeze=2ms shot=61ms unfreeze=3ms saved=True"}, {"file": "frame_005.jpg", "time": 9.427674055099487, "log": "Final screenshot"}], "total_time": 7.21}, "sharpen": {"frames": [{"file": "frame_000.jpg", "time": 0.0, "log": "Capturing execution frames: sharpen.json"}, {"file": "frame_001.jpg", "time": 2.17, "log": "Capturing execution frames: sharpen.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution..."}, {"file": "frame_002.jpg", "time": 3.99, "log": "Capturing execution frames: sharpen.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=2ms shot=63ms unfreeze=4ms saved=True"}, {"file": "frame_003.jpg", "time": 6.1, "log": "Capturing execution frames: sharpen.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=2ms shot=63ms unfreeze=4ms saved=True\n Node executed (1 total), capturing...\n Frame 3 saved (frame_002.jpg, t=4.0s)\n [capture-node] freeze=4ms shot=70ms unfreeze=2ms saved=True\n [capture-loop] iter=50 t=5.7s state={'complete': False, 'error': None, 'executedCount': 1, 'wsState': 1} eval_ms=3 ram=5.2/16.0GB (33%) swap=0.9/2.9GB (32%) cpu=30% browser_rss=0.62GB"}, {"file": "frame_004.jpg", "time": 8.2, "log": "Capturing execution frames: sharpen.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=2ms shot=63ms unfreeze=4ms saved=True\n Node executed (1 total), capturing...\n Frame 3 saved (frame_002.jpg, t=4.0s)\n [capture-node] freeze=4ms shot=70ms unfreeze=2ms saved=True\n [capture-loop] iter=50 t=5.7s state={'complete': False, 'error': None, 'executedCount': 1, 'wsState': 1} eval_ms=3 ram=5.2/16.0GB (33%) swap=0.9/2.9GB (32%) cpu=30% browser_rss=0.62GB\n Frame 4 saved (frame_003.jpg, t=6.1s)\n [capture-periodic] freeze=2ms shot=70ms unfreeze=4ms saved=True"}, {"file": "frame_005.jpg", "time": 8.67, "log": "Capturing execution frames: sharpen.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=2ms shot=63ms unfreeze=4ms saved=True\n Node executed (1 total), capturing...\n Frame 3 saved (frame_002.jpg, t=4.0s)\n [capture-node] freeze=4ms shot=70ms unfreeze=2ms saved=True\n [capture-loop] iter=50 t=5.7s state={'complete': False, 'error': None, 'executedCount': 1, 'wsState': 1} eval_ms=3 ram=5.2/16.0GB (33%) swap=0.9/2.9GB (32%) cpu=30% browser_rss=0.62GB\n Frame 4 saved (frame_003.jpg, t=6.1s)\n [capture-periodic] freeze=2ms shot=70ms unfreeze=4ms saved=True\n Frame 5 saved (frame_004.jpg, t=8.2s)\n [capture-periodic] freeze=3ms shot=63ms unfreeze=3ms saved=True"}, {"file": "frame_006.jpg", "time": 11.382667779922485, "log": "Final screenshot"}], "total_time": 8.77}, "alpha_wrap": {"frames": [{"file": "frame_000.jpg", "time": 0.0, "log": "Capturing execution frames: alpha_wrap.json"}, {"file": "frame_001.jpg", "time": 2.64, "log": "Capturing execution frames: alpha_wrap.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution..."}, {"file": "frame_002.jpg", "time": 4.77, "log": "Capturing execution frames: alpha_wrap.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.6s)\n [capture-periodic] freeze=2ms shot=79ms unfreeze=3ms saved=True"}, {"file": "frame_003.jpg", "time": 6.9, "log": "Capturing execution frames: alpha_wrap.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.6s)\n [capture-periodic] freeze=2ms shot=79ms unfreeze=3ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.8s)\n [capture-periodic] freeze=2ms shot=83ms unfreeze=6ms saved=True\n [capture-loop] iter=50 t=6.1s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=3 ram=6.0/16.0GB (38%) swap=0.5/2.9GB (17%) cpu=23% browser_rss=0.69GB"}, {"file": "frame_004.jpg", "time": 11.17, "log": "Capturing execution frames: alpha_wrap.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.6s)\n [capture-periodic] freeze=2ms shot=79ms unfreeze=3ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.8s)\n [capture-periodic] freeze=2ms shot=83ms unfreeze=6ms saved=True\n [capture-loop] iter=50 t=6.1s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=3 ram=6.0/16.0GB (38%) swap=0.5/2.9GB (17%) cpu=23% browser_rss=0.69GB\n Frame 4 saved (frame_003.jpg, t=6.9s)\n [capture-periodic] freeze=2ms shot=104ms unfreeze=6ms saved=True"}, {"file": "frame_005.jpg", "time": 15.39, "log": "Capturing execution frames: alpha_wrap.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.6s)\n [capture-periodic] freeze=2ms shot=79ms unfreeze=3ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.8s)\n [capture-periodic] freeze=2ms shot=83ms unfreeze=6ms saved=True\n [capture-loop] iter=50 t=6.1s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=3 ram=6.0/16.0GB (38%) swap=0.5/2.9GB (17%) cpu=23% browser_rss=0.69GB\n Frame 4 saved (frame_003.jpg, t=6.9s)\n [capture-periodic] freeze=2ms shot=104ms unfreeze=6ms saved=True\n Frame 5 saved (frame_004.jpg, t=11.2s)\n [capture-periodic] freeze=2ms shot=74ms unfreeze=2ms saved=True\n [capture-loop] iter=100 t=11.9s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=3 ram=6.1/16.0GB (38%) swap=0.5/2.9GB (17%) cpu=29% browser_rss=0.68GB"}, {"file": "frame_006.jpg", "time": 17.23, "log": "Capturing execution frames: alpha_wrap.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.6s)\n [capture-periodic] freeze=2ms shot=79ms unfreeze=3ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.8s)\n [capture-periodic] freeze=2ms shot=83ms unfreeze=6ms saved=True\n [capture-loop] iter=50 t=6.1s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=3 ram=6.0/16.0GB (38%) swap=0.5/2.9GB (17%) cpu=23% browser_rss=0.69GB\n Frame 4 saved (frame_003.jpg, t=6.9s)\n [capture-periodic] freeze=2ms shot=104ms unfreeze=6ms saved=True\n Frame 5 saved (frame_004.jpg, t=11.2s)\n [capture-periodic] freeze=2ms shot=74ms unfreeze=2ms saved=True\n [capture-loop] iter=100 t=11.9s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=3 ram=6.1/16.0GB (38%) swap=0.5/2.9GB (17%) cpu=29% browser_rss=0.68GB\n Frame 6 saved (frame_005.jpg, t=15.4s)\n [capture-periodic] freeze=2ms shot=77ms unfreeze=3ms saved=True"}, {"file": "frame_007.jpg", "time": 17.93, "log": "Capturing execution frames: alpha_wrap.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.6s)\n [capture-periodic] freeze=2ms shot=79ms unfreeze=3ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.8s)\n [capture-periodic] freeze=2ms shot=83ms unfreeze=6ms saved=True\n [capture-loop] iter=50 t=6.1s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=3 ram=6.0/16.0GB (38%) swap=0.5/2.9GB (17%) cpu=23% browser_rss=0.69GB\n Frame 4 saved (frame_003.jpg, t=6.9s)\n [capture-periodic] freeze=2ms shot=104ms unfreeze=6ms saved=True\n Frame 5 saved (frame_004.jpg, t=11.2s)\n [capture-periodic] freeze=2ms shot=74ms unfreeze=2ms saved=True\n [capture-loop] iter=100 t=11.9s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=3 ram=6.1/16.0GB (38%) swap=0.5/2.9GB (17%) cpu=29% browser_rss=0.68GB\n Frame 6 saved (frame_005.jpg, t=15.4s)\n [capture-periodic] freeze=2ms shot=77ms unfreeze=3ms saved=True\n Node executed (1 total), capturing...\n Frame 7 saved (frame_006.jpg, t=17.2s)\n [capture-node] freeze=3ms shot=68ms unfreeze=3ms saved=True\n [capture-loop] iter=150 t=17.6s state={'complete': False, 'error': None, 'executedCount': 1, 'wsState': 1} eval_ms=3 ram=6.0/16.0GB (38%) swap=0.5/2.9GB (17%) cpu=12% browser_rss=0.69GB"}, {"file": "frame_008.jpg", "time": 20.26, "log": "Capturing execution frames: alpha_wrap.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.6s)\n [capture-periodic] freeze=2ms shot=79ms unfreeze=3ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.8s)\n [capture-periodic] freeze=2ms shot=83ms unfreeze=6ms saved=True\n [capture-loop] iter=50 t=6.1s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=3 ram=6.0/16.0GB (38%) swap=0.5/2.9GB (17%) cpu=23% browser_rss=0.69GB\n Frame 4 saved (frame_003.jpg, t=6.9s)\n [capture-periodic] freeze=2ms shot=104ms unfreeze=6ms saved=True\n Frame 5 saved (frame_004.jpg, t=11.2s)\n [capture-periodic] freeze=2ms shot=74ms unfreeze=2ms saved=True\n [capture-loop] iter=100 t=11.9s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=3 ram=6.1/16.0GB (38%) swap=0.5/2.9GB (17%) cpu=29% browser_rss=0.68GB\n Frame 6 saved (frame_005.jpg, t=15.4s)\n [capture-periodic] freeze=2ms shot=77ms unfreeze=3ms saved=True\n Node executed (1 total), capturing...\n Frame 7 saved (frame_006.jpg, t=17.2s)\n [capture-node] freeze=3ms shot=68ms unfreeze=3ms saved=True\n [capture-loop] iter=150 t=17.6s state={'complete': False, 'error': None, 'executedCount': 1, 'wsState': 1} eval_ms=3 ram=6.0/16.0GB (38%) swap=0.5/2.9GB (17%) cpu=12% browser_rss=0.69GB\n Node executed (2 total), capturing...\n Frame 8 saved (frame_007.jpg, t=17.9s)\n [capture-node] freeze=50ms shot=430ms unfreeze=4ms saved=True"}, {"file": "frame_009.jpg", "time": 20.88, "log": "Capturing execution frames: alpha_wrap.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.6s)\n [capture-periodic] freeze=2ms shot=79ms unfreeze=3ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.8s)\n [capture-periodic] freeze=2ms shot=83ms unfreeze=6ms saved=True\n [capture-loop] iter=50 t=6.1s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=3 ram=6.0/16.0GB (38%) swap=0.5/2.9GB (17%) cpu=23% browser_rss=0.69GB\n Frame 4 saved (frame_003.jpg, t=6.9s)\n [capture-periodic] freeze=2ms shot=104ms unfreeze=6ms saved=True\n Frame 5 saved (frame_004.jpg, t=11.2s)\n [capture-periodic] freeze=2ms shot=74ms unfreeze=2ms saved=True\n [capture-loop] iter=100 t=11.9s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=3 ram=6.1/16.0GB (38%) swap=0.5/2.9GB (17%) cpu=29% browser_rss=0.68GB\n Frame 6 saved (frame_005.jpg, t=15.4s)\n [capture-periodic] freeze=2ms shot=77ms unfreeze=3ms saved=True\n Node executed (1 total), capturing...\n Frame 7 saved (frame_006.jpg, t=17.2s)\n [capture-node] freeze=3ms shot=68ms unfreeze=3ms saved=True\n [capture-loop] iter=150 t=17.6s state={'complete': False, 'error': None, 'executedCount': 1, 'wsState': 1} eval_ms=3 ram=6.0/16.0GB (38%) swap=0.5/2.9GB (17%) cpu=12% browser_rss=0.69GB\n Node executed (2 total), capturing...\n Frame 8 saved (frame_007.jpg, t=17.9s)\n [capture-node] freeze=50ms shot=430ms unfreeze=4ms saved=True\n Node executed (3 total), capturing...\n Frame 9 saved (frame_008.jpg, t=20.3s)\n [capture-node] freeze=3ms shot=88ms unfreeze=3ms saved=True"}, {"file": "frame_010.jpg", "time": 23.28096890449524, "log": "Final screenshot"}], "total_time": 21.03}, "mesh_info": {"frames": [{"file": "frame_000.jpg", "time": 0.0, "log": "Capturing execution frames: mesh_info.json"}, {"file": "frame_001.jpg", "time": 2.16, "log": "Capturing execution frames: mesh_info.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution..."}, {"file": "frame_002.jpg", "time": 4.26, "log": "Capturing execution frames: mesh_info.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=3ms shot=76ms unfreeze=3ms saved=True"}, {"file": "frame_003.jpg", "time": 5.69, "log": "Capturing execution frames: mesh_info.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=3ms shot=76ms unfreeze=3ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.3s)\n [capture-periodic] freeze=5ms shot=73ms unfreeze=4ms saved=True"}, {"file": "frame_004.jpg", "time": 6.14, "log": "Capturing execution frames: mesh_info.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=3ms shot=76ms unfreeze=3ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.3s)\n [capture-periodic] freeze=5ms shot=73ms unfreeze=4ms saved=True\n [capture-loop] iter=50 t=5.5s state={'complete': False, 'error': None, 'executedCount': 1, 'wsState': 1} eval_ms=3 ram=5.4/16.0GB (34%) swap=0.8/2.9GB (28%) cpu=22% browser_rss=0.76GB\n Node executed (1 total), capturing...\n Frame 4 saved (frame_003.jpg, t=5.7s)\n [capture-node] freeze=3ms shot=61ms unfreeze=5ms saved=True"}, {"file": "frame_005.jpg", "time": 8.387181043624878, "log": "Final screenshot"}], "total_time": 6.24}, "batch_remesh": {"frames": [{"file": "frame_000.jpg", "time": 0.0, "log": "Capturing execution frames: batch_remesh.json"}, {"file": "frame_001.jpg", "time": 2.19, "log": "Capturing execution frames: batch_remesh.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution..."}, {"file": "frame_002.jpg", "time": 4.35, "log": "Capturing execution frames: batch_remesh.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=2ms shot=67ms unfreeze=2ms saved=True"}, {"file": "frame_003.jpg", "time": 4.73, "log": "Capturing execution frames: batch_remesh.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=2ms shot=67ms unfreeze=2ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.3s)\n [capture-periodic] freeze=4ms shot=85ms unfreeze=4ms saved=True"}, {"file": "frame_004.jpg", "time": 5.71, "log": "Capturing execution frames: batch_remesh.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=2ms shot=67ms unfreeze=2ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.3s)\n [capture-periodic] freeze=4ms shot=85ms unfreeze=4ms saved=True\n Node executed (1 total), capturing...\n Frame 4 saved (frame_003.jpg, t=4.7s)\n [capture-node] freeze=3ms shot=61ms unfreeze=2ms saved=True"}, {"file": "frame_005.jpg", "time": 7.9, "log": "Capturing execution frames: batch_remesh.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=2ms shot=67ms unfreeze=2ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.3s)\n [capture-periodic] freeze=4ms shot=85ms unfreeze=4ms saved=True\n Node executed (1 total), capturing...\n Frame 4 saved (frame_003.jpg, t=4.7s)\n [capture-node] freeze=3ms shot=61ms unfreeze=2ms saved=True\n Node executed (2 total), capturing...\n Frame 5 saved (frame_004.jpg, t=5.7s)\n [capture-node] freeze=3ms shot=83ms unfreeze=5ms saved=True\n [capture-loop] iter=50 t=6.1s state={'complete': False, 'error': None, 'executedCount': 2, 'wsState': 1} eval_ms=4 ram=6.6/16.0GB (42%) swap=0.5/2.9GB (17%) cpu=30% browser_rss=0.82GB"}, {"file": "frame_006.jpg", "time": 8.27, "log": "Capturing execution frames: batch_remesh.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=2ms shot=67ms unfreeze=2ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.3s)\n [capture-periodic] freeze=4ms shot=85ms unfreeze=4ms saved=True\n Node executed (1 total), capturing...\n Frame 4 saved (frame_003.jpg, t=4.7s)\n [capture-node] freeze=3ms shot=61ms unfreeze=2ms saved=True\n Node executed (2 total), capturing...\n Frame 5 saved (frame_004.jpg, t=5.7s)\n [capture-node] freeze=3ms shot=83ms unfreeze=5ms saved=True\n [capture-loop] iter=50 t=6.1s state={'complete': False, 'error': None, 'executedCount': 2, 'wsState': 1} eval_ms=4 ram=6.6/16.0GB (42%) swap=0.5/2.9GB (17%) cpu=30% browser_rss=0.82GB\n Node executed (3 total), capturing...\n Frame 6 saved (frame_005.jpg, t=7.9s)\n [capture-node] freeze=3ms shot=85ms unfreeze=3ms saved=True"}, {"file": "frame_007.jpg", "time": 8.63, "log": "Capturing execution frames: batch_remesh.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=2ms shot=67ms unfreeze=2ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.3s)\n [capture-periodic] freeze=4ms shot=85ms unfreeze=4ms saved=True\n Node executed (1 total), capturing...\n Frame 4 saved (frame_003.jpg, t=4.7s)\n [capture-node] freeze=3ms shot=61ms unfreeze=2ms saved=True\n Node executed (2 total), capturing...\n Frame 5 saved (frame_004.jpg, t=5.7s)\n [capture-node] freeze=3ms shot=83ms unfreeze=5ms saved=True\n [capture-loop] iter=50 t=6.1s state={'complete': False, 'error': None, 'executedCount': 2, 'wsState': 1} eval_ms=4 ram=6.6/16.0GB (42%) swap=0.5/2.9GB (17%) cpu=30% browser_rss=0.82GB\n Node executed (3 total), capturing...\n Frame 6 saved (frame_005.jpg, t=7.9s)\n [capture-node] freeze=3ms shot=85ms unfreeze=3ms saved=True\n Node executed (4 total), capturing...\n Frame 7 saved (frame_006.jpg, t=8.3s)\n [capture-node] freeze=3ms shot=78ms unfreeze=3ms saved=True"}, {"file": "frame_008.jpg", "time": 9.03, "log": "Capturing execution frames: batch_remesh.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=2ms shot=67ms unfreeze=2ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.3s)\n [capture-periodic] freeze=4ms shot=85ms unfreeze=4ms saved=True\n Node executed (1 total), capturing...\n Frame 4 saved (frame_003.jpg, t=4.7s)\n [capture-node] freeze=3ms shot=61ms unfreeze=2ms saved=True\n Node executed (2 total), capturing...\n Frame 5 saved (frame_004.jpg, t=5.7s)\n [capture-node] freeze=3ms shot=83ms unfreeze=5ms saved=True\n [capture-loop] iter=50 t=6.1s state={'complete': False, 'error': None, 'executedCount': 2, 'wsState': 1} eval_ms=4 ram=6.6/16.0GB (42%) swap=0.5/2.9GB (17%) cpu=30% browser_rss=0.82GB\n Node executed (3 total), capturing...\n Frame 6 saved (frame_005.jpg, t=7.9s)\n [capture-node] freeze=3ms shot=85ms unfreeze=3ms saved=True\n Node executed (4 total), capturing...\n Frame 7 saved (frame_006.jpg, t=8.3s)\n [capture-node] freeze=3ms shot=78ms unfreeze=3ms saved=True\n Node executed (5 total), capturing...\n Frame 8 saved (frame_007.jpg, t=8.6s)\n [capture-node] freeze=12ms shot=107ms unfreeze=4ms saved=True"}, {"file": "frame_009.jpg", "time": 11.378254175186157, "log": "Final screenshot"}], "total_time": 9.22}, "surface_reconstruction": {"frames": [{"file": "frame_000.jpg", "time": 0.0, "log": "Capturing execution frames: surface_reconstruction.json"}, {"file": "frame_001.jpg", "time": 2.22, "log": "Capturing execution frames: surface_reconstruction.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution..."}, {"file": "frame_002.jpg", "time": 3.58, "log": "Capturing execution frames: surface_reconstruction.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=3ms shot=95ms unfreeze=3ms saved=True"}, {"file": "frame_003.jpg", "time": 4.39, "log": "Capturing execution frames: surface_reconstruction.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=3ms shot=95ms unfreeze=3ms saved=True\n Node executed (1 total), capturing...\n Frame 3 saved (frame_002.jpg, t=3.6s)\n [capture-node] freeze=3ms shot=71ms unfreeze=4ms saved=True"}, {"file": "frame_004.jpg", "time": 7.830147743225098, "log": "Final screenshot"}], "total_time": 5.64}, "transform": {"frames": [{"file": "frame_000.jpg", "time": 0.0, "log": "Capturing execution frames: transform.json"}, {"file": "frame_001.jpg", "time": 0.84, "log": "Capturing execution frames: transform.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution..."}, {"file": "frame_002.jpg", "time": 1.73, "log": "Capturing execution frames: transform.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Node executed (1 total), capturing...\n Frame 2 saved (frame_001.jpg, t=0.8s)\n [capture-node] freeze=3ms shot=69ms unfreeze=6ms saved=True"}, {"file": "frame_003.jpg", "time": 4.023160219192505, "log": "Final screenshot"}], "total_time": 1.86}, "view_texture": {"frames": [{"file": "frame_000.jpg", "time": 0.0, "log": "Capturing execution frames: view_texture.json"}, {"file": "frame_001.jpg", "time": 2.14, "log": "Capturing execution frames: view_texture.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution..."}, {"file": "frame_002.jpg", "time": 4.24, "log": "Capturing execution frames: view_texture.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.1s)\n [capture-periodic] freeze=3ms shot=68ms unfreeze=4ms saved=True"}, {"file": "frame_003.jpg", "time": 5.87, "log": "Capturing execution frames: view_texture.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.1s)\n [capture-periodic] freeze=3ms shot=68ms unfreeze=4ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.2s)\n [capture-periodic] freeze=3ms shot=68ms unfreeze=4ms saved=True\n [capture-loop] iter=50 t=5.5s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=3 ram=5.3/16.0GB (33%) swap=1.1/2.9GB (37%) cpu=28% browser_rss=0.66GB"}, {"file": "frame_004.jpg", "time": 8.087008237838745, "log": "Final screenshot"}], "total_time": 5.95}, "decimate_all": {"frames": [{"file": "frame_000.jpg", "time": 0.0, "log": "Capturing execution frames: decimate_all.json"}, {"file": "frame_001.jpg", "time": 2.17, "log": "Capturing execution frames: decimate_all.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution..."}, {"file": "frame_002.jpg", "time": 4.26, "log": "Capturing execution frames: decimate_all.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=3ms shot=67ms unfreeze=3ms saved=True"}, {"file": "frame_003.jpg", "time": 5.04, "log": "Capturing execution frames: decimate_all.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=3ms shot=67ms unfreeze=3ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.3s)\n [capture-periodic] freeze=3ms shot=74ms unfreeze=2ms saved=True"}, {"file": "frame_004.jpg", "time": 7.5, "log": "Capturing execution frames: decimate_all.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=3ms shot=67ms unfreeze=3ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.3s)\n [capture-periodic] freeze=3ms shot=74ms unfreeze=2ms saved=True\n Node executed (1 total), capturing...\n Frame 4 saved (frame_003.jpg, t=5.0s)\n [capture-node] freeze=3ms shot=73ms unfreeze=3ms saved=True\n [capture-loop] iter=50 t=5.8s state={'complete': False, 'error': None, 'executedCount': 1, 'wsState': 1} eval_ms=3 ram=6.0/16.0GB (38%) swap=0.5/2.9GB (16%) cpu=18% browser_rss=0.75GB"}, {"file": "frame_005.jpg", "time": 9.27, "log": "Capturing execution frames: decimate_all.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=3ms shot=67ms unfreeze=3ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.3s)\n [capture-periodic] freeze=3ms shot=74ms unfreeze=2ms saved=True\n Node executed (1 total), capturing...\n Frame 4 saved (frame_003.jpg, t=5.0s)\n [capture-node] freeze=3ms shot=73ms unfreeze=3ms saved=True\n [capture-loop] iter=50 t=5.8s state={'complete': False, 'error': None, 'executedCount': 1, 'wsState': 1} eval_ms=3 ram=6.0/16.0GB (38%) swap=0.5/2.9GB (16%) cpu=18% browser_rss=0.75GB\n Node executed (2 total), capturing...\n Frame 5 saved (frame_004.jpg, t=7.5s)\n [capture-node] freeze=3ms shot=67ms unfreeze=3ms saved=True"}, {"file": "frame_006.jpg", "time": 26.28, "log": "Capturing execution frames: decimate_all.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=3ms shot=67ms unfreeze=3ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.3s)\n [capture-periodic] freeze=3ms shot=74ms unfreeze=2ms saved=True\n Node executed (1 total), capturing...\n Frame 4 saved (frame_003.jpg, t=5.0s)\n [capture-node] freeze=3ms shot=73ms unfreeze=3ms saved=True\n [capture-loop] iter=50 t=5.8s state={'complete': False, 'error': None, 'executedCount': 1, 'wsState': 1} eval_ms=3 ram=6.0/16.0GB (38%) swap=0.5/2.9GB (16%) cpu=18% browser_rss=0.75GB\n Node executed (2 total), capturing...\n Frame 5 saved (frame_004.jpg, t=7.5s)\n [capture-node] freeze=3ms shot=67ms unfreeze=3ms saved=True\n Node executed (3 total), capturing...\n Frame 6 saved (frame_005.jpg, t=9.3s)\n [capture-node] freeze=845ms shot=549ms unfreeze=4ms saved=True\n Node executed (4 total), capturing...\n [capture-node] freeze=3ms shot=111ms unfreeze=3ms saved=False\n [capture-loop] iter=100 t=13.4s state={'complete': False, 'error': None, 'executedCount': 4, 'wsState': 1} eval_ms=3 ram=6.1/16.0GB (38%) swap=0.5/2.9GB (16%) cpu=32% browser_rss=0.83GB\n [capture-loop] iter=150 t=18.9s state={'complete': False, 'error': None, 'executedCount': 4, 'wsState': 1} eval_ms=3 ram=6.1/16.0GB (38%) swap=0.5/2.9GB (18%) cpu=8% browser_rss=0.82GB\n [capture-loop] iter=200 t=24.6s state={'complete': False, 'error': None, 'executedCount': 4, 'wsState': 1} eval_ms=3 ram=5.9/16.0GB (37%) swap=0.7/2.9GB (23%) cpu=11% browser_rss=0.80GB"}, {"file": "frame_007.jpg", "time": 27.96, "log": "Capturing execution frames: decimate_all.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=3ms shot=67ms unfreeze=3ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.3s)\n [capture-periodic] freeze=3ms shot=74ms unfreeze=2ms saved=True\n Node executed (1 total), capturing...\n Frame 4 saved (frame_003.jpg, t=5.0s)\n [capture-node] freeze=3ms shot=73ms unfreeze=3ms saved=True\n [capture-loop] iter=50 t=5.8s state={'complete': False, 'error': None, 'executedCount': 1, 'wsState': 1} eval_ms=3 ram=6.0/16.0GB (38%) swap=0.5/2.9GB (16%) cpu=18% browser_rss=0.75GB\n Node executed (2 total), capturing...\n Frame 5 saved (frame_004.jpg, t=7.5s)\n [capture-node] freeze=3ms shot=67ms unfreeze=3ms saved=True\n Node executed (3 total), capturing...\n Frame 6 saved (frame_005.jpg, t=9.3s)\n [capture-node] freeze=845ms shot=549ms unfreeze=4ms saved=True\n Node executed (4 total), capturing...\n [capture-node] freeze=3ms shot=111ms unfreeze=3ms saved=False\n [capture-loop] iter=100 t=13.4s state={'complete': False, 'error': None, 'executedCount': 4, 'wsState': 1} eval_ms=3 ram=6.1/16.0GB (38%) swap=0.5/2.9GB (16%) cpu=32% browser_rss=0.83GB\n [capture-loop] iter=150 t=18.9s state={'complete': False, 'error': None, 'executedCount': 4, 'wsState': 1} eval_ms=3 ram=6.1/16.0GB (38%) swap=0.5/2.9GB (18%) cpu=8% browser_rss=0.82GB\n [capture-loop] iter=200 t=24.6s state={'complete': False, 'error': None, 'executedCount': 4, 'wsState': 1} eval_ms=3 ram=5.9/16.0GB (37%) swap=0.7/2.9GB (23%) cpu=11% browser_rss=0.80GB\n Node executed (5 total), capturing...\n Frame 7 saved (frame_006.jpg, t=26.3s)\n [capture-node] freeze=4ms shot=113ms unfreeze=4ms saved=True"}, {"file": "frame_008.jpg", "time": 31.701005220413208, "log": "Final screenshot"}], "total_time": 29.45}, "sMOOth": {"frames": [{"file": "frame_000.jpg", "time": 0.0, "log": "Capturing execution frames: sMOOth.json"}, {"file": "frame_001.jpg", "time": 2.21, "log": "Capturing execution frames: sMOOth.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution..."}, {"file": "frame_002.jpg", "time": 3.0, "log": "Capturing execution frames: sMOOth.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Node executed (1 total), capturing...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-node] freeze=3ms shot=69ms unfreeze=3ms saved=True"}, {"file": "frame_003.jpg", "time": 5.49831485748291, "log": "Final screenshot"}], "total_time": 3.32}, "smooth_all": {"frames": [{"file": "frame_000.jpg", "time": 0.0, "log": "Capturing execution frames: smooth_all.json"}, {"file": "frame_001.jpg", "time": 2.23, "log": "Capturing execution frames: smooth_all.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution..."}, {"file": "frame_002.jpg", "time": 4.37, "log": "Capturing execution frames: smooth_all.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=3ms shot=99ms unfreeze=5ms saved=True"}, {"file": "frame_003.jpg", "time": 6.48, "log": "Capturing execution frames: smooth_all.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=3ms shot=99ms unfreeze=5ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.4s)\n [capture-periodic] freeze=2ms shot=69ms unfreeze=3ms saved=True\n [capture-loop] iter=50 t=5.6s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=3 ram=5.1/16.0GB (32%) swap=1.1/2.9GB (38%) cpu=22% browser_rss=0.69GB"}, {"file": "frame_004.jpg", "time": 10.42, "log": "Capturing execution frames: smooth_all.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=3ms shot=99ms unfreeze=5ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.4s)\n [capture-periodic] freeze=2ms shot=69ms unfreeze=3ms saved=True\n [capture-loop] iter=50 t=5.6s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=3 ram=5.1/16.0GB (32%) swap=1.1/2.9GB (38%) cpu=22% browser_rss=0.69GB\n Frame 4 saved (frame_003.jpg, t=6.5s)\n [capture-periodic] freeze=3ms shot=83ms unfreeze=4ms saved=True"}, {"file": "frame_005.jpg", "time": 12.53, "log": "Capturing execution frames: smooth_all.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=3ms shot=99ms unfreeze=5ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.4s)\n [capture-periodic] freeze=2ms shot=69ms unfreeze=3ms saved=True\n [capture-loop] iter=50 t=5.6s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=3 ram=5.1/16.0GB (32%) swap=1.1/2.9GB (38%) cpu=22% browser_rss=0.69GB\n Frame 4 saved (frame_003.jpg, t=6.5s)\n [capture-periodic] freeze=3ms shot=83ms unfreeze=4ms saved=True\n Node executed (1 total), capturing...\n Frame 5 saved (frame_004.jpg, t=10.4s)\n [capture-node] freeze=3ms shot=80ms unfreeze=3ms saved=True\n [capture-loop] iter=100 t=11.4s state={'complete': False, 'error': None, 'executedCount': 1, 'wsState': 1} eval_ms=3 ram=5.1/16.0GB (32%) swap=1.1/2.9GB (38%) cpu=11% browser_rss=0.68GB"}, {"file": "frame_006.jpg", "time": 12.9, "log": "Capturing execution frames: smooth_all.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=3ms shot=99ms unfreeze=5ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.4s)\n [capture-periodic] freeze=2ms shot=69ms unfreeze=3ms saved=True\n [capture-loop] iter=50 t=5.6s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=3 ram=5.1/16.0GB (32%) swap=1.1/2.9GB (38%) cpu=22% browser_rss=0.69GB\n Frame 4 saved (frame_003.jpg, t=6.5s)\n [capture-periodic] freeze=3ms shot=83ms unfreeze=4ms saved=True\n Node executed (1 total), capturing...\n Frame 5 saved (frame_004.jpg, t=10.4s)\n [capture-node] freeze=3ms shot=80ms unfreeze=3ms saved=True\n [capture-loop] iter=100 t=11.4s state={'complete': False, 'error': None, 'executedCount': 1, 'wsState': 1} eval_ms=3 ram=5.1/16.0GB (32%) swap=1.1/2.9GB (38%) cpu=11% browser_rss=0.68GB\n Frame 6 saved (frame_005.jpg, t=12.5s)\n [capture-periodic] freeze=3ms shot=76ms unfreeze=4ms saved=True"}, {"file": "frame_007.jpg", "time": 14.22, "log": "Capturing execution frames: smooth_all.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=3ms shot=99ms unfreeze=5ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.4s)\n [capture-periodic] freeze=2ms shot=69ms unfreeze=3ms saved=True\n [capture-loop] iter=50 t=5.6s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=3 ram=5.1/16.0GB (32%) swap=1.1/2.9GB (38%) cpu=22% browser_rss=0.69GB\n Frame 4 saved (frame_003.jpg, t=6.5s)\n [capture-periodic] freeze=3ms shot=83ms unfreeze=4ms saved=True\n Node executed (1 total), capturing...\n Frame 5 saved (frame_004.jpg, t=10.4s)\n [capture-node] freeze=3ms shot=80ms unfreeze=3ms saved=True\n [capture-loop] iter=100 t=11.4s state={'complete': False, 'error': None, 'executedCount': 1, 'wsState': 1} eval_ms=3 ram=5.1/16.0GB (32%) swap=1.1/2.9GB (38%) cpu=11% browser_rss=0.68GB\n Frame 6 saved (frame_005.jpg, t=12.5s)\n [capture-periodic] freeze=3ms shot=76ms unfreeze=4ms saved=True\n Node executed (2 total), capturing...\n Frame 7 saved (frame_006.jpg, t=12.9s)\n [capture-node] freeze=2ms shot=88ms unfreeze=4ms saved=True"}, {"file": "frame_008.jpg", "time": 14.92, "log": "Capturing execution frames: smooth_all.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=3ms shot=99ms unfreeze=5ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.4s)\n [capture-periodic] freeze=2ms shot=69ms unfreeze=3ms saved=True\n [capture-loop] iter=50 t=5.6s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=3 ram=5.1/16.0GB (32%) swap=1.1/2.9GB (38%) cpu=22% browser_rss=0.69GB\n Frame 4 saved (frame_003.jpg, t=6.5s)\n [capture-periodic] freeze=3ms shot=83ms unfreeze=4ms saved=True\n Node executed (1 total), capturing...\n Frame 5 saved (frame_004.jpg, t=10.4s)\n [capture-node] freeze=3ms shot=80ms unfreeze=3ms saved=True\n [capture-loop] iter=100 t=11.4s state={'complete': False, 'error': None, 'executedCount': 1, 'wsState': 1} eval_ms=3 ram=5.1/16.0GB (32%) swap=1.1/2.9GB (38%) cpu=11% browser_rss=0.68GB\n Frame 6 saved (frame_005.jpg, t=12.5s)\n [capture-periodic] freeze=3ms shot=76ms unfreeze=4ms saved=True\n Node executed (2 total), capturing...\n Frame 7 saved (frame_006.jpg, t=12.9s)\n [capture-node] freeze=2ms shot=88ms unfreeze=4ms saved=True\n Node executed (3 total), capturing...\n Frame 8 saved (frame_007.jpg, t=14.2s)\n [capture-node] freeze=3ms shot=84ms unfreeze=6ms saved=True"}, {"file": "frame_009.jpg", "time": 17.02, "log": "Capturing execution frames: smooth_all.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=3ms shot=99ms unfreeze=5ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.4s)\n [capture-periodic] freeze=2ms shot=69ms unfreeze=3ms saved=True\n [capture-loop] iter=50 t=5.6s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=3 ram=5.1/16.0GB (32%) swap=1.1/2.9GB (38%) cpu=22% browser_rss=0.69GB\n Frame 4 saved (frame_003.jpg, t=6.5s)\n [capture-periodic] freeze=3ms shot=83ms unfreeze=4ms saved=True\n Node executed (1 total), capturing...\n Frame 5 saved (frame_004.jpg, t=10.4s)\n [capture-node] freeze=3ms shot=80ms unfreeze=3ms saved=True\n [capture-loop] iter=100 t=11.4s state={'complete': False, 'error': None, 'executedCount': 1, 'wsState': 1} eval_ms=3 ram=5.1/16.0GB (32%) swap=1.1/2.9GB (38%) cpu=11% browser_rss=0.68GB\n Frame 6 saved (frame_005.jpg, t=12.5s)\n [capture-periodic] freeze=3ms shot=76ms unfreeze=4ms saved=True\n Node executed (2 total), capturing...\n Frame 7 saved (frame_006.jpg, t=12.9s)\n [capture-node] freeze=2ms shot=88ms unfreeze=4ms saved=True\n Node executed (3 total), capturing...\n Frame 8 saved (frame_007.jpg, t=14.2s)\n [capture-node] freeze=3ms shot=84ms unfreeze=6ms saved=True\n Node executed (4 total), capturing...\n Frame 9 saved (frame_008.jpg, t=14.9s)\n [capture-node] freeze=3ms shot=74ms unfreeze=3ms saved=True"}, {"file": "frame_010.jpg", "time": 17.71, "log": "Capturing execution frames: smooth_all.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=3ms shot=99ms unfreeze=5ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.4s)\n [capture-periodic] freeze=2ms shot=69ms unfreeze=3ms saved=True\n [capture-loop] iter=50 t=5.6s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=3 ram=5.1/16.0GB (32%) swap=1.1/2.9GB (38%) cpu=22% browser_rss=0.69GB\n Frame 4 saved (frame_003.jpg, t=6.5s)\n [capture-periodic] freeze=3ms shot=83ms unfreeze=4ms saved=True\n Node executed (1 total), capturing...\n Frame 5 saved (frame_004.jpg, t=10.4s)\n [capture-node] freeze=3ms shot=80ms unfreeze=3ms saved=True\n [capture-loop] iter=100 t=11.4s state={'complete': False, 'error': None, 'executedCount': 1, 'wsState': 1} eval_ms=3 ram=5.1/16.0GB (32%) swap=1.1/2.9GB (38%) cpu=11% browser_rss=0.68GB\n Frame 6 saved (frame_005.jpg, t=12.5s)\n [capture-periodic] freeze=3ms shot=76ms unfreeze=4ms saved=True\n Node executed (2 total), capturing...\n Frame 7 saved (frame_006.jpg, t=12.9s)\n [capture-node] freeze=2ms shot=88ms unfreeze=4ms saved=True\n Node executed (3 total), capturing...\n Frame 8 saved (frame_007.jpg, t=14.2s)\n [capture-node] freeze=3ms shot=84ms unfreeze=6ms saved=True\n Node executed (4 total), capturing...\n Frame 9 saved (frame_008.jpg, t=14.9s)\n [capture-node] freeze=3ms shot=74ms unfreeze=3ms saved=True\n Frame 10 saved (frame_009.jpg, t=17.0s)\n [capture-periodic] freeze=3ms shot=82ms unfreeze=3ms saved=True"}, {"file": "frame_011.jpg", "time": 18.98, "log": "Capturing execution frames: smooth_all.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=3ms shot=99ms unfreeze=5ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.4s)\n [capture-periodic] freeze=2ms shot=69ms unfreeze=3ms saved=True\n [capture-loop] iter=50 t=5.6s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=3 ram=5.1/16.0GB (32%) swap=1.1/2.9GB (38%) cpu=22% browser_rss=0.69GB\n Frame 4 saved (frame_003.jpg, t=6.5s)\n [capture-periodic] freeze=3ms shot=83ms unfreeze=4ms saved=True\n Node executed (1 total), capturing...\n Frame 5 saved (frame_004.jpg, t=10.4s)\n [capture-node] freeze=3ms shot=80ms unfreeze=3ms saved=True\n [capture-loop] iter=100 t=11.4s state={'complete': False, 'error': None, 'executedCount': 1, 'wsState': 1} eval_ms=3 ram=5.1/16.0GB (32%) swap=1.1/2.9GB (38%) cpu=11% browser_rss=0.68GB\n Frame 6 saved (frame_005.jpg, t=12.5s)\n [capture-periodic] freeze=3ms shot=76ms unfreeze=4ms saved=True\n Node executed (2 total), capturing...\n Frame 7 saved (frame_006.jpg, t=12.9s)\n [capture-node] freeze=2ms shot=88ms unfreeze=4ms saved=True\n Node executed (3 total), capturing...\n Frame 8 saved (frame_007.jpg, t=14.2s)\n [capture-node] freeze=3ms shot=84ms unfreeze=6ms saved=True\n Node executed (4 total), capturing...\n Frame 9 saved (frame_008.jpg, t=14.9s)\n [capture-node] freeze=3ms shot=74ms unfreeze=3ms saved=True\n Frame 10 saved (frame_009.jpg, t=17.0s)\n [capture-periodic] freeze=3ms shot=82ms unfreeze=3ms saved=True\n Node executed (5 total), capturing...\n Frame 11 saved (frame_010.jpg, t=17.7s)\n [capture-node] freeze=177ms shot=172ms unfreeze=3ms saved=True\n [capture-loop] iter=150 t=18.3s state={'complete': False, 'error': None, 'executedCount': 5, 'wsState': 1} eval_ms=3 ram=5.1/16.0GB (32%) swap=1.1/2.9GB (38%) cpu=18% browser_rss=0.66GB"}, {"file": "frame_012.jpg", "time": 19.58, "log": "Capturing execution frames: smooth_all.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=3ms shot=99ms unfreeze=5ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.4s)\n [capture-periodic] freeze=2ms shot=69ms unfreeze=3ms saved=True\n [capture-loop] iter=50 t=5.6s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=3 ram=5.1/16.0GB (32%) swap=1.1/2.9GB (38%) cpu=22% browser_rss=0.69GB\n Frame 4 saved (frame_003.jpg, t=6.5s)\n [capture-periodic] freeze=3ms shot=83ms unfreeze=4ms saved=True\n Node executed (1 total), capturing...\n Frame 5 saved (frame_004.jpg, t=10.4s)\n [capture-node] freeze=3ms shot=80ms unfreeze=3ms saved=True\n [capture-loop] iter=100 t=11.4s state={'complete': False, 'error': None, 'executedCount': 1, 'wsState': 1} eval_ms=3 ram=5.1/16.0GB (32%) swap=1.1/2.9GB (38%) cpu=11% browser_rss=0.68GB\n Frame 6 saved (frame_005.jpg, t=12.5s)\n [capture-periodic] freeze=3ms shot=76ms unfreeze=4ms saved=True\n Node executed (2 total), capturing...\n Frame 7 saved (frame_006.jpg, t=12.9s)\n [capture-node] freeze=2ms shot=88ms unfreeze=4ms saved=True\n Node executed (3 total), capturing...\n Frame 8 saved (frame_007.jpg, t=14.2s)\n [capture-node] freeze=3ms shot=84ms unfreeze=6ms saved=True\n Node executed (4 total), capturing...\n Frame 9 saved (frame_008.jpg, t=14.9s)\n [capture-node] freeze=3ms shot=74ms unfreeze=3ms saved=True\n Frame 10 saved (frame_009.jpg, t=17.0s)\n [capture-periodic] freeze=3ms shot=82ms unfreeze=3ms saved=True\n Node executed (5 total), capturing...\n Frame 11 saved (frame_010.jpg, t=17.7s)\n [capture-node] freeze=177ms shot=172ms unfreeze=3ms saved=True\n [capture-loop] iter=150 t=18.3s state={'complete': False, 'error': None, 'executedCount': 5, 'wsState': 1} eval_ms=3 ram=5.1/16.0GB (32%) swap=1.1/2.9GB (38%) cpu=18% browser_rss=0.66GB\n Node executed (6 total), capturing...\n Frame 12 saved (frame_011.jpg, t=19.0s)\n [capture-node] freeze=4ms shot=88ms unfreeze=3ms saved=True"}, {"file": "frame_013.jpg", "time": 22.115421772003174, "log": "Final screenshot"}], "total_time": 19.71}, "remeshing": {"frames": [{"file": "frame_000.jpg", "time": 0.0, "log": "Capturing execution frames: remeshing.json"}, {"file": "frame_001.jpg", "time": 6.45, "log": "Capturing execution frames: remeshing.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution..."}, {"file": "frame_002.jpg", "time": 12.79, "log": "Capturing execution frames: remeshing.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=6.5s)\n [capture-periodic] freeze=4ms shot=76ms unfreeze=5ms saved=True\n [capture-loop] iter=50 t=11.8s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=4 ram=5.3/16.0GB (33%) swap=0.9/2.9GB (32%) cpu=21% browser_rss=0.70GB"}, {"file": "frame_003.jpg", "time": 43.33, "log": "Capturing execution frames: remeshing.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=6.5s)\n [capture-periodic] freeze=4ms shot=76ms unfreeze=5ms saved=True\n [capture-loop] iter=50 t=11.8s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=4 ram=5.3/16.0GB (33%) swap=0.9/2.9GB (32%) cpu=21% browser_rss=0.70GB\n Frame 3 saved (frame_002.jpg, t=12.8s)\n [capture-periodic] freeze=3ms shot=74ms unfreeze=3ms saved=True\n [capture-loop] iter=100 t=17.4s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=3 ram=5.3/16.0GB (33%) swap=0.9/2.9GB (32%) cpu=32% browser_rss=0.70GB\n [capture-loop] iter=150 t=22.9s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=3 ram=5.2/16.0GB (32%) swap=0.9/2.9GB (32%) cpu=33% browser_rss=0.57GB\n [capture-loop] iter=200 t=28.5s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=3 ram=5.2/16.0GB (32%) swap=0.9/2.9GB (32%) cpu=32% browser_rss=0.57GB\n [capture-loop] iter=250 t=34.0s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=4 ram=5.2/16.0GB (32%) swap=0.9/2.9GB (32%) cpu=31% browser_rss=0.57GB\n [capture-loop] iter=300 t=39.5s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=3 ram=5.2/16.0GB (32%) swap=0.9/2.9GB (32%) cpu=32% browser_rss=0.57GB"}, {"file": "frame_004.jpg", "time": 44.0, "log": "Capturing execution frames: remeshing.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=6.5s)\n [capture-periodic] freeze=4ms shot=76ms unfreeze=5ms saved=True\n [capture-loop] iter=50 t=11.8s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=4 ram=5.3/16.0GB (33%) swap=0.9/2.9GB (32%) cpu=21% browser_rss=0.70GB\n Frame 3 saved (frame_002.jpg, t=12.8s)\n [capture-periodic] freeze=3ms shot=74ms unfreeze=3ms saved=True\n [capture-loop] iter=100 t=17.4s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=3 ram=5.3/16.0GB (33%) swap=0.9/2.9GB (32%) cpu=32% browser_rss=0.70GB\n [capture-loop] iter=150 t=22.9s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=3 ram=5.2/16.0GB (32%) swap=0.9/2.9GB (32%) cpu=33% browser_rss=0.57GB\n [capture-loop] iter=200 t=28.5s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=3 ram=5.2/16.0GB (32%) swap=0.9/2.9GB (32%) cpu=32% browser_rss=0.57GB\n [capture-loop] iter=250 t=34.0s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=4 ram=5.2/16.0GB (32%) swap=0.9/2.9GB (32%) cpu=31% browser_rss=0.57GB\n [capture-loop] iter=300 t=39.5s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=3 ram=5.2/16.0GB (32%) swap=0.9/2.9GB (32%) cpu=32% browser_rss=0.57GB\n Node executed (1 total), capturing...\n Frame 4 saved (frame_003.jpg, t=43.3s)\n [capture-node] freeze=3ms shot=68ms unfreeze=4ms saved=True"}, {"file": "frame_005.jpg", "time": 46.311052083969116, "log": "Final screenshot"}], "total_time": 44.09}, "boolean_ops": {"frames": [{"file": "frame_000.jpg", "time": 0.0, "log": "Capturing execution frames: boolean_ops.json"}, {"file": "frame_001.jpg", "time": 1.06, "log": "Capturing execution frames: boolean_ops.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution..."}, {"file": "frame_002.jpg", "time": 2.1, "log": "Capturing execution frames: boolean_ops.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Node executed (1 total), capturing...\n Frame 2 saved (frame_001.jpg, t=1.1s)\n [capture-node] freeze=39ms shot=80ms unfreeze=4ms saved=True"}, {"file": "frame_003.jpg", "time": 2.63, "log": "Capturing execution frames: boolean_ops.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Node executed (1 total), capturing...\n Frame 2 saved (frame_001.jpg, t=1.1s)\n [capture-node] freeze=39ms shot=80ms unfreeze=4ms saved=True\n Node executed (2 total), capturing...\n Frame 3 saved (frame_002.jpg, t=2.1s)\n [capture-node] freeze=12ms shot=233ms unfreeze=3ms saved=True"}, {"file": "frame_004.jpg", "time": 4.92969274520874, "log": "Final screenshot"}], "total_time": 2.74}, "reconstruct_all": {"frames": [{"file": "frame_000.jpg", "time": 0.0, "log": "Capturing execution frames: reconstruct_all.json"}, {"file": "frame_001.jpg", "time": 1.94, "log": "Capturing execution frames: reconstruct_all.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution..."}, {"file": "frame_002.jpg", "time": 4.15, "log": "Capturing execution frames: reconstruct_all.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Node executed (1 total), capturing...\n Frame 2 saved (frame_001.jpg, t=1.9s)\n [capture-node] freeze=56ms shot=106ms unfreeze=4ms saved=True"}, {"file": "frame_003.jpg", "time": 4.52, "log": "Capturing execution frames: reconstruct_all.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Node executed (1 total), capturing...\n Frame 2 saved (frame_001.jpg, t=1.9s)\n [capture-node] freeze=56ms shot=106ms unfreeze=4ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.2s)\n [capture-periodic] freeze=2ms shot=92ms unfreeze=3ms saved=True"}, {"file": "frame_004.jpg", "time": 5.31, "log": "Capturing execution frames: reconstruct_all.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Node executed (1 total), capturing...\n Frame 2 saved (frame_001.jpg, t=1.9s)\n [capture-node] freeze=56ms shot=106ms unfreeze=4ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.2s)\n [capture-periodic] freeze=2ms shot=92ms unfreeze=3ms saved=True\n Node executed (2 total), capturing...\n Frame 4 saved (frame_003.jpg, t=4.5s)\n [capture-node] freeze=3ms shot=80ms unfreeze=3ms saved=True"}, {"file": "frame_005.jpg", "time": 7.08, "log": "Capturing execution frames: reconstruct_all.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Node executed (1 total), capturing...\n Frame 2 saved (frame_001.jpg, t=1.9s)\n [capture-node] freeze=56ms shot=106ms unfreeze=4ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.2s)\n [capture-periodic] freeze=2ms shot=92ms unfreeze=3ms saved=True\n Node executed (2 total), capturing...\n Frame 4 saved (frame_003.jpg, t=4.5s)\n [capture-node] freeze=3ms shot=80ms unfreeze=3ms saved=True\n Node executed (3 total), capturing...\n Frame 5 saved (frame_004.jpg, t=5.3s)\n [capture-node] freeze=4ms shot=110ms unfreeze=4ms saved=True\n Node executed (4 total), capturing...\n [capture-node] freeze=18ms shot=109ms unfreeze=4ms saved=False\n [capture-loop] iter=50 t=6.7s state={'complete': False, 'error': None, 'executedCount': 4, 'wsState': 1} eval_ms=4 ram=5.2/16.0GB (33%) swap=0.9/2.9GB (32%) cpu=27% browser_rss=0.68GB"}, {"file": "frame_006.jpg", "time": 7.99, "log": "Capturing execution frames: reconstruct_all.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Node executed (1 total), capturing...\n Frame 2 saved (frame_001.jpg, t=1.9s)\n [capture-node] freeze=56ms shot=106ms unfreeze=4ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.2s)\n [capture-periodic] freeze=2ms shot=92ms unfreeze=3ms saved=True\n Node executed (2 total), capturing...\n Frame 4 saved (frame_003.jpg, t=4.5s)\n [capture-node] freeze=3ms shot=80ms unfreeze=3ms saved=True\n Node executed (3 total), capturing...\n Frame 5 saved (frame_004.jpg, t=5.3s)\n [capture-node] freeze=4ms shot=110ms unfreeze=4ms saved=True\n Node executed (4 total), capturing...\n [capture-node] freeze=18ms shot=109ms unfreeze=4ms saved=False\n [capture-loop] iter=50 t=6.7s state={'complete': False, 'error': None, 'executedCount': 4, 'wsState': 1} eval_ms=4 ram=5.2/16.0GB (33%) swap=0.9/2.9GB (32%) cpu=27% browser_rss=0.68GB\n Node executed (5 total), capturing...\n Frame 6 saved (frame_005.jpg, t=7.1s)\n [capture-node] freeze=4ms shot=89ms unfreeze=3ms saved=True"}, {"file": "frame_007.jpg", "time": 11.217267274856567, "log": "Final screenshot"}], "total_time": 8.18}, "refine_mesh": {"frames": [{"file": "frame_000.jpg", "time": 0.0, "log": "Capturing execution frames: refine_mesh.json"}, {"file": "frame_001.jpg", "time": 1.47, "log": "Capturing execution frames: refine_mesh.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution..."}, {"file": "frame_002.jpg", "time": 2.34, "log": "Capturing execution frames: refine_mesh.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Node executed (1 total), capturing...\n Frame 2 saved (frame_001.jpg, t=1.5s)\n [capture-node] freeze=3ms shot=57ms unfreeze=4ms saved=True"}, {"file": "frame_003.jpg", "time": 5.401483774185181, "log": "Final screenshot"}], "total_time": 3.23}, "remesh_intersections": {"frames": [{"file": "frame_000.jpg", "time": 0.0, "log": "Capturing execution frames: remesh_intersections.json"}, {"file": "frame_001.jpg", "time": 2.15, "log": "Capturing execution frames: remesh_intersections.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution..."}, {"file": "frame_002.jpg", "time": 4.23, "log": "Capturing execution frames: remesh_intersections.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.1s)\n [capture-periodic] freeze=2ms shot=52ms unfreeze=3ms saved=True"}, {"file": "frame_003.jpg", "time": 5.86, "log": "Capturing execution frames: remesh_intersections.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.1s)\n [capture-periodic] freeze=2ms shot=52ms unfreeze=3ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.2s)\n [capture-periodic] freeze=3ms shot=56ms unfreeze=2ms saved=True\n [capture-loop] iter=50 t=5.5s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=3 ram=5.2/16.0GB (33%) swap=0.9/2.9GB (32%) cpu=26% browser_rss=0.59GB"}, {"file": "frame_004.jpg", "time": 8.74, "log": "Capturing execution frames: remesh_intersections.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.1s)\n [capture-periodic] freeze=2ms shot=52ms unfreeze=3ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.2s)\n [capture-periodic] freeze=3ms shot=56ms unfreeze=2ms saved=True\n [capture-loop] iter=50 t=5.5s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=3 ram=5.2/16.0GB (33%) swap=0.9/2.9GB (32%) cpu=26% browser_rss=0.59GB\n Node executed (1 total), capturing...\n Frame 4 saved (frame_003.jpg, t=5.9s)\n [capture-node] freeze=3ms shot=57ms unfreeze=4ms saved=True"}, {"file": "frame_005.jpg", "time": 11.17, "log": "Capturing execution frames: remesh_intersections.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.1s)\n [capture-periodic] freeze=2ms shot=52ms unfreeze=3ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.2s)\n [capture-periodic] freeze=3ms shot=56ms unfreeze=2ms saved=True\n [capture-loop] iter=50 t=5.5s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=3 ram=5.2/16.0GB (33%) swap=0.9/2.9GB (32%) cpu=26% browser_rss=0.59GB\n Node executed (1 total), capturing...\n Frame 4 saved (frame_003.jpg, t=5.9s)\n [capture-node] freeze=3ms shot=57ms unfreeze=4ms saved=True\n Node executed (2 total), capturing...\n Frame 5 saved (frame_004.jpg, t=8.7s)\n [capture-node] freeze=3ms shot=65ms unfreeze=3ms saved=True"}, {"file": "frame_006.jpg", "time": 12.47, "log": "Capturing execution frames: remesh_intersections.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.1s)\n [capture-periodic] freeze=2ms shot=52ms unfreeze=3ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.2s)\n [capture-periodic] freeze=3ms shot=56ms unfreeze=2ms saved=True\n [capture-loop] iter=50 t=5.5s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=3 ram=5.2/16.0GB (33%) swap=0.9/2.9GB (32%) cpu=26% browser_rss=0.59GB\n Node executed (1 total), capturing...\n Frame 4 saved (frame_003.jpg, t=5.9s)\n [capture-node] freeze=3ms shot=57ms unfreeze=4ms saved=True\n Node executed (2 total), capturing...\n Frame 5 saved (frame_004.jpg, t=8.7s)\n [capture-node] freeze=3ms shot=65ms unfreeze=3ms saved=True\n Node executed (3 total), capturing...\n Frame 6 saved (frame_005.jpg, t=11.2s)\n [capture-node] freeze=4ms shot=61ms unfreeze=3ms saved=True\n [capture-loop] iter=100 t=11.7s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=3 ram=5.3/16.0GB (33%) swap=0.9/2.9GB (32%) cpu=16% browser_rss=0.59GB"}, {"file": "frame_007.jpg", "time": 14.733110666275024, "log": "Final screenshot"}], "total_time": 12.57}, "fix_normals_all": {"frames": [{"file": "frame_000.jpg", "time": 0.0, "log": "Capturing execution frames: fix_normals_all.json"}, {"file": "frame_001.jpg", "time": 2.17, "log": "Capturing execution frames: fix_normals_all.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution..."}, {"file": "frame_002.jpg", "time": 4.28, "log": "Capturing execution frames: fix_normals_all.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=2ms shot=76ms unfreeze=3ms saved=True"}, {"file": "frame_003.jpg", "time": 6.13, "log": "Capturing execution frames: fix_normals_all.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=2ms shot=76ms unfreeze=3ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.3s)\n [capture-periodic] freeze=2ms shot=69ms unfreeze=3ms saved=True\n [capture-loop] iter=50 t=5.5s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=3 ram=6.1/16.0GB (38%) swap=0.8/2.9GB (28%) cpu=25% browser_rss=0.85GB"}, {"file": "frame_004.jpg", "time": 6.91, "log": "Capturing execution frames: fix_normals_all.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=2ms shot=76ms unfreeze=3ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.3s)\n [capture-periodic] freeze=2ms shot=69ms unfreeze=3ms saved=True\n [capture-loop] iter=50 t=5.5s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=3 ram=6.1/16.0GB (38%) swap=0.8/2.9GB (28%) cpu=25% browser_rss=0.85GB\n Node executed (1 total), capturing...\n Frame 4 saved (frame_003.jpg, t=6.1s)\n [capture-node] freeze=4ms shot=68ms unfreeze=2ms saved=True"}, {"file": "frame_005.jpg", "time": 8.22, "log": "Capturing execution frames: fix_normals_all.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=2ms shot=76ms unfreeze=3ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.3s)\n [capture-periodic] freeze=2ms shot=69ms unfreeze=3ms saved=True\n [capture-loop] iter=50 t=5.5s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=3 ram=6.1/16.0GB (38%) swap=0.8/2.9GB (28%) cpu=25% browser_rss=0.85GB\n Node executed (1 total), capturing...\n Frame 4 saved (frame_003.jpg, t=6.1s)\n [capture-node] freeze=4ms shot=68ms unfreeze=2ms saved=True\n Node executed (2 total), capturing...\n Frame 5 saved (frame_004.jpg, t=6.9s)\n [capture-node] freeze=4ms shot=76ms unfreeze=4ms saved=True"}, {"file": "frame_006.jpg", "time": 9.32, "log": "Capturing execution frames: fix_normals_all.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=2ms shot=76ms unfreeze=3ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.3s)\n [capture-periodic] freeze=2ms shot=69ms unfreeze=3ms saved=True\n [capture-loop] iter=50 t=5.5s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=3 ram=6.1/16.0GB (38%) swap=0.8/2.9GB (28%) cpu=25% browser_rss=0.85GB\n Node executed (1 total), capturing...\n Frame 4 saved (frame_003.jpg, t=6.1s)\n [capture-node] freeze=4ms shot=68ms unfreeze=2ms saved=True\n Node executed (2 total), capturing...\n Frame 5 saved (frame_004.jpg, t=6.9s)\n [capture-node] freeze=4ms shot=76ms unfreeze=4ms saved=True\n Node executed (3 total), capturing...\n Frame 6 saved (frame_005.jpg, t=8.2s)\n [capture-node] freeze=4ms shot=75ms unfreeze=3ms saved=True"}, {"file": "frame_007.jpg", "time": 10.82, "log": "Capturing execution frames: fix_normals_all.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=2ms shot=76ms unfreeze=3ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.3s)\n [capture-periodic] freeze=2ms shot=69ms unfreeze=3ms saved=True\n [capture-loop] iter=50 t=5.5s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=3 ram=6.1/16.0GB (38%) swap=0.8/2.9GB (28%) cpu=25% browser_rss=0.85GB\n Node executed (1 total), capturing...\n Frame 4 saved (frame_003.jpg, t=6.1s)\n [capture-node] freeze=4ms shot=68ms unfreeze=2ms saved=True\n Node executed (2 total), capturing...\n Frame 5 saved (frame_004.jpg, t=6.9s)\n [capture-node] freeze=4ms shot=76ms unfreeze=4ms saved=True\n Node executed (3 total), capturing...\n Frame 6 saved (frame_005.jpg, t=8.2s)\n [capture-node] freeze=4ms shot=75ms unfreeze=3ms saved=True\n Node executed (4 total), capturing...\n Frame 7 saved (frame_006.jpg, t=9.3s)\n [capture-node] freeze=3ms shot=75ms unfreeze=3ms saved=True"}, {"file": "frame_008.jpg", "time": 12.13, "log": "Capturing execution frames: fix_normals_all.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=2ms shot=76ms unfreeze=3ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.3s)\n [capture-periodic] freeze=2ms shot=69ms unfreeze=3ms saved=True\n [capture-loop] iter=50 t=5.5s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=3 ram=6.1/16.0GB (38%) swap=0.8/2.9GB (28%) cpu=25% browser_rss=0.85GB\n Node executed (1 total), capturing...\n Frame 4 saved (frame_003.jpg, t=6.1s)\n [capture-node] freeze=4ms shot=68ms unfreeze=2ms saved=True\n Node executed (2 total), capturing...\n Frame 5 saved (frame_004.jpg, t=6.9s)\n [capture-node] freeze=4ms shot=76ms unfreeze=4ms saved=True\n Node executed (3 total), capturing...\n Frame 6 saved (frame_005.jpg, t=8.2s)\n [capture-node] freeze=4ms shot=75ms unfreeze=3ms saved=True\n Node executed (4 total), capturing...\n Frame 7 saved (frame_006.jpg, t=9.3s)\n [capture-node] freeze=3ms shot=75ms unfreeze=3ms saved=True\n Node executed (5 total), capturing...\n Frame 8 saved (frame_007.jpg, t=10.8s)\n [capture-node] freeze=315ms shot=295ms unfreeze=4ms saved=True"}, {"file": "frame_009.jpg", "time": 13.69, "log": "Capturing execution frames: fix_normals_all.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=2ms shot=76ms unfreeze=3ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.3s)\n [capture-periodic] freeze=2ms shot=69ms unfreeze=3ms saved=True\n [capture-loop] iter=50 t=5.5s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=3 ram=6.1/16.0GB (38%) swap=0.8/2.9GB (28%) cpu=25% browser_rss=0.85GB\n Node executed (1 total), capturing...\n Frame 4 saved (frame_003.jpg, t=6.1s)\n [capture-node] freeze=4ms shot=68ms unfreeze=2ms saved=True\n Node executed (2 total), capturing...\n Frame 5 saved (frame_004.jpg, t=6.9s)\n [capture-node] freeze=4ms shot=76ms unfreeze=4ms saved=True\n Node executed (3 total), capturing...\n Frame 6 saved (frame_005.jpg, t=8.2s)\n [capture-node] freeze=4ms shot=75ms unfreeze=3ms saved=True\n Node executed (4 total), capturing...\n Frame 7 saved (frame_006.jpg, t=9.3s)\n [capture-node] freeze=3ms shot=75ms unfreeze=3ms saved=True\n Node executed (5 total), capturing...\n Frame 8 saved (frame_007.jpg, t=10.8s)\n [capture-node] freeze=315ms shot=295ms unfreeze=4ms saved=True\n Node executed (6 total), capturing...\n Frame 9 saved (frame_008.jpg, t=12.1s)\n [capture-node] freeze=3ms shot=77ms unfreeze=3ms saved=True\n [capture-loop] iter=100 t=13.0s state={'complete': False, 'error': None, 'executedCount': 6, 'wsState': 1} eval_ms=4 ram=5.4/16.0GB (34%) swap=0.8/2.9GB (28%) cpu=20% browser_rss=0.73GB"}, {"file": "frame_010.jpg", "time": 16.348083972930908, "log": "Final screenshot"}], "total_time": 13.81}, "decimate": {"frames": [{"file": "frame_000.jpg", "time": 0.0, "log": "Capturing execution frames: decimate.json"}, {"file": "frame_001.jpg", "time": 2.21, "log": "Capturing execution frames: decimate.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution..."}, {"file": "frame_002.jpg", "time": 4.36, "log": "Capturing execution frames: decimate.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=3ms shot=95ms unfreeze=8ms saved=True"}, {"file": "frame_003.jpg", "time": 14.89, "log": "Capturing execution frames: decimate.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=3ms shot=95ms unfreeze=8ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.4s)\n [capture-periodic] freeze=3ms shot=76ms unfreeze=3ms saved=True\n [capture-loop] iter=50 t=5.6s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=3 ram=5.8/16.0GB (36%) swap=0.5/2.9GB (17%) cpu=25% browser_rss=0.74GB\n [capture-loop] iter=100 t=11.2s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=3 ram=5.9/16.0GB (37%) swap=0.5/2.9GB (17%) cpu=14% browser_rss=0.73GB"}, {"file": "frame_004.jpg", "time": 22.03, "log": "Capturing execution frames: decimate.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=3ms shot=95ms unfreeze=8ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.4s)\n [capture-periodic] freeze=3ms shot=76ms unfreeze=3ms saved=True\n [capture-loop] iter=50 t=5.6s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=3 ram=5.8/16.0GB (36%) swap=0.5/2.9GB (17%) cpu=25% browser_rss=0.74GB\n [capture-loop] iter=100 t=11.2s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=3 ram=5.9/16.0GB (37%) swap=0.5/2.9GB (17%) cpu=14% browser_rss=0.73GB\n Frame 4 saved (frame_003.jpg, t=14.9s)\n [capture-periodic] freeze=3ms shot=75ms unfreeze=3ms saved=True\n [capture-loop] iter=150 t=16.7s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=3 ram=5.8/16.0GB (36%) swap=0.5/2.9GB (16%) cpu=8% browser_rss=0.68GB"}, {"file": "frame_005.jpg", "time": 23.65, "log": "Capturing execution frames: decimate.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=3ms shot=95ms unfreeze=8ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.4s)\n [capture-periodic] freeze=3ms shot=76ms unfreeze=3ms saved=True\n [capture-loop] iter=50 t=5.6s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=3 ram=5.8/16.0GB (36%) swap=0.5/2.9GB (17%) cpu=25% browser_rss=0.74GB\n [capture-loop] iter=100 t=11.2s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=3 ram=5.9/16.0GB (37%) swap=0.5/2.9GB (17%) cpu=14% browser_rss=0.73GB\n Frame 4 saved (frame_003.jpg, t=14.9s)\n [capture-periodic] freeze=3ms shot=75ms unfreeze=3ms saved=True\n [capture-loop] iter=150 t=16.7s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=3 ram=5.8/16.0GB (36%) swap=0.5/2.9GB (16%) cpu=8% browser_rss=0.68GB\n Node executed (1 total), capturing...\n Frame 5 saved (frame_004.jpg, t=22.0s)\n [capture-node] freeze=3ms shot=71ms unfreeze=2ms saved=True\n [capture-loop] iter=200 t=22.4s state={'complete': False, 'error': None, 'executedCount': 1, 'wsState': 1} eval_ms=3 ram=5.8/16.0GB (37%) swap=0.5/2.9GB (16%) cpu=9% browser_rss=0.68GB"}, {"file": "frame_006.jpg", "time": 25.98319721221924, "log": "Final screenshot"}], "total_time": 23.77}, "mesh_mesh_distance": {"frames": [{"file": "frame_000.jpg", "time": 0.0, "log": "Capturing execution frames: mesh_mesh_distance.json"}, {"file": "frame_001.jpg", "time": 2.19, "log": "Capturing execution frames: mesh_mesh_distance.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution..."}, {"file": "frame_002.jpg", "time": 4.3, "log": "Capturing execution frames: mesh_mesh_distance.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=3ms shot=78ms unfreeze=3ms saved=True"}, {"file": "frame_003.jpg", "time": 8.87, "log": "Capturing execution frames: mesh_mesh_distance.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=3ms shot=78ms unfreeze=3ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.3s)\n [capture-periodic] freeze=2ms shot=68ms unfreeze=3ms saved=True\n [capture-loop] iter=50 t=5.6s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=3 ram=5.4/16.0GB (34%) swap=0.8/2.9GB (27%) cpu=17% browser_rss=0.73GB"}, {"file": "frame_004.jpg", "time": 9.33, "log": "Capturing execution frames: mesh_mesh_distance.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=3ms shot=78ms unfreeze=3ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.3s)\n [capture-periodic] freeze=2ms shot=68ms unfreeze=3ms saved=True\n [capture-loop] iter=50 t=5.6s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=3 ram=5.4/16.0GB (34%) swap=0.8/2.9GB (27%) cpu=17% browser_rss=0.73GB\n Node executed (1 total), capturing...\n Frame 4 saved (frame_003.jpg, t=8.9s)\n [capture-node] freeze=3ms shot=77ms unfreeze=4ms saved=True"}, {"file": "frame_005.jpg", "time": 17.09, "log": "Capturing execution frames: mesh_mesh_distance.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=3ms shot=78ms unfreeze=3ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.3s)\n [capture-periodic] freeze=2ms shot=68ms unfreeze=3ms saved=True\n [capture-loop] iter=50 t=5.6s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=3 ram=5.4/16.0GB (34%) swap=0.8/2.9GB (27%) cpu=17% browser_rss=0.73GB\n Node executed (1 total), capturing...\n Frame 4 saved (frame_003.jpg, t=8.9s)\n [capture-node] freeze=3ms shot=77ms unfreeze=4ms saved=True\n Node executed (2 total), capturing...\n Frame 5 saved (frame_004.jpg, t=9.3s)\n [capture-node] freeze=3ms shot=68ms unfreeze=3ms saved=True\n [capture-loop] iter=100 t=11.6s state={'complete': False, 'error': None, 'executedCount': 2, 'wsState': 1} eval_ms=4 ram=5.6/16.0GB (35%) swap=0.8/2.9GB (27%) cpu=29% browser_rss=0.72GB"}, {"file": "frame_006.jpg", "time": 17.76, "log": "Capturing execution frames: mesh_mesh_distance.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=3ms shot=78ms unfreeze=3ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.3s)\n [capture-periodic] freeze=2ms shot=68ms unfreeze=3ms saved=True\n [capture-loop] iter=50 t=5.6s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=3 ram=5.4/16.0GB (34%) swap=0.8/2.9GB (27%) cpu=17% browser_rss=0.73GB\n Node executed (1 total), capturing...\n Frame 4 saved (frame_003.jpg, t=8.9s)\n [capture-node] freeze=3ms shot=77ms unfreeze=4ms saved=True\n Node executed (2 total), capturing...\n Frame 5 saved (frame_004.jpg, t=9.3s)\n [capture-node] freeze=3ms shot=68ms unfreeze=3ms saved=True\n [capture-loop] iter=100 t=11.6s state={'complete': False, 'error': None, 'executedCount': 2, 'wsState': 1} eval_ms=4 ram=5.6/16.0GB (35%) swap=0.8/2.9GB (27%) cpu=29% browser_rss=0.72GB\n Node executed (3 total), capturing...\n Frame 6 saved (frame_005.jpg, t=17.1s)\n [capture-node] freeze=3ms shot=68ms unfreeze=3ms saved=True\n [capture-loop] iter=150 t=17.4s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=4 ram=5.5/16.0GB (34%) swap=0.8/2.9GB (27%) cpu=32% browser_rss=0.71GB"}, {"file": "frame_007.jpg", "time": 20.020966053009033, "log": "Final screenshot"}], "total_time": 17.86}, "sharpen_all": {"frames": [{"file": "frame_000.jpg", "time": 0.0, "log": "Capturing execution frames: sharpen_all.json"}, {"file": "frame_001.jpg", "time": 2.19, "log": "Capturing execution frames: sharpen_all.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution..."}, {"file": "frame_002.jpg", "time": 4.34, "log": "Capturing execution frames: sharpen_all.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=3ms shot=78ms unfreeze=3ms saved=True"}, {"file": "frame_003.jpg", "time": 6.48, "log": "Capturing execution frames: sharpen_all.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=3ms shot=78ms unfreeze=3ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.3s)\n [capture-periodic] freeze=4ms shot=90ms unfreeze=4ms saved=True\n [capture-loop] iter=50 t=5.8s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=4 ram=5.2/16.0GB (33%) swap=0.9/2.9GB (32%) cpu=24% browser_rss=0.69GB"}, {"file": "frame_004.jpg", "time": 8.61, "log": "Capturing execution frames: sharpen_all.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=3ms shot=78ms unfreeze=3ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.3s)\n [capture-periodic] freeze=4ms shot=90ms unfreeze=4ms saved=True\n [capture-loop] iter=50 t=5.8s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=4 ram=5.2/16.0GB (33%) swap=0.9/2.9GB (32%) cpu=24% browser_rss=0.69GB\n Frame 4 saved (frame_003.jpg, t=6.5s)\n [capture-periodic] freeze=2ms shot=84ms unfreeze=7ms saved=True"}, {"file": "frame_005.jpg", "time": 10.46, "log": "Capturing execution frames: sharpen_all.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=3ms shot=78ms unfreeze=3ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.3s)\n [capture-periodic] freeze=4ms shot=90ms unfreeze=4ms saved=True\n [capture-loop] iter=50 t=5.8s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=4 ram=5.2/16.0GB (33%) swap=0.9/2.9GB (32%) cpu=24% browser_rss=0.69GB\n Frame 4 saved (frame_003.jpg, t=6.5s)\n [capture-periodic] freeze=2ms shot=84ms unfreeze=7ms saved=True\n Frame 5 saved (frame_004.jpg, t=8.6s)\n [capture-periodic] freeze=3ms shot=83ms unfreeze=3ms saved=True"}, {"file": "frame_006.jpg", "time": 12.61, "log": "Capturing execution frames: sharpen_all.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=3ms shot=78ms unfreeze=3ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.3s)\n [capture-periodic] freeze=4ms shot=90ms unfreeze=4ms saved=True\n [capture-loop] iter=50 t=5.8s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=4 ram=5.2/16.0GB (33%) swap=0.9/2.9GB (32%) cpu=24% browser_rss=0.69GB\n Frame 4 saved (frame_003.jpg, t=6.5s)\n [capture-periodic] freeze=2ms shot=84ms unfreeze=7ms saved=True\n Frame 5 saved (frame_004.jpg, t=8.6s)\n [capture-periodic] freeze=3ms shot=83ms unfreeze=3ms saved=True\n Node executed (1 total), capturing...\n Frame 6 saved (frame_005.jpg, t=10.5s)\n [capture-node] freeze=4ms shot=90ms unfreeze=3ms saved=True\n [capture-loop] iter=100 t=11.6s state={'complete': False, 'error': None, 'executedCount': 1, 'wsState': 1} eval_ms=3 ram=5.2/16.0GB (32%) swap=0.9/2.9GB (32%) cpu=14% browser_rss=0.59GB"}, {"file": "frame_007.jpg", "time": 19.8, "log": "Capturing execution frames: sharpen_all.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=3ms shot=78ms unfreeze=3ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.3s)\n [capture-periodic] freeze=4ms shot=90ms unfreeze=4ms saved=True\n [capture-loop] iter=50 t=5.8s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=4 ram=5.2/16.0GB (33%) swap=0.9/2.9GB (32%) cpu=24% browser_rss=0.69GB\n Frame 4 saved (frame_003.jpg, t=6.5s)\n [capture-periodic] freeze=2ms shot=84ms unfreeze=7ms saved=True\n Frame 5 saved (frame_004.jpg, t=8.6s)\n [capture-periodic] freeze=3ms shot=83ms unfreeze=3ms saved=True\n Node executed (1 total), capturing...\n Frame 6 saved (frame_005.jpg, t=10.5s)\n [capture-node] freeze=4ms shot=90ms unfreeze=3ms saved=True\n [capture-loop] iter=100 t=11.6s state={'complete': False, 'error': None, 'executedCount': 1, 'wsState': 1} eval_ms=3 ram=5.2/16.0GB (32%) swap=0.9/2.9GB (32%) cpu=14% browser_rss=0.59GB\n Frame 7 saved (frame_006.jpg, t=12.6s)\n [capture-periodic] freeze=3ms shot=104ms unfreeze=4ms saved=True\n [capture-loop] iter=150 t=17.3s state={'complete': False, 'error': None, 'executedCount': 1, 'wsState': 1} eval_ms=3 ram=5.2/16.0GB (32%) swap=0.9/2.9GB (32%) cpu=34% browser_rss=0.59GB"}, {"file": "frame_008.jpg", "time": 21.92, "log": "Capturing execution frames: sharpen_all.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=3ms shot=78ms unfreeze=3ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.3s)\n [capture-periodic] freeze=4ms shot=90ms unfreeze=4ms saved=True\n [capture-loop] iter=50 t=5.8s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=4 ram=5.2/16.0GB (33%) swap=0.9/2.9GB (32%) cpu=24% browser_rss=0.69GB\n Frame 4 saved (frame_003.jpg, t=6.5s)\n [capture-periodic] freeze=2ms shot=84ms unfreeze=7ms saved=True\n Frame 5 saved (frame_004.jpg, t=8.6s)\n [capture-periodic] freeze=3ms shot=83ms unfreeze=3ms saved=True\n Node executed (1 total), capturing...\n Frame 6 saved (frame_005.jpg, t=10.5s)\n [capture-node] freeze=4ms shot=90ms unfreeze=3ms saved=True\n [capture-loop] iter=100 t=11.6s state={'complete': False, 'error': None, 'executedCount': 1, 'wsState': 1} eval_ms=3 ram=5.2/16.0GB (32%) swap=0.9/2.9GB (32%) cpu=14% browser_rss=0.59GB\n Frame 7 saved (frame_006.jpg, t=12.6s)\n [capture-periodic] freeze=3ms shot=104ms unfreeze=4ms saved=True\n [capture-loop] iter=150 t=17.3s state={'complete': False, 'error': None, 'executedCount': 1, 'wsState': 1} eval_ms=3 ram=5.2/16.0GB (32%) swap=0.9/2.9GB (32%) cpu=34% browser_rss=0.59GB\n Node executed (2 total), capturing...\n Frame 8 saved (frame_007.jpg, t=19.8s)\n [capture-node] freeze=3ms shot=81ms unfreeze=6ms saved=True"}, {"file": "frame_009.jpg", "time": 28.14, "log": "Capturing execution frames: sharpen_all.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=3ms shot=78ms unfreeze=3ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.3s)\n [capture-periodic] freeze=4ms shot=90ms unfreeze=4ms saved=True\n [capture-loop] iter=50 t=5.8s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=4 ram=5.2/16.0GB (33%) swap=0.9/2.9GB (32%) cpu=24% browser_rss=0.69GB\n Frame 4 saved (frame_003.jpg, t=6.5s)\n [capture-periodic] freeze=2ms shot=84ms unfreeze=7ms saved=True\n Frame 5 saved (frame_004.jpg, t=8.6s)\n [capture-periodic] freeze=3ms shot=83ms unfreeze=3ms saved=True\n Node executed (1 total), capturing...\n Frame 6 saved (frame_005.jpg, t=10.5s)\n [capture-node] freeze=4ms shot=90ms unfreeze=3ms saved=True\n [capture-loop] iter=100 t=11.6s state={'complete': False, 'error': None, 'executedCount': 1, 'wsState': 1} eval_ms=3 ram=5.2/16.0GB (32%) swap=0.9/2.9GB (32%) cpu=14% browser_rss=0.59GB\n Frame 7 saved (frame_006.jpg, t=12.6s)\n [capture-periodic] freeze=3ms shot=104ms unfreeze=4ms saved=True\n [capture-loop] iter=150 t=17.3s state={'complete': False, 'error': None, 'executedCount': 1, 'wsState': 1} eval_ms=3 ram=5.2/16.0GB (32%) swap=0.9/2.9GB (32%) cpu=34% browser_rss=0.59GB\n Node executed (2 total), capturing...\n Frame 8 saved (frame_007.jpg, t=19.8s)\n [capture-node] freeze=3ms shot=81ms unfreeze=6ms saved=True\n Frame 9 saved (frame_008.jpg, t=21.9s)\n [capture-periodic] freeze=2ms shot=75ms unfreeze=4ms saved=True\n [capture-loop] iter=200 t=23.1s state={'complete': False, 'error': None, 'executedCount': 2, 'wsState': 1} eval_ms=4 ram=5.1/16.0GB (32%) swap=0.9/2.9GB (32%) cpu=28% browser_rss=0.59GB"}, {"file": "frame_010.jpg", "time": 30.32, "log": "Capturing execution frames: sharpen_all.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=3ms shot=78ms unfreeze=3ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.3s)\n [capture-periodic] freeze=4ms shot=90ms unfreeze=4ms saved=True\n [capture-loop] iter=50 t=5.8s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=4 ram=5.2/16.0GB (33%) swap=0.9/2.9GB (32%) cpu=24% browser_rss=0.69GB\n Frame 4 saved (frame_003.jpg, t=6.5s)\n [capture-periodic] freeze=2ms shot=84ms unfreeze=7ms saved=True\n Frame 5 saved (frame_004.jpg, t=8.6s)\n [capture-periodic] freeze=3ms shot=83ms unfreeze=3ms saved=True\n Node executed (1 total), capturing...\n Frame 6 saved (frame_005.jpg, t=10.5s)\n [capture-node] freeze=4ms shot=90ms unfreeze=3ms saved=True\n [capture-loop] iter=100 t=11.6s state={'complete': False, 'error': None, 'executedCount': 1, 'wsState': 1} eval_ms=3 ram=5.2/16.0GB (32%) swap=0.9/2.9GB (32%) cpu=14% browser_rss=0.59GB\n Frame 7 saved (frame_006.jpg, t=12.6s)\n [capture-periodic] freeze=3ms shot=104ms unfreeze=4ms saved=True\n [capture-loop] iter=150 t=17.3s state={'complete': False, 'error': None, 'executedCount': 1, 'wsState': 1} eval_ms=3 ram=5.2/16.0GB (32%) swap=0.9/2.9GB (32%) cpu=34% browser_rss=0.59GB\n Node executed (2 total), capturing...\n Frame 8 saved (frame_007.jpg, t=19.8s)\n [capture-node] freeze=3ms shot=81ms unfreeze=6ms saved=True\n Frame 9 saved (frame_008.jpg, t=21.9s)\n [capture-periodic] freeze=2ms shot=75ms unfreeze=4ms saved=True\n [capture-loop] iter=200 t=23.1s state={'complete': False, 'error': None, 'executedCount': 2, 'wsState': 1} eval_ms=4 ram=5.1/16.0GB (32%) swap=0.9/2.9GB (32%) cpu=28% browser_rss=0.59GB\n Node executed (3 total), capturing...\n Frame 10 saved (frame_009.jpg, t=28.1s)\n [capture-node] freeze=8ms shot=102ms unfreeze=6ms saved=True\n [capture-loop] iter=250 t=28.9s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=3 ram=5.1/16.0GB (32%) swap=0.9/2.9GB (32%) cpu=27% browser_rss=0.59GB"}, {"file": "frame_011.jpg", "time": 53.63, "log": "Capturing execution frames: sharpen_all.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=3ms shot=78ms unfreeze=3ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.3s)\n [capture-periodic] freeze=4ms shot=90ms unfreeze=4ms saved=True\n [capture-loop] iter=50 t=5.8s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=4 ram=5.2/16.0GB (33%) swap=0.9/2.9GB (32%) cpu=24% browser_rss=0.69GB\n Frame 4 saved (frame_003.jpg, t=6.5s)\n [capture-periodic] freeze=2ms shot=84ms unfreeze=7ms saved=True\n Frame 5 saved (frame_004.jpg, t=8.6s)\n [capture-periodic] freeze=3ms shot=83ms unfreeze=3ms saved=True\n Node executed (1 total), capturing...\n Frame 6 saved (frame_005.jpg, t=10.5s)\n [capture-node] freeze=4ms shot=90ms unfreeze=3ms saved=True\n [capture-loop] iter=100 t=11.6s state={'complete': False, 'error': None, 'executedCount': 1, 'wsState': 1} eval_ms=3 ram=5.2/16.0GB (32%) swap=0.9/2.9GB (32%) cpu=14% browser_rss=0.59GB\n Frame 7 saved (frame_006.jpg, t=12.6s)\n [capture-periodic] freeze=3ms shot=104ms unfreeze=4ms saved=True\n [capture-loop] iter=150 t=17.3s state={'complete': False, 'error': None, 'executedCount': 1, 'wsState': 1} eval_ms=3 ram=5.2/16.0GB (32%) swap=0.9/2.9GB (32%) cpu=34% browser_rss=0.59GB\n Node executed (2 total), capturing...\n Frame 8 saved (frame_007.jpg, t=19.8s)\n [capture-node] freeze=3ms shot=81ms unfreeze=6ms saved=True\n Frame 9 saved (frame_008.jpg, t=21.9s)\n [capture-periodic] freeze=2ms shot=75ms unfreeze=4ms saved=True\n [capture-loop] iter=200 t=23.1s state={'complete': False, 'error': None, 'executedCount': 2, 'wsState': 1} eval_ms=4 ram=5.1/16.0GB (32%) swap=0.9/2.9GB (32%) cpu=28% browser_rss=0.59GB\n Node executed (3 total), capturing...\n Frame 10 saved (frame_009.jpg, t=28.1s)\n [capture-node] freeze=8ms shot=102ms unfreeze=6ms saved=True\n [capture-loop] iter=250 t=28.9s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=3 ram=5.1/16.0GB (32%) swap=0.9/2.9GB (32%) cpu=27% browser_rss=0.59GB\n Frame 11 saved (frame_010.jpg, t=30.3s)\n [capture-periodic] freeze=3ms shot=98ms unfreeze=4ms saved=True\n [capture-loop] iter=300 t=34.5s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=3 ram=5.1/16.0GB (32%) swap=0.9/2.9GB (32%) cpu=33% browser_rss=0.59GB\n [capture-loop] iter=350 t=40.1s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=3 ram=5.1/16.0GB (32%) swap=0.9/2.9GB (32%) cpu=35% browser_rss=0.58GB\n [capture-loop] iter=400 t=45.7s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=4 ram=5.1/16.0GB (32%) swap=0.9/2.9GB (32%) cpu=32% browser_rss=0.58GB\n [capture-loop] iter=450 t=51.2s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=3 ram=5.1/16.0GB (32%) swap=0.9/2.9GB (32%) cpu=31% browser_rss=0.58GB"}, {"file": "frame_012.jpg", "time": 55.76, "log": "Capturing execution frames: sharpen_all.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=3ms shot=78ms unfreeze=3ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.3s)\n [capture-periodic] freeze=4ms shot=90ms unfreeze=4ms saved=True\n [capture-loop] iter=50 t=5.8s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=4 ram=5.2/16.0GB (33%) swap=0.9/2.9GB (32%) cpu=24% browser_rss=0.69GB\n Frame 4 saved (frame_003.jpg, t=6.5s)\n [capture-periodic] freeze=2ms shot=84ms unfreeze=7ms saved=True\n Frame 5 saved (frame_004.jpg, t=8.6s)\n [capture-periodic] freeze=3ms shot=83ms unfreeze=3ms saved=True\n Node executed (1 total), capturing...\n Frame 6 saved (frame_005.jpg, t=10.5s)\n [capture-node] freeze=4ms shot=90ms unfreeze=3ms saved=True\n [capture-loop] iter=100 t=11.6s state={'complete': False, 'error': None, 'executedCount': 1, 'wsState': 1} eval_ms=3 ram=5.2/16.0GB (32%) swap=0.9/2.9GB (32%) cpu=14% browser_rss=0.59GB\n Frame 7 saved (frame_006.jpg, t=12.6s)\n [capture-periodic] freeze=3ms shot=104ms unfreeze=4ms saved=True\n [capture-loop] iter=150 t=17.3s state={'complete': False, 'error': None, 'executedCount': 1, 'wsState': 1} eval_ms=3 ram=5.2/16.0GB (32%) swap=0.9/2.9GB (32%) cpu=34% browser_rss=0.59GB\n Node executed (2 total), capturing...\n Frame 8 saved (frame_007.jpg, t=19.8s)\n [capture-node] freeze=3ms shot=81ms unfreeze=6ms saved=True\n Frame 9 saved (frame_008.jpg, t=21.9s)\n [capture-periodic] freeze=2ms shot=75ms unfreeze=4ms saved=True\n [capture-loop] iter=200 t=23.1s state={'complete': False, 'error': None, 'executedCount': 2, 'wsState': 1} eval_ms=4 ram=5.1/16.0GB (32%) swap=0.9/2.9GB (32%) cpu=28% browser_rss=0.59GB\n Node executed (3 total), capturing...\n Frame 10 saved (frame_009.jpg, t=28.1s)\n [capture-node] freeze=8ms shot=102ms unfreeze=6ms saved=True\n [capture-loop] iter=250 t=28.9s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=3 ram=5.1/16.0GB (32%) swap=0.9/2.9GB (32%) cpu=27% browser_rss=0.59GB\n Frame 11 saved (frame_010.jpg, t=30.3s)\n [capture-periodic] freeze=3ms shot=98ms unfreeze=4ms saved=True\n [capture-loop] iter=300 t=34.5s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=3 ram=5.1/16.0GB (32%) swap=0.9/2.9GB (32%) cpu=33% browser_rss=0.59GB\n [capture-loop] iter=350 t=40.1s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=3 ram=5.1/16.0GB (32%) swap=0.9/2.9GB (32%) cpu=35% browser_rss=0.58GB\n [capture-loop] iter=400 t=45.7s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=4 ram=5.1/16.0GB (32%) swap=0.9/2.9GB (32%) cpu=32% browser_rss=0.58GB\n [capture-loop] iter=450 t=51.2s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=3 ram=5.1/16.0GB (32%) swap=0.9/2.9GB (32%) cpu=31% browser_rss=0.58GB\n Node executed (4 total), capturing...\n Frame 12 saved (frame_011.jpg, t=53.6s)\n [capture-node] freeze=4ms shot=82ms unfreeze=7ms saved=True"}, {"file": "frame_013.jpg", "time": 57.86, "log": "Capturing execution frames: sharpen_all.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=3ms shot=78ms unfreeze=3ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.3s)\n [capture-periodic] freeze=4ms shot=90ms unfreeze=4ms saved=True\n [capture-loop] iter=50 t=5.8s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=4 ram=5.2/16.0GB (33%) swap=0.9/2.9GB (32%) cpu=24% browser_rss=0.69GB\n Frame 4 saved (frame_003.jpg, t=6.5s)\n [capture-periodic] freeze=2ms shot=84ms unfreeze=7ms saved=True\n Frame 5 saved (frame_004.jpg, t=8.6s)\n [capture-periodic] freeze=3ms shot=83ms unfreeze=3ms saved=True\n Node executed (1 total), capturing...\n Frame 6 saved (frame_005.jpg, t=10.5s)\n [capture-node] freeze=4ms shot=90ms unfreeze=3ms saved=True\n [capture-loop] iter=100 t=11.6s state={'complete': False, 'error': None, 'executedCount': 1, 'wsState': 1} eval_ms=3 ram=5.2/16.0GB (32%) swap=0.9/2.9GB (32%) cpu=14% browser_rss=0.59GB\n Frame 7 saved (frame_006.jpg, t=12.6s)\n [capture-periodic] freeze=3ms shot=104ms unfreeze=4ms saved=True\n [capture-loop] iter=150 t=17.3s state={'complete': False, 'error': None, 'executedCount': 1, 'wsState': 1} eval_ms=3 ram=5.2/16.0GB (32%) swap=0.9/2.9GB (32%) cpu=34% browser_rss=0.59GB\n Node executed (2 total), capturing...\n Frame 8 saved (frame_007.jpg, t=19.8s)\n [capture-node] freeze=3ms shot=81ms unfreeze=6ms saved=True\n Frame 9 saved (frame_008.jpg, t=21.9s)\n [capture-periodic] freeze=2ms shot=75ms unfreeze=4ms saved=True\n [capture-loop] iter=200 t=23.1s state={'complete': False, 'error': None, 'executedCount': 2, 'wsState': 1} eval_ms=4 ram=5.1/16.0GB (32%) swap=0.9/2.9GB (32%) cpu=28% browser_rss=0.59GB\n Node executed (3 total), capturing...\n Frame 10 saved (frame_009.jpg, t=28.1s)\n [capture-node] freeze=8ms shot=102ms unfreeze=6ms saved=True\n [capture-loop] iter=250 t=28.9s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=3 ram=5.1/16.0GB (32%) swap=0.9/2.9GB (32%) cpu=27% browser_rss=0.59GB\n Frame 11 saved (frame_010.jpg, t=30.3s)\n [capture-periodic] freeze=3ms shot=98ms unfreeze=4ms saved=True\n [capture-loop] iter=300 t=34.5s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=3 ram=5.1/16.0GB (32%) swap=0.9/2.9GB (32%) cpu=33% browser_rss=0.59GB\n [capture-loop] iter=350 t=40.1s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=3 ram=5.1/16.0GB (32%) swap=0.9/2.9GB (32%) cpu=35% browser_rss=0.58GB\n [capture-loop] iter=400 t=45.7s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=4 ram=5.1/16.0GB (32%) swap=0.9/2.9GB (32%) cpu=32% browser_rss=0.58GB\n [capture-loop] iter=450 t=51.2s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=3 ram=5.1/16.0GB (32%) swap=0.9/2.9GB (32%) cpu=31% browser_rss=0.58GB\n Node executed (4 total), capturing...\n Frame 12 saved (frame_011.jpg, t=53.6s)\n [capture-node] freeze=4ms shot=82ms unfreeze=7ms saved=True\n Frame 13 saved (frame_012.jpg, t=55.8s)\n [capture-periodic] freeze=3ms shot=94ms unfreeze=3ms saved=True\n [capture-loop] iter=500 t=57.1s state={'complete': False, 'error': None, 'executedCount': 4, 'wsState': 1} eval_ms=3 ram=4.9/16.0GB (31%) swap=1.1/2.9GB (38%) cpu=27% browser_rss=0.58GB"}, {"file": "frame_014.jpg", "time": 58.47, "log": "Capturing execution frames: sharpen_all.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=3ms shot=78ms unfreeze=3ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.3s)\n [capture-periodic] freeze=4ms shot=90ms unfreeze=4ms saved=True\n [capture-loop] iter=50 t=5.8s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=4 ram=5.2/16.0GB (33%) swap=0.9/2.9GB (32%) cpu=24% browser_rss=0.69GB\n Frame 4 saved (frame_003.jpg, t=6.5s)\n [capture-periodic] freeze=2ms shot=84ms unfreeze=7ms saved=True\n Frame 5 saved (frame_004.jpg, t=8.6s)\n [capture-periodic] freeze=3ms shot=83ms unfreeze=3ms saved=True\n Node executed (1 total), capturing...\n Frame 6 saved (frame_005.jpg, t=10.5s)\n [capture-node] freeze=4ms shot=90ms unfreeze=3ms saved=True\n [capture-loop] iter=100 t=11.6s state={'complete': False, 'error': None, 'executedCount': 1, 'wsState': 1} eval_ms=3 ram=5.2/16.0GB (32%) swap=0.9/2.9GB (32%) cpu=14% browser_rss=0.59GB\n Frame 7 saved (frame_006.jpg, t=12.6s)\n [capture-periodic] freeze=3ms shot=104ms unfreeze=4ms saved=True\n [capture-loop] iter=150 t=17.3s state={'complete': False, 'error': None, 'executedCount': 1, 'wsState': 1} eval_ms=3 ram=5.2/16.0GB (32%) swap=0.9/2.9GB (32%) cpu=34% browser_rss=0.59GB\n Node executed (2 total), capturing...\n Frame 8 saved (frame_007.jpg, t=19.8s)\n [capture-node] freeze=3ms shot=81ms unfreeze=6ms saved=True\n Frame 9 saved (frame_008.jpg, t=21.9s)\n [capture-periodic] freeze=2ms shot=75ms unfreeze=4ms saved=True\n [capture-loop] iter=200 t=23.1s state={'complete': False, 'error': None, 'executedCount': 2, 'wsState': 1} eval_ms=4 ram=5.1/16.0GB (32%) swap=0.9/2.9GB (32%) cpu=28% browser_rss=0.59GB\n Node executed (3 total), capturing...\n Frame 10 saved (frame_009.jpg, t=28.1s)\n [capture-node] freeze=8ms shot=102ms unfreeze=6ms saved=True\n [capture-loop] iter=250 t=28.9s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=3 ram=5.1/16.0GB (32%) swap=0.9/2.9GB (32%) cpu=27% browser_rss=0.59GB\n Frame 11 saved (frame_010.jpg, t=30.3s)\n [capture-periodic] freeze=3ms shot=98ms unfreeze=4ms saved=True\n [capture-loop] iter=300 t=34.5s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=3 ram=5.1/16.0GB (32%) swap=0.9/2.9GB (32%) cpu=33% browser_rss=0.59GB\n [capture-loop] iter=350 t=40.1s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=3 ram=5.1/16.0GB (32%) swap=0.9/2.9GB (32%) cpu=35% browser_rss=0.58GB\n [capture-loop] iter=400 t=45.7s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=4 ram=5.1/16.0GB (32%) swap=0.9/2.9GB (32%) cpu=32% browser_rss=0.58GB\n [capture-loop] iter=450 t=51.2s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=3 ram=5.1/16.0GB (32%) swap=0.9/2.9GB (32%) cpu=31% browser_rss=0.58GB\n Node executed (4 total), capturing...\n Frame 12 saved (frame_011.jpg, t=53.6s)\n [capture-node] freeze=4ms shot=82ms unfreeze=7ms saved=True\n Frame 13 saved (frame_012.jpg, t=55.8s)\n [capture-periodic] freeze=3ms shot=94ms unfreeze=3ms saved=True\n [capture-loop] iter=500 t=57.1s state={'complete': False, 'error': None, 'executedCount': 4, 'wsState': 1} eval_ms=3 ram=4.9/16.0GB (31%) swap=1.1/2.9GB (38%) cpu=27% browser_rss=0.58GB\n Node executed (5 total), capturing...\n Frame 14 saved (frame_013.jpg, t=57.9s)\n [capture-node] freeze=3ms shot=92ms unfreeze=3ms saved=True"}, {"file": "frame_015.jpg", "time": 59.52, "log": "Capturing execution frames: sharpen_all.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=3ms shot=78ms unfreeze=3ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.3s)\n [capture-periodic] freeze=4ms shot=90ms unfreeze=4ms saved=True\n [capture-loop] iter=50 t=5.8s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=4 ram=5.2/16.0GB (33%) swap=0.9/2.9GB (32%) cpu=24% browser_rss=0.69GB\n Frame 4 saved (frame_003.jpg, t=6.5s)\n [capture-periodic] freeze=2ms shot=84ms unfreeze=7ms saved=True\n Frame 5 saved (frame_004.jpg, t=8.6s)\n [capture-periodic] freeze=3ms shot=83ms unfreeze=3ms saved=True\n Node executed (1 total), capturing...\n Frame 6 saved (frame_005.jpg, t=10.5s)\n [capture-node] freeze=4ms shot=90ms unfreeze=3ms saved=True\n [capture-loop] iter=100 t=11.6s state={'complete': False, 'error': None, 'executedCount': 1, 'wsState': 1} eval_ms=3 ram=5.2/16.0GB (32%) swap=0.9/2.9GB (32%) cpu=14% browser_rss=0.59GB\n Frame 7 saved (frame_006.jpg, t=12.6s)\n [capture-periodic] freeze=3ms shot=104ms unfreeze=4ms saved=True\n [capture-loop] iter=150 t=17.3s state={'complete': False, 'error': None, 'executedCount': 1, 'wsState': 1} eval_ms=3 ram=5.2/16.0GB (32%) swap=0.9/2.9GB (32%) cpu=34% browser_rss=0.59GB\n Node executed (2 total), capturing...\n Frame 8 saved (frame_007.jpg, t=19.8s)\n [capture-node] freeze=3ms shot=81ms unfreeze=6ms saved=True\n Frame 9 saved (frame_008.jpg, t=21.9s)\n [capture-periodic] freeze=2ms shot=75ms unfreeze=4ms saved=True\n [capture-loop] iter=200 t=23.1s state={'complete': False, 'error': None, 'executedCount': 2, 'wsState': 1} eval_ms=4 ram=5.1/16.0GB (32%) swap=0.9/2.9GB (32%) cpu=28% browser_rss=0.59GB\n Node executed (3 total), capturing...\n Frame 10 saved (frame_009.jpg, t=28.1s)\n [capture-node] freeze=8ms shot=102ms unfreeze=6ms saved=True\n [capture-loop] iter=250 t=28.9s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=3 ram=5.1/16.0GB (32%) swap=0.9/2.9GB (32%) cpu=27% browser_rss=0.59GB\n Frame 11 saved (frame_010.jpg, t=30.3s)\n [capture-periodic] freeze=3ms shot=98ms unfreeze=4ms saved=True\n [capture-loop] iter=300 t=34.5s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=3 ram=5.1/16.0GB (32%) swap=0.9/2.9GB (32%) cpu=33% browser_rss=0.59GB\n [capture-loop] iter=350 t=40.1s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=3 ram=5.1/16.0GB (32%) swap=0.9/2.9GB (32%) cpu=35% browser_rss=0.58GB\n [capture-loop] iter=400 t=45.7s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=4 ram=5.1/16.0GB (32%) swap=0.9/2.9GB (32%) cpu=32% browser_rss=0.58GB\n [capture-loop] iter=450 t=51.2s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=3 ram=5.1/16.0GB (32%) swap=0.9/2.9GB (32%) cpu=31% browser_rss=0.58GB\n Node executed (4 total), capturing...\n Frame 12 saved (frame_011.jpg, t=53.6s)\n [capture-node] freeze=4ms shot=82ms unfreeze=7ms saved=True\n Frame 13 saved (frame_012.jpg, t=55.8s)\n [capture-periodic] freeze=3ms shot=94ms unfreeze=3ms saved=True\n [capture-loop] iter=500 t=57.1s state={'complete': False, 'error': None, 'executedCount': 4, 'wsState': 1} eval_ms=3 ram=4.9/16.0GB (31%) swap=1.1/2.9GB (38%) cpu=27% browser_rss=0.58GB\n Node executed (5 total), capturing...\n Frame 14 saved (frame_013.jpg, t=57.9s)\n [capture-node] freeze=3ms shot=92ms unfreeze=3ms saved=True\n Node executed (6 total), capturing...\n Frame 15 saved (frame_014.jpg, t=58.5s)\n [capture-node] freeze=440ms shot=318ms unfreeze=10ms saved=True"}, {"file": "frame_016.jpg", "time": 59.91, "log": "Capturing execution frames: sharpen_all.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=3ms shot=78ms unfreeze=3ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.3s)\n [capture-periodic] freeze=4ms shot=90ms unfreeze=4ms saved=True\n [capture-loop] iter=50 t=5.8s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=4 ram=5.2/16.0GB (33%) swap=0.9/2.9GB (32%) cpu=24% browser_rss=0.69GB\n Frame 4 saved (frame_003.jpg, t=6.5s)\n [capture-periodic] freeze=2ms shot=84ms unfreeze=7ms saved=True\n Frame 5 saved (frame_004.jpg, t=8.6s)\n [capture-periodic] freeze=3ms shot=83ms unfreeze=3ms saved=True\n Node executed (1 total), capturing...\n Frame 6 saved (frame_005.jpg, t=10.5s)\n [capture-node] freeze=4ms shot=90ms unfreeze=3ms saved=True\n [capture-loop] iter=100 t=11.6s state={'complete': False, 'error': None, 'executedCount': 1, 'wsState': 1} eval_ms=3 ram=5.2/16.0GB (32%) swap=0.9/2.9GB (32%) cpu=14% browser_rss=0.59GB\n Frame 7 saved (frame_006.jpg, t=12.6s)\n [capture-periodic] freeze=3ms shot=104ms unfreeze=4ms saved=True\n [capture-loop] iter=150 t=17.3s state={'complete': False, 'error': None, 'executedCount': 1, 'wsState': 1} eval_ms=3 ram=5.2/16.0GB (32%) swap=0.9/2.9GB (32%) cpu=34% browser_rss=0.59GB\n Node executed (2 total), capturing...\n Frame 8 saved (frame_007.jpg, t=19.8s)\n [capture-node] freeze=3ms shot=81ms unfreeze=6ms saved=True\n Frame 9 saved (frame_008.jpg, t=21.9s)\n [capture-periodic] freeze=2ms shot=75ms unfreeze=4ms saved=True\n [capture-loop] iter=200 t=23.1s state={'complete': False, 'error': None, 'executedCount': 2, 'wsState': 1} eval_ms=4 ram=5.1/16.0GB (32%) swap=0.9/2.9GB (32%) cpu=28% browser_rss=0.59GB\n Node executed (3 total), capturing...\n Frame 10 saved (frame_009.jpg, t=28.1s)\n [capture-node] freeze=8ms shot=102ms unfreeze=6ms saved=True\n [capture-loop] iter=250 t=28.9s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=3 ram=5.1/16.0GB (32%) swap=0.9/2.9GB (32%) cpu=27% browser_rss=0.59GB\n Frame 11 saved (frame_010.jpg, t=30.3s)\n [capture-periodic] freeze=3ms shot=98ms unfreeze=4ms saved=True\n [capture-loop] iter=300 t=34.5s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=3 ram=5.1/16.0GB (32%) swap=0.9/2.9GB (32%) cpu=33% browser_rss=0.59GB\n [capture-loop] iter=350 t=40.1s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=3 ram=5.1/16.0GB (32%) swap=0.9/2.9GB (32%) cpu=35% browser_rss=0.58GB\n [capture-loop] iter=400 t=45.7s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=4 ram=5.1/16.0GB (32%) swap=0.9/2.9GB (32%) cpu=32% browser_rss=0.58GB\n [capture-loop] iter=450 t=51.2s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=3 ram=5.1/16.0GB (32%) swap=0.9/2.9GB (32%) cpu=31% browser_rss=0.58GB\n Node executed (4 total), capturing...\n Frame 12 saved (frame_011.jpg, t=53.6s)\n [capture-node] freeze=4ms shot=82ms unfreeze=7ms saved=True\n Frame 13 saved (frame_012.jpg, t=55.8s)\n [capture-periodic] freeze=3ms shot=94ms unfreeze=3ms saved=True\n [capture-loop] iter=500 t=57.1s state={'complete': False, 'error': None, 'executedCount': 4, 'wsState': 1} eval_ms=3 ram=4.9/16.0GB (31%) swap=1.1/2.9GB (38%) cpu=27% browser_rss=0.58GB\n Node executed (5 total), capturing...\n Frame 14 saved (frame_013.jpg, t=57.9s)\n [capture-node] freeze=3ms shot=92ms unfreeze=3ms saved=True\n Node executed (6 total), capturing...\n Frame 15 saved (frame_014.jpg, t=58.5s)\n [capture-node] freeze=440ms shot=318ms unfreeze=10ms saved=True\n Node executed (7 total), capturing...\n Frame 16 saved (frame_015.jpg, t=59.5s)\n [capture-node] freeze=3ms shot=102ms unfreeze=4ms saved=True"}, {"file": "frame_017.jpg", "time": 60.6, "log": "Capturing execution frames: sharpen_all.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=3ms shot=78ms unfreeze=3ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.3s)\n [capture-periodic] freeze=4ms shot=90ms unfreeze=4ms saved=True\n [capture-loop] iter=50 t=5.8s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=4 ram=5.2/16.0GB (33%) swap=0.9/2.9GB (32%) cpu=24% browser_rss=0.69GB\n Frame 4 saved (frame_003.jpg, t=6.5s)\n [capture-periodic] freeze=2ms shot=84ms unfreeze=7ms saved=True\n Frame 5 saved (frame_004.jpg, t=8.6s)\n [capture-periodic] freeze=3ms shot=83ms unfreeze=3ms saved=True\n Node executed (1 total), capturing...\n Frame 6 saved (frame_005.jpg, t=10.5s)\n [capture-node] freeze=4ms shot=90ms unfreeze=3ms saved=True\n [capture-loop] iter=100 t=11.6s state={'complete': False, 'error': None, 'executedCount': 1, 'wsState': 1} eval_ms=3 ram=5.2/16.0GB (32%) swap=0.9/2.9GB (32%) cpu=14% browser_rss=0.59GB\n Frame 7 saved (frame_006.jpg, t=12.6s)\n [capture-periodic] freeze=3ms shot=104ms unfreeze=4ms saved=True\n [capture-loop] iter=150 t=17.3s state={'complete': False, 'error': None, 'executedCount': 1, 'wsState': 1} eval_ms=3 ram=5.2/16.0GB (32%) swap=0.9/2.9GB (32%) cpu=34% browser_rss=0.59GB\n Node executed (2 total), capturing...\n Frame 8 saved (frame_007.jpg, t=19.8s)\n [capture-node] freeze=3ms shot=81ms unfreeze=6ms saved=True\n Frame 9 saved (frame_008.jpg, t=21.9s)\n [capture-periodic] freeze=2ms shot=75ms unfreeze=4ms saved=True\n [capture-loop] iter=200 t=23.1s state={'complete': False, 'error': None, 'executedCount': 2, 'wsState': 1} eval_ms=4 ram=5.1/16.0GB (32%) swap=0.9/2.9GB (32%) cpu=28% browser_rss=0.59GB\n Node executed (3 total), capturing...\n Frame 10 saved (frame_009.jpg, t=28.1s)\n [capture-node] freeze=8ms shot=102ms unfreeze=6ms saved=True\n [capture-loop] iter=250 t=28.9s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=3 ram=5.1/16.0GB (32%) swap=0.9/2.9GB (32%) cpu=27% browser_rss=0.59GB\n Frame 11 saved (frame_010.jpg, t=30.3s)\n [capture-periodic] freeze=3ms shot=98ms unfreeze=4ms saved=True\n [capture-loop] iter=300 t=34.5s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=3 ram=5.1/16.0GB (32%) swap=0.9/2.9GB (32%) cpu=33% browser_rss=0.59GB\n [capture-loop] iter=350 t=40.1s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=3 ram=5.1/16.0GB (32%) swap=0.9/2.9GB (32%) cpu=35% browser_rss=0.58GB\n [capture-loop] iter=400 t=45.7s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=4 ram=5.1/16.0GB (32%) swap=0.9/2.9GB (32%) cpu=32% browser_rss=0.58GB\n [capture-loop] iter=450 t=51.2s state={'complete': False, 'error': None, 'executedCount': 3, 'wsState': 1} eval_ms=3 ram=5.1/16.0GB (32%) swap=0.9/2.9GB (32%) cpu=31% browser_rss=0.58GB\n Node executed (4 total), capturing...\n Frame 12 saved (frame_011.jpg, t=53.6s)\n [capture-node] freeze=4ms shot=82ms unfreeze=7ms saved=True\n Frame 13 saved (frame_012.jpg, t=55.8s)\n [capture-periodic] freeze=3ms shot=94ms unfreeze=3ms saved=True\n [capture-loop] iter=500 t=57.1s state={'complete': False, 'error': None, 'executedCount': 4, 'wsState': 1} eval_ms=3 ram=4.9/16.0GB (31%) swap=1.1/2.9GB (38%) cpu=27% browser_rss=0.58GB\n Node executed (5 total), capturing...\n Frame 14 saved (frame_013.jpg, t=57.9s)\n [capture-node] freeze=3ms shot=92ms unfreeze=3ms saved=True\n Node executed (6 total), capturing...\n Frame 15 saved (frame_014.jpg, t=58.5s)\n [capture-node] freeze=440ms shot=318ms unfreeze=10ms saved=True\n Node executed (7 total), capturing...\n Frame 16 saved (frame_015.jpg, t=59.5s)\n [capture-node] freeze=3ms shot=102ms unfreeze=4ms saved=True\n Node executed (8 total), capturing...\n Frame 17 saved (frame_016.jpg, t=59.9s)\n [capture-node] freeze=3ms shot=117ms unfreeze=5ms saved=True"}, {"file": "frame_018.jpg", "time": 63.600362062454224, "log": "Final screenshot"}], "total_time": 60.75}, "point_mesh_distance": {"frames": [{"file": "frame_000.jpg", "time": 0.0, "log": "Capturing execution frames: point_mesh_distance.json"}, {"file": "frame_001.jpg", "time": 2.19, "log": "Capturing execution frames: point_mesh_distance.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution..."}, {"file": "frame_002.jpg", "time": 4.14, "log": "Capturing execution frames: point_mesh_distance.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=2ms shot=78ms unfreeze=3ms saved=True"}, {"file": "frame_003.jpg", "time": 4.5, "log": "Capturing execution frames: point_mesh_distance.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=2ms shot=78ms unfreeze=3ms saved=True\n Node executed (1 total), capturing...\n Frame 3 saved (frame_002.jpg, t=4.1s)\n [capture-node] freeze=4ms shot=76ms unfreeze=3ms saved=True"}, {"file": "frame_004.jpg", "time": 5.4, "log": "Capturing execution frames: point_mesh_distance.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=2ms shot=78ms unfreeze=3ms saved=True\n Node executed (1 total), capturing...\n Frame 3 saved (frame_002.jpg, t=4.1s)\n [capture-node] freeze=4ms shot=76ms unfreeze=3ms saved=True\n Node executed (2 total), capturing...\n Frame 4 saved (frame_003.jpg, t=4.5s)\n [capture-node] freeze=3ms shot=77ms unfreeze=3ms saved=True"}, {"file": "frame_005.jpg", "time": 7.682926416397095, "log": "Final screenshot"}], "total_time": 5.5}, "normals": {"frames": [{"file": "frame_000.jpg", "time": 0.0, "log": "Capturing execution frames: normals.json"}, {"file": "frame_001.jpg", "time": 1.68, "log": "Capturing execution frames: normals.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution..."}, {"file": "frame_002.jpg", "time": 3.77, "log": "Capturing execution frames: normals.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Node executed (1 total), capturing...\n Frame 2 saved (frame_001.jpg, t=1.7s)\n [capture-node] freeze=3ms shot=59ms unfreeze=3ms saved=True"}, {"file": "frame_003.jpg", "time": 4.98, "log": "Capturing execution frames: normals.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Node executed (1 total), capturing...\n Frame 2 saved (frame_001.jpg, t=1.7s)\n [capture-node] freeze=3ms shot=59ms unfreeze=3ms saved=True\n Frame 3 saved (frame_002.jpg, t=3.8s)\n [capture-periodic] freeze=3ms shot=70ms unfreeze=2ms saved=True"}, {"file": "frame_004.jpg", "time": 7.879225492477417, "log": "Final screenshot"}], "total_time": 5.72}, "skeleton_all": {"frames": [{"file": "frame_000.jpg", "time": 0.0, "log": "Capturing execution frames: skeleton_all.json"}, {"file": "frame_001.jpg", "time": 2.23, "log": "Capturing execution frames: skeleton_all.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution..."}, {"file": "frame_002.jpg", "time": 4.37, "log": "Capturing execution frames: skeleton_all.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=4ms shot=86ms unfreeze=3ms saved=True"}, {"file": "frame_003.jpg", "time": 6.52, "log": "Capturing execution frames: skeleton_all.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=4ms shot=86ms unfreeze=3ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.4s)\n [capture-periodic] freeze=2ms shot=78ms unfreeze=4ms saved=True\n [capture-loop] iter=50 t=5.6s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=3 ram=5.0/16.0GB (31%) swap=1.1/2.9GB (38%) cpu=21% browser_rss=0.66GB"}, {"file": "frame_004.jpg", "time": 17.1, "log": "Capturing execution frames: skeleton_all.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=4ms shot=86ms unfreeze=3ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.4s)\n [capture-periodic] freeze=2ms shot=78ms unfreeze=4ms saved=True\n [capture-loop] iter=50 t=5.6s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=3 ram=5.0/16.0GB (31%) swap=1.1/2.9GB (38%) cpu=21% browser_rss=0.66GB\n Frame 4 saved (frame_003.jpg, t=6.5s)\n [capture-periodic] freeze=2ms shot=85ms unfreeze=3ms saved=True\n [capture-loop] iter=100 t=11.3s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=3 ram=4.9/16.0GB (31%) swap=1.1/2.9GB (38%) cpu=14% browser_rss=0.56GB\n [capture-loop] iter=150 t=16.8s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=3 ram=4.9/16.0GB (31%) swap=1.1/2.9GB (38%) cpu=31% browser_rss=0.55GB"}, {"file": "frame_005.jpg", "time": 19.22, "log": "Capturing execution frames: skeleton_all.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=4ms shot=86ms unfreeze=3ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.4s)\n [capture-periodic] freeze=2ms shot=78ms unfreeze=4ms saved=True\n [capture-loop] iter=50 t=5.6s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=3 ram=5.0/16.0GB (31%) swap=1.1/2.9GB (38%) cpu=21% browser_rss=0.66GB\n Frame 4 saved (frame_003.jpg, t=6.5s)\n [capture-periodic] freeze=2ms shot=85ms unfreeze=3ms saved=True\n [capture-loop] iter=100 t=11.3s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=3 ram=4.9/16.0GB (31%) swap=1.1/2.9GB (38%) cpu=14% browser_rss=0.56GB\n [capture-loop] iter=150 t=16.8s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=3 ram=4.9/16.0GB (31%) swap=1.1/2.9GB (38%) cpu=31% browser_rss=0.55GB\n Frame 5 saved (frame_004.jpg, t=17.1s)\n [capture-periodic] freeze=2ms shot=78ms unfreeze=3ms saved=True"}, {"file": "frame_006.jpg", "time": 21.33, "log": "Capturing execution frames: skeleton_all.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=4ms shot=86ms unfreeze=3ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.4s)\n [capture-periodic] freeze=2ms shot=78ms unfreeze=4ms saved=True\n [capture-loop] iter=50 t=5.6s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=3 ram=5.0/16.0GB (31%) swap=1.1/2.9GB (38%) cpu=21% browser_rss=0.66GB\n Frame 4 saved (frame_003.jpg, t=6.5s)\n [capture-periodic] freeze=2ms shot=85ms unfreeze=3ms saved=True\n [capture-loop] iter=100 t=11.3s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=3 ram=4.9/16.0GB (31%) swap=1.1/2.9GB (38%) cpu=14% browser_rss=0.56GB\n [capture-loop] iter=150 t=16.8s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=3 ram=4.9/16.0GB (31%) swap=1.1/2.9GB (38%) cpu=31% browser_rss=0.55GB\n Frame 5 saved (frame_004.jpg, t=17.1s)\n [capture-periodic] freeze=2ms shot=78ms unfreeze=3ms saved=True\n Frame 6 saved (frame_005.jpg, t=19.2s)\n [capture-periodic] freeze=3ms shot=69ms unfreeze=4ms saved=True"}, {"file": "frame_007.jpg", "time": 22.68, "log": "Capturing execution frames: skeleton_all.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=4ms shot=86ms unfreeze=3ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.4s)\n [capture-periodic] freeze=2ms shot=78ms unfreeze=4ms saved=True\n [capture-loop] iter=50 t=5.6s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=3 ram=5.0/16.0GB (31%) swap=1.1/2.9GB (38%) cpu=21% browser_rss=0.66GB\n Frame 4 saved (frame_003.jpg, t=6.5s)\n [capture-periodic] freeze=2ms shot=85ms unfreeze=3ms saved=True\n [capture-loop] iter=100 t=11.3s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=3 ram=4.9/16.0GB (31%) swap=1.1/2.9GB (38%) cpu=14% browser_rss=0.56GB\n [capture-loop] iter=150 t=16.8s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=3 ram=4.9/16.0GB (31%) swap=1.1/2.9GB (38%) cpu=31% browser_rss=0.55GB\n Frame 5 saved (frame_004.jpg, t=17.1s)\n [capture-periodic] freeze=2ms shot=78ms unfreeze=3ms saved=True\n Frame 6 saved (frame_005.jpg, t=19.2s)\n [capture-periodic] freeze=3ms shot=69ms unfreeze=4ms saved=True\n Frame 7 saved (frame_006.jpg, t=21.3s)\n [capture-periodic] freeze=2ms shot=79ms unfreeze=8ms saved=True"}, {"file": "frame_008.jpg", "time": 24.8, "log": "Capturing execution frames: skeleton_all.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=4ms shot=86ms unfreeze=3ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.4s)\n [capture-periodic] freeze=2ms shot=78ms unfreeze=4ms saved=True\n [capture-loop] iter=50 t=5.6s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=3 ram=5.0/16.0GB (31%) swap=1.1/2.9GB (38%) cpu=21% browser_rss=0.66GB\n Frame 4 saved (frame_003.jpg, t=6.5s)\n [capture-periodic] freeze=2ms shot=85ms unfreeze=3ms saved=True\n [capture-loop] iter=100 t=11.3s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=3 ram=4.9/16.0GB (31%) swap=1.1/2.9GB (38%) cpu=14% browser_rss=0.56GB\n [capture-loop] iter=150 t=16.8s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=3 ram=4.9/16.0GB (31%) swap=1.1/2.9GB (38%) cpu=31% browser_rss=0.55GB\n Frame 5 saved (frame_004.jpg, t=17.1s)\n [capture-periodic] freeze=2ms shot=78ms unfreeze=3ms saved=True\n Frame 6 saved (frame_005.jpg, t=19.2s)\n [capture-periodic] freeze=3ms shot=69ms unfreeze=4ms saved=True\n Frame 7 saved (frame_006.jpg, t=21.3s)\n [capture-periodic] freeze=2ms shot=79ms unfreeze=8ms saved=True\n Node executed (1 total), capturing...\n Frame 8 saved (frame_007.jpg, t=22.7s)\n [capture-node] freeze=4ms shot=102ms unfreeze=3ms saved=True\n [capture-loop] iter=200 t=22.9s state={'complete': False, 'error': None, 'executedCount': 1, 'wsState': 1} eval_ms=4 ram=5.0/16.0GB (31%) swap=1.1/2.9GB (38%) cpu=17% browser_rss=0.62GB"}, {"file": "frame_009.jpg", "time": 27.75315523147583, "log": "Final screenshot"}], "total_time": 25.54}, "depth_map_to_mesh": {"frames": [{"file": "frame_000.jpg", "time": 0.0, "log": "Capturing execution frames: depth_map_to_mesh.json"}, {"file": "frame_001.jpg", "time": 2.2, "log": "Capturing execution frames: depth_map_to_mesh.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution..."}, {"file": "frame_002.jpg", "time": 4.31, "log": "Capturing execution frames: depth_map_to_mesh.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=3ms shot=75ms unfreeze=3ms saved=True"}, {"file": "frame_003.jpg", "time": 9.7, "log": "Capturing execution frames: depth_map_to_mesh.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=3ms shot=75ms unfreeze=3ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.3s)\n [capture-periodic] freeze=5ms shot=94ms unfreeze=4ms saved=True\n [capture-loop] iter=50 t=5.6s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=3 ram=5.7/16.0GB (36%) swap=0.6/2.9GB (22%) cpu=30% browser_rss=0.72GB"}, {"file": "frame_004.jpg", "time": 14.42, "log": "Capturing execution frames: depth_map_to_mesh.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=3ms shot=75ms unfreeze=3ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.3s)\n [capture-periodic] freeze=5ms shot=94ms unfreeze=4ms saved=True\n [capture-loop] iter=50 t=5.6s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=3 ram=5.7/16.0GB (36%) swap=0.6/2.9GB (22%) cpu=30% browser_rss=0.72GB\n Node executed (1 total), capturing...\n Frame 4 saved (frame_003.jpg, t=9.7s)\n [capture-node] freeze=4ms shot=70ms unfreeze=3ms saved=True\n [capture-loop] iter=100 t=11.4s state={'complete': False, 'error': None, 'executedCount': 1, 'wsState': 1} eval_ms=4 ram=6.2/16.0GB (38%) swap=0.8/2.9GB (28%) cpu=32% browser_rss=0.62GB"}, {"file": "frame_005.jpg", "time": 19.41688847541809, "log": "Final screenshot"}], "total_time": 17.26}, "fix_self_intersection": {"frames": [{"file": "frame_000.jpg", "time": 0.0, "log": "Capturing execution frames: fix_self_intersection.json"}, {"file": "frame_001.jpg", "time": 2.01, "log": "Capturing execution frames: fix_self_intersection.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution..."}, {"file": "frame_002.jpg", "time": 3.43, "log": "Capturing execution frames: fix_self_intersection.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Node executed (1 total), capturing...\n Frame 2 saved (frame_001.jpg, t=2.0s)\n [capture-node] freeze=3ms shot=82ms unfreeze=6ms saved=True"}, {"file": "frame_003.jpg", "time": 3.89, "log": "Capturing execution frames: fix_self_intersection.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Node executed (1 total), capturing...\n Frame 2 saved (frame_001.jpg, t=2.0s)\n [capture-node] freeze=3ms shot=82ms unfreeze=6ms saved=True\n Node executed (2 total), capturing...\n Frame 3 saved (frame_002.jpg, t=3.4s)\n [capture-node] freeze=3ms shot=72ms unfreeze=3ms saved=True"}, {"file": "frame_004.jpg", "time": 4.8, "log": "Capturing execution frames: fix_self_intersection.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Node executed (1 total), capturing...\n Frame 2 saved (frame_001.jpg, t=2.0s)\n [capture-node] freeze=3ms shot=82ms unfreeze=6ms saved=True\n Node executed (2 total), capturing...\n Frame 3 saved (frame_002.jpg, t=3.4s)\n [capture-node] freeze=3ms shot=72ms unfreeze=3ms saved=True\n Node executed (3 total), capturing...\n Frame 4 saved (frame_003.jpg, t=3.9s)\n [capture-node] freeze=3ms shot=78ms unfreeze=3ms saved=True"}, {"file": "frame_005.jpg", "time": 7.630320310592651, "log": "Final screenshot"}], "total_time": 5.35}, "uv_unwrap": {"frames": [{"file": "frame_000.jpg", "time": 0.0, "log": "Capturing execution frames: uv_unwrap.json"}, {"file": "frame_001.jpg", "time": 2.21, "log": "Capturing execution frames: uv_unwrap.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution..."}, {"file": "frame_002.jpg", "time": 4.44, "log": "Capturing execution frames: uv_unwrap.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=8ms shot=96ms unfreeze=4ms saved=True"}, {"file": "frame_003.jpg", "time": 6.99, "log": "Capturing execution frames: uv_unwrap.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=8ms shot=96ms unfreeze=4ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.4s)\n [capture-periodic] freeze=4ms shot=106ms unfreeze=6ms saved=True\n [capture-loop] iter=50 t=5.8s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=8 ram=5.1/16.0GB (32%) swap=1.1/2.9GB (37%) cpu=34% browser_rss=0.58GB"}, {"file": "frame_004.jpg", "time": 7.89, "log": "Capturing execution frames: uv_unwrap.json\n Frame 1 saved (frame_000.jpg, t=0.0s)\n Validating workflow...\n Queuing workflow for execution...\n Frame 2 saved (frame_001.jpg, t=2.2s)\n [capture-periodic] freeze=8ms shot=96ms unfreeze=4ms saved=True\n Frame 3 saved (frame_002.jpg, t=4.4s)\n [capture-periodic] freeze=4ms shot=106ms unfreeze=6ms saved=True\n [capture-loop] iter=50 t=5.8s state={'complete': False, 'error': None, 'executedCount': 0, 'wsState': 1} eval_ms=8 ram=5.1/16.0GB (32%) swap=1.1/2.9GB (37%) cpu=34% browser_rss=0.58GB\n Node executed (1 total), capturing...\n Frame 4 saved (frame_003.jpg, t=7.0s)\n [capture-node] freeze=4ms shot=68ms unfreeze=4ms saved=True"}, {"file": "frame_005.jpg", "time": 10.139013528823853, "log": "Final screenshot"}], "total_time": 8.0}};
const inIframe = window !== window.top;
let currentWorkflow = null;
let playInterval = null;
let originalLogContent = '';
let currentFrameIndex = 0;
let currentFrames = [];
let currentTotalTime = 0;
function openLightboxByName(name) {
const w = workflowData[name];
if (w) openLightbox(w.src, w.title, w.status, w.duration, w.log, w.hardware);
}
function openLightbox(src, title, status, duration, logContent, hardware) {
document.getElementById('lightbox-img').src = src;
document.getElementById('lightbox-title').textContent = title;
currentWorkflow = title;
originalLogContent = logContent;
const badge = document.getElementById('lightbox-badge');
badge.textContent = status;
badge.className = 'lightbox-badge ' + status;
document.getElementById('lightbox-duration').textContent = duration + 's';
document.getElementById('lightbox-log').textContent = logContent || '(No log available)';
const hwEl = document.getElementById('lightbox-hardware');
if (hardware) {
const parts = [];
if (hardware.os) parts.push(hardware.os);
if (hardware.cpu) parts.push(hardware.cpu);
if (hardware.gpu) parts.push(hardware.gpu);
hwEl.textContent = parts.join(' | ');
} else {
hwEl.textContent = status === 'skipped' ? '(Did not run on this machine)' : '';
}
const data = videoData[title];
const videoPlayer = document.getElementById('video-player');
const lightboxImg = document.getElementById('lightbox-img');
const lightboxVideo = document.getElementById('lightbox-video');
// Reset both modes; the branch below activates one.
videoPlayer.classList.remove('active');
lightboxVideo.style.display = 'none';
lightboxVideo.removeAttribute('src');
lightboxImg.style.display = '';
if (data && data.mp4) {
// Playable mp4 (desktop runs). Show <video>, hide the
// frame-slideshow img + slider.
lightboxVideo.src = 'videos/' + encodeURIComponent(title) + '/' + data.mp4;
lightboxVideo.style.display = '';
lightboxImg.style.display = 'none';
} else if (data && data.frames && data.frames.length > 1) {
currentFrames = data.frames;
currentTotalTime = data.total_time || data.frames[data.frames.length - 1].time;
setupVideoSlider(data.frames, currentTotalTime);
updateVideoFrameByIndex(title, data.frames.length - 1);
videoPlayer.classList.add('active');
}
loadResourceGraph(title);
// Close image overlay if open
closeImgOverlay();
document.getElementById('lightbox').classList.add('active');
history.replaceState(null, '', '#' + encodeURIComponent(title));
// Notify parent frames for deep linking
if (inIframe) {
window.parent.postMessage({ type: 'comfytest-open', name: title }, '*');
}
}
function buildSliderRange(frames, totalTime) {
const range = { 'min': frames[0].time };
frames.forEach((frame, idx) => {
if (idx > 0 && idx < frames.length - 1) {
const pct = (frame.time / totalTime * 100).toFixed(1) + '%';
range[pct] = frame.time;
}
});
range['max'] = frames[frames.length - 1].time;
return range;
}
function setupVideoSlider(frames, totalTime) {
const sliderEl = document.getElementById('video-slider');
if (sliderEl.noUiSlider) {
sliderEl.noUiSlider.destroy();
}
const range = buildSliderRange(frames, totalTime);
noUiSlider.create(sliderEl, {
start: frames[frames.length - 1].time,
snap: true,
range: range,
pips: {
mode: 'range',
density: 100
}
});
sliderEl.noUiSlider.on('update', function(values) {
const time = parseFloat(values[0]);
const frameIdx = frames.findIndex(f => Math.abs(f.time - time) < 0.01);
if (frameIdx >= 0 && frameIdx !== currentFrameIndex) {
currentFrameIndex = frameIdx;
showFrame(currentWorkflow, frameIdx);
}
});
}
function showFrame(workflowName, frameIndex) {
const data = videoData[workflowName];
if (!data || !data.frames) return;
const frame = data.frames[frameIndex];
const img = document.getElementById('lightbox-img');
const isLastFrame = frameIndex === data.frames.length - 1;
if (isLastFrame && workflowData[workflowName] && workflowData[workflowName].src) {
img.src = workflowData[workflowName].src;
} else {
img.src = 'videos/' + workflowName + '/' + frame.file;
}
const counter = document.getElementById('video-frame-counter');
const totalTime = data.total_time || data.frames[data.frames.length - 1].time;
counter.textContent = frame.time.toFixed(1) + 's / ' + totalTime.toFixed(1) + 's';
const logEl = document.getElementById('lightbox-log');
if (frame.log) {
logEl.textContent = frame.log;
logEl.scrollTop = logEl.scrollHeight;
}
}
function updateVideoFrameByIndex(workflowName, frameIndex) {
currentFrameIndex = frameIndex;
showFrame(workflowName, frameIndex);
const sliderEl = document.getElementById('video-slider');
if (sliderEl.noUiSlider && currentFrames[frameIndex]) {
sliderEl.noUiSlider.set(currentFrames[frameIndex].time);
}
}
function toggleVideoPlay() {
const btn = document.getElementById('video-play-btn');
if (playInterval) {
clearInterval(playInterval);
playInterval = null;
btn.innerHTML = '&#9654; Play';
} else {
btn.innerHTML = '&#9632; Stop';
playInterval = setInterval(() => {
if (!currentFrames.length) return;
currentFrameIndex = (currentFrameIndex + 1) % currentFrames.length;
updateVideoFrameByIndex(currentWorkflow, currentFrameIndex);
}, 500);
}
}
let resourceGraphState = null;
async function loadResourceGraph(workflowName) {
const graphContainer = document.getElementById('resource-graph');
const canvas = document.getElementById('resource-canvas');
const gpuLegend = document.getElementById('gpu-legend');
resourceGraphState = null;
try {
const csvResponse = await fetch('logs/' + workflowName + '_resources.csv');
if (!csvResponse.ok) {
graphContainer.classList.remove('active');
return;
}
const text = await csvResponse.text();
const allLines = text.trim().split('\n');
let totalRamGb = 32;
if (allLines[0].startsWith('#')) {
const metaMatch = allLines[0].match(/total_ram_gb=([\d.]+)/);
if (metaMatch) {
totalRamGb = parseFloat(metaMatch[1]);
}
}
const dataLines = allLines.slice(2);
if (dataLines.length < 2) {
graphContainer.classList.remove('active');
return;
}
const data = dataLines.map(line => {
const [t, ram, vram] = line.split(',');
return {
t: parseFloat(t),
ram: parseFloat(ram),
vram: vram ? parseFloat(vram) : null
};
});
const hasVram = data.some(d => d.vram !== null);
gpuLegend.style.display = hasVram ? 'flex' : 'none';
graphContainer.classList.add('active');
await new Promise(r => setTimeout(r, 10));
const ctx = canvas.getContext('2d');
const dpr = window.devicePixelRatio || 1;
const rect = canvas.getBoundingClientRect();
canvas.width = rect.width * dpr;
canvas.height = rect.height * dpr;
ctx.scale(dpr, dpr);
const w = rect.width;
const h = rect.height;
const padding = { top: 10, right: 40, bottom: 20, left: 45 };
const graphW = w - padding.left - padding.right;
const graphH = h - padding.top - padding.bottom;
const maxRam = Math.max(...data.map(d => d.ram), 0.5);
const maxVram = hasVram ? Math.max(...data.filter(d => d.vram !== null).map(d => d.vram), 0.5) : 1;
const maxTime = data[data.length - 1].t;
resourceGraphState = { data, padding, w, h, graphW, graphH, maxRam, maxVram, maxTime, hasVram, dpr };
drawResourceGraph();
} catch (e) {
console.error('Resource graph error:', e);
graphContainer.classList.remove('active');
}
}
function drawResourceGraph(hoverX) {
if (!resourceGraphState) return;
const { data, padding, w, h, graphW, graphH, maxRam, maxVram, maxTime, hasVram, dpr } = resourceGraphState;
const canvas = document.getElementById('resource-canvas');
const ctx = canvas.getContext('2d');
ctx.setTransform(dpr, 0, 0, dpr, 0, 0);
ctx.clearRect(0, 0, w, h);
// Grid lines
ctx.strokeStyle = '#1c2d44';
ctx.lineWidth = 0.5;
for (let i = 1; i < 4; i++) {
const y = padding.top + (graphH * i / 4);
ctx.beginPath();
ctx.moveTo(padding.left, y);
ctx.lineTo(w - padding.right, y);
ctx.stroke();
}
// Axes
ctx.strokeStyle = '#243656';
ctx.lineWidth = 1;
ctx.beginPath();
ctx.moveTo(padding.left, padding.top);
ctx.lineTo(padding.left, h - padding.bottom);
ctx.lineTo(w - padding.right, h - padding.bottom);
ctx.lineTo(w - padding.right, padding.top);
ctx.stroke();
// Left axis: RAM
ctx.fillStyle = '#3fb950';
ctx.font = '9px sans-serif';
ctx.textAlign = 'right';
const ramMax = Math.ceil(maxRam * 10) / 10;
ctx.fillText(ramMax.toFixed(1) + ' GB', padding.left - 3, padding.top + 4);
ctx.fillText('0', padding.left - 3, h - padding.bottom + 4);
// Right axis: VRAM (if present)
if (hasVram) {
ctx.fillStyle = '#d29922';
ctx.textAlign = 'left';
const vramMax = Math.ceil(maxVram * 10) / 10;
ctx.fillText(vramMax.toFixed(1) + ' GB', w - padding.right + 3, padding.top + 4);
ctx.fillText('0', w - padding.right + 3, h - padding.bottom + 4);
}
// Time labels
ctx.fillStyle = '#4a6282';
ctx.textAlign = 'center';
ctx.fillText('0s', padding.left, h - padding.bottom + 12);
ctx.fillText(maxTime.toFixed(0) + 's', w - padding.right, h - padding.bottom + 12);
function drawLine(values, maxVal, color) {
if (values.every(v => v === null || isNaN(v))) return;
ctx.strokeStyle = color;
ctx.lineWidth = 1.5;
ctx.beginPath();
let started = false;
data.forEach((d, i) => {
const val = values[i];
if (val === null || isNaN(val)) return;
const x = padding.left + (d.t / maxTime) * graphW;
const y = padding.top + (1 - val / maxVal) * graphH;
if (!started) { ctx.moveTo(x, y); started = true; }
else { ctx.lineTo(x, y); }
});
ctx.stroke();
}
drawLine(data.map(d => d.ram), ramMax, '#3fb950');
if (hasVram) {
drawLine(data.map(d => d.vram), Math.ceil(maxVram * 10) / 10, '#d29922');
}
// Hover crosshair
if (hoverX !== undefined && hoverX >= padding.left && hoverX <= w - padding.right) {
const timeAtCursor = ((hoverX - padding.left) / graphW) * maxTime;
let closest = data[0], closestDist = Infinity;
for (const d of data) {
const dist = Math.abs(d.t - timeAtCursor);
if (dist < closestDist) { closestDist = dist; closest = d; }
}
const snapX = padding.left + (closest.t / maxTime) * graphW;
// Vertical line
ctx.strokeStyle = 'rgba(230,237,243,0.2)';
ctx.lineWidth = 1;
ctx.beginPath();
ctx.moveTo(snapX, padding.top);
ctx.lineTo(snapX, h - padding.bottom);
ctx.stroke();
// Readout
ctx.font = '10px sans-serif';
ctx.textAlign = 'left';
const readoutX = snapX + 6;
let readoutY = padding.top + 14;
ctx.fillStyle = '#8ba3c1';
ctx.fillText(closest.t.toFixed(1) + 's', readoutX, readoutY);
readoutY += 13;
ctx.fillStyle = '#3fb950';
ctx.fillText('RAM: ' + closest.ram.toFixed(2) + ' GB', readoutX, readoutY);
readoutY += 13;
if (hasVram && closest.vram !== null) {
ctx.fillStyle = '#d29922';
ctx.fillText('VRAM: ' + closest.vram.toFixed(2) + ' GB', readoutX, readoutY);
}
}
}
// Canvas hover handler
document.getElementById('resource-canvas').addEventListener('mousemove', function(e) {
if (!resourceGraphState) return;
const rect = this.getBoundingClientRect();
drawResourceGraph(e.clientX - rect.left);
});
document.getElementById('resource-canvas').addEventListener('mouseleave', function() {
drawResourceGraph();
});
function closeImgOverlay() {
const overlay = document.getElementById('img-overlay');
overlay.classList.remove('active', 'zoomed');
}
function closeLightbox() {
if (playInterval) {
clearInterval(playInterval);
playInterval = null;
document.getElementById('video-play-btn').innerHTML = '&#9654; Play';
}
closeImgOverlay();
document.getElementById('resource-graph').classList.remove('active');
document.getElementById('lightbox').classList.remove('active');
history.replaceState(null, '', window.location.pathname);
if (inIframe) {
window.parent.postMessage({ type: 'comfytest-close' }, '*');
}
}
document.getElementById('lightbox').onclick = (e) => {
if (e.target.id === 'lightbox') closeLightbox();
};
function navigateLightbox(delta) {
if (workflowNames.length === 0) return;
const idx = workflowNames.indexOf(currentWorkflow);
if (idx === -1) return;
const newIdx = (idx + delta + workflowNames.length) % workflowNames.length;
openLightboxByName(workflowNames[newIdx]);
}
function handleKey(key) {
const overlay = document.getElementById('img-overlay');
if (key === 'Escape') {
if (overlay.classList.contains('active')) {
closeImgOverlay();
} else {
closeLightbox();
}
return;
}
if (document.getElementById('lightbox').classList.contains('active') && !overlay.classList.contains('active')) {
if (key === 'ArrowLeft') { navigateLightbox(-1); }
if (key === 'ArrowRight') { navigateLightbox(1); }
if ((key === 'ArrowUp' || key === 'ArrowDown') && inIframe) {
window.parent.postMessage({
type: 'comfytest-platform-shift',
delta: key === 'ArrowUp' ? -1 : 1,
workflow: currentWorkflow,
}, '*');
}
}
}
document.onkeydown = (e) => {
if (['Escape', 'ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown'].includes(e.key)) {
e.preventDefault();
handleKey(e.key);
}
};
// Click lightbox image -> open in fullscreen overlay (fit mode)
document.getElementById('lightbox-img').addEventListener('click', function(e) {
e.stopPropagation();
const overlay = document.getElementById('img-overlay');
const overlayImg = document.getElementById('img-overlay-content');
overlayImg.src = this.src;
overlay.classList.add('active');
overlay.classList.remove('zoomed');
});
// Click overlay image: fit -> zoomed -> close
document.getElementById('img-overlay-content').addEventListener('click', function(e) {
e.stopPropagation();
const overlay = document.getElementById('img-overlay');
if (overlay.classList.contains('zoomed')) {
closeImgOverlay();
} else {
overlay.classList.add('zoomed');
}
});
// Click overlay background -> close overlay
document.getElementById('img-overlay').addEventListener('click', function(e) {
if (e.target === this) closeImgOverlay();
});
function openFromHash() {
const hash = decodeURIComponent(window.location.hash.slice(1));
if (hash && workflowData[hash]) {
const w = workflowData[hash];
openLightbox(w.src, w.title, w.status, w.duration, w.log, w.hardware);
}
}
window.addEventListener('hashchange', openFromHash);
window.addEventListener('load', openFromHash);
// Listen for messages from parent frames
window.addEventListener('message', function(e) {
if (!e.data || !e.data.type) return;
if (e.data.type === 'comfytest-open' && e.data.name) {
openLightboxByName(e.data.name);
}
if (e.data.type === 'comfytest-key') {
handleKey(e.data.key);
}
});
// Detect iframe: hide header and move meta chips into summary
if (inIframe) {
document.body.classList.add('in-iframe');
const chips = document.querySelector('.meta-chips');
const summary = document.querySelector('.summary');
if (chips && summary) {
const wrapper = document.createElement('div');
wrapper.className = 'summary-meta';
while (chips.firstChild) wrapper.appendChild(chips.firstChild);
summary.insertBefore(wrapper, summary.firstChild);
}
}
</script>
</body>
</html>