{
  "title": "LT-PAM Open-Hardware Audit: Nine Files, Three Versions, Zero Raw Test Traces",
  "rciNumber": "RCI 027",
  "version": "0.1.0",
  "schemaVersion": 1,
  "released": "2026-08-10",
  "canonical": "https://robotcomponentindex.com/research/lt-pam-open-hardware-reproducibility-audit/",
  "source": {
    "title": "Low-Cost and Tough Pneumatic Artificial Muscle (LT-PAM): Design Files and Documentation",
    "creators": [
      {
        "name": "Keisuke Naniwa",
        "orcid": "0000-0003-3171-958X"
      },
      {
        "name": "Yasuhiro Sugimoto",
        "orcid": "0000-0001-8068-3777"
      },
      {
        "name": "Daisuke Nakanishi",
        "orcid": "0000-0002-4408-6876"
      },
      {
        "name": "Yoichi Masuda",
        "orcid": "0000-0001-7365-5022"
      }
    ],
    "conceptDoi": "10.5281/zenodo.18665922",
    "currentVersionDoi": "10.5281/zenodo.21862439",
    "currentRecordUrl": "https://zenodo.org/records/21862439",
    "currentRecordId": 21862439,
    "currentPublicationDate": "2026-08-09",
    "currentRecordMetadataLicense": "CC BY 4.0",
    "associatedPreprint": {
      "title": "Low-Cost and Tough Pneumatic Artificial Muscle (LT-PAM)",
      "doi": "10.2139/ssrn.6480279",
      "type": "preprint",
      "publisher": "Elsevier BV / SSRN",
      "reviewBoundary": "RCI reviewed public DOI metadata and the public abstract. SSRN's security-verification page prevented full-text review on 2026-08-10, so no paper table, method detail or result was independently audited.",
      "licenseInCrossrefMetadata": null
    },
    "verifiedDate": "2026-08-10"
  },
  "independentAudit": {
    "method": "RCI resolved all three public Zenodo version records, downloaded every file in the current record, matched all published byte counts and MD5 values, computed SHA-256 hashes and a deterministic manifest hash, parsed the BOM, inspected binary STL topology and coordinate bounds, and probed the initial and current assembly videos with ffprobe. RCI did not fabricate, pressurize, load, cycle or destructively test an actuator.",
    "fileCount": 9,
    "totalBytes": 65953142,
    "allCurrentFilesMatchZenodoMd5": true,
    "manifestSha256": "e18840be5844824547dd56cad35322a4bb987553891c99f9597c048151748018",
    "versionCount": 3,
    "designFileCount": 6,
    "designFilesStableAcrossAllVersions": 6,
    "latestTwoRecordsWithoutExplicitVersionLabel": 2,
    "bomRowCount": 8,
    "rawMechanicalTestDataFileCount": 0,
    "standaloneLicenseFileCount": 0,
    "editableCadFileCount": 3,
    "neutralCadExchangeFileCount": 0,
    "sourceFilesRedistributedByRci": false,
    "physicalActuatorIndependentlyTestedByRci": false
  },
  "fileManifest": [
    {
      "filename": "BOM_LT-PAM.csv",
      "role": "bill-of-materials",
      "bytes": 957,
      "md5": "42715d026beca3c36d73b700e326f172",
      "sha256": "d565ae6f1856ff4ea3c570283c84f02ad21bd179e735dd874dd3b99205a89892",
      "presentInVersionCount": 2,
      "stableWherePresent": true,
      "stableAcrossAllVersions": false,
      "statedLicenseScope": "ambiguous-file-level-scope",
      "licenseNote": "The Zenodo record metadata says CC BY 4.0, while the README assigns CERN-OHL-P-2.0 to design files and CC BY 4.0 to documentation/video without explicitly assigning the editable BOM."
    },
    {
      "filename": "LT-PAM_holder.ipt",
      "role": "editable-cad",
      "bytes": 1051136,
      "md5": "6e5b0b3c35809dc953b1e08c3ba0e261",
      "sha256": "3c25b782a82c747fc8cb7fb1647c7bda5d091e338adb2f37b13d6f94cf4d0693",
      "presentInVersionCount": 3,
      "stableWherePresent": true,
      "stableAcrossAllVersions": true,
      "statedLicenseScope": "README-stated CERN-OHL-P-2.0",
      "licenseNote": "No standalone LICENSE or NOTICE file is deposited."
    },
    {
      "filename": "LT-PAM_holder.stl",
      "role": "print-mesh",
      "bytes": 941784,
      "md5": "7ab7d8f0d9e8c6e0157fbd5c0ad1f202",
      "sha256": "8c06dcf8ea65f8f16353f22a1254f8417b29128692c02f879c7e5466bb1d2bc9",
      "presentInVersionCount": 3,
      "stableWherePresent": true,
      "stableAcrossAllVersions": true,
      "statedLicenseScope": "README-stated CERN-OHL-P-2.0",
      "licenseNote": "No standalone LICENSE or NOTICE file is deposited."
    },
    {
      "filename": "LT-PAM_HowToMake.mp4",
      "role": "assembly-video",
      "bytes": 61362649,
      "md5": "fa789085e8223de98a56775ab075e896",
      "sha256": "ba90b08286e2adbe42fc656efd02c4572895827c73a2b68764e96c70c393902c",
      "presentInVersionCount": 3,
      "stableWherePresent": false,
      "stableAcrossAllVersions": false,
      "statedLicenseScope": "README-stated CC BY 4.0",
      "licenseNote": "The current video replaces the initial file and changes the caption/claim set."
    },
    {
      "filename": "LT-PAM_longholder.ipt",
      "role": "editable-cad",
      "bytes": 1031168,
      "md5": "4d2f4863f7c41a3a99bc724cc791c5c9",
      "sha256": "2a6d53531df30f2795a65821eab4970cd203ef21ba76163d62e011c980942a48",
      "presentInVersionCount": 3,
      "stableWherePresent": true,
      "stableAcrossAllVersions": true,
      "statedLicenseScope": "README-stated CERN-OHL-P-2.0",
      "licenseNote": "No standalone LICENSE or NOTICE file is deposited."
    },
    {
      "filename": "LT-PAM_longholder.stl",
      "role": "print-mesh",
      "bytes": 1240684,
      "md5": "764b4ee1f9a076caec39a8d1273606f6",
      "sha256": "aa4a3b7871a1aef9c98dc3678717c9360c54d37f3c734f1298c5474a7a2fcd08",
      "presentInVersionCount": 3,
      "stableWherePresent": true,
      "stableAcrossAllVersions": true,
      "statedLicenseScope": "README-stated CERN-OHL-P-2.0",
      "licenseNote": "No standalone LICENSE or NOTICE file is deposited."
    },
    {
      "filename": "LT-PAM_stopper.ipt",
      "role": "editable-cad",
      "bytes": 261632,
      "md5": "f7640de1456caa50b287ca813161b454",
      "sha256": "1dd7d5e3f537634fb9384df5dae35cda6aab60515fd88af60a11f26301c58fd6",
      "presentInVersionCount": 3,
      "stableWherePresent": true,
      "stableAcrossAllVersions": true,
      "statedLicenseScope": "README-stated CERN-OHL-P-2.0",
      "licenseNote": "No standalone LICENSE or NOTICE file is deposited."
    },
    {
      "filename": "LT-PAM_stopper.stl",
      "role": "print-mesh",
      "bytes": 59284,
      "md5": "90bfa6c2062312a6901c42381a375f34",
      "sha256": "ab7d5f16b787ce55f412450f5ecaeb5a99e11880ba2e3b58d13ed21a5f6a2a9f",
      "presentInVersionCount": 3,
      "stableWherePresent": true,
      "stableAcrossAllVersions": true,
      "statedLicenseScope": "README-stated CERN-OHL-P-2.0",
      "licenseNote": "No standalone LICENSE or NOTICE file is deposited."
    },
    {
      "filename": "README.md",
      "role": "documentation",
      "bytes": 3848,
      "md5": "14d404c3d4becf0715362ac023381a01",
      "sha256": "91ac7e487ba38fe194ae82f7594359213cd3a06a21d3de4f139a95b56e0101b8",
      "presentInVersionCount": 3,
      "stableWherePresent": false,
      "stableAcrossAllVersions": false,
      "statedLicenseScope": "README-stated CC BY 4.0",
      "licenseNote": "The current README removes several numeric performance statements present in the initial README."
    }
  ],
  "versionHistory": {
    "records": [
      {
        "recordId": 18665923,
        "doi": "10.5281/zenodo.18665923",
        "publicationDate": "2026-02-17",
        "versionLabel": "1.0",
        "fileCount": 8,
        "totalBytes": 242522895
      },
      {
        "recordId": 21132366,
        "doi": "10.5281/zenodo.21132366",
        "publicationDate": "2026-07-02",
        "versionLabel": null,
        "fileCount": 9,
        "totalBytes": 242522913
      },
      {
        "recordId": 21862439,
        "doi": "10.5281/zenodo.21862439",
        "publicationDate": "2026-08-09",
        "versionLabel": null,
        "fileCount": 9,
        "totalBytes": 65953142
      }
    ],
    "transitions": [
      {
        "fromRecordId": 18665923,
        "toRecordId": 21132366,
        "added": [
          "BOM_LT-PAM.csv"
        ],
        "removed": [],
        "modified": [
          "README.md"
        ],
        "totalByteDifference": 18
      },
      {
        "fromRecordId": 21132366,
        "toRecordId": 21862439,
        "added": [],
        "removed": [],
        "modified": [
          "LT-PAM_HowToMake.mp4"
        ],
        "totalByteDifference": -176569771
      }
    ],
    "interpretation": "The six design files are byte-identical across all three records. The BOM first appears in the middle record. The current video is a substantively revised replacement, not merely a byte-identical file under a new DOI. The latest two records have no explicit version label."
  },
  "billOfMaterials": {
    "rowCount": 8,
    "materialOrComponentRowCount": 7,
    "reusableToolRowCount": 1,
    "rowsWithBlankTotalCost": 2,
    "disclosedMaterialProcurementSubtotalJpy": 1624.2,
    "disclosedNonOptionalMaterialProcurementSubtotalJpy": 1346.2,
    "disclosedReusableToolSubtotalJpy": 2290,
    "nominalLengthCalculation": {
      "basis": "The current assembly video says to cut the silicone tube 20 mm longer than the desired actuator and the braided sleeve about 10 mm longer than the tube.",
      "desiredActuatorLengthMm": 150,
      "siliconeTubeLengthMm": 170,
      "braidedSleeveLengthMm": 180,
      "knownConsumedPartsSubtotalJpyExcludingCementPrintsTool": 583.27,
      "knownConsumedPartsSubtotalJpyIfFullCementContainerCharged": 861.27,
      "printingCostPublished": false,
      "cementAllocationPublished": false,
      "exchangeRateAndDatePublished": false,
      "wasteShippingAndTaxAllocationPublished": false
    },
    "costConclusion": "The public BOM supports a bounded yen calculation, but it does not publish print cost, cement allocation or a dated exchange rate. RCI therefore cannot independently reconcile the source's approximately USD 5 per-actuator statement as an exact reproducible cost."
  },
  "geometry": {
    "methodBoundary": "Binary STL triangles were parsed directly. Edge incidence, connected components, degeneracy and coordinate extents are mathematical mesh checks only; they do not prove printable tolerances, airtightness, material strength or pressure safety.",
    "stlFileCount": 3,
    "coordinateUnitDeclaredInsideStl": false,
    "files": [
      {
        "filename": "LT-PAM_holder.stl",
        "triangleCount": 18834,
        "uniqueVertexCount": 9409,
        "connectedComponentCount": 1,
        "degenerateTriangleCount": 0,
        "boundaryEdgeCount": 0,
        "nonManifoldEdgeCount": 0,
        "watertightTwoManifoldByEdgeCount": true,
        "coordinateExtent": [
          20.7,
          21.4,
          37
        ]
      },
      {
        "filename": "LT-PAM_longholder.stl",
        "triangleCount": 24812,
        "uniqueVertexCount": 12398,
        "connectedComponentCount": 1,
        "degenerateTriangleCount": 0,
        "boundaryEdgeCount": 0,
        "nonManifoldEdgeCount": 0,
        "watertightTwoManifoldByEdgeCount": true,
        "coordinateExtent": [
          20.7,
          21.4,
          40.5
        ]
      },
      {
        "filename": "LT-PAM_stopper.stl",
        "triangleCount": 1184,
        "uniqueVertexCount": 594,
        "connectedComponentCount": 1,
        "degenerateTriangleCount": 0,
        "boundaryEdgeCount": 0,
        "nonManifoldEdgeCount": 0,
        "watertightTwoManifoldByEdgeCount": true,
        "coordinateExtent": [
          8.2,
          8.177,
          20.5
        ]
      }
    ]
  },
  "assemblyVideo": {
    "initial": {
      "recordId": 18665923,
      "durationSeconds": 186.795,
      "bytes": 237932420,
      "bitRate": 10190116,
      "videoCodec": "h264",
      "dimensions": "1920x1080",
      "nominalFrameRate": "60/1",
      "audioCodec": "aac",
      "md5": "f7ff603ce2e1d5e963aab84bd950fab4",
      "sha256": "4b84510c98067f81662b8e901a3314bcc2b9d649c393b51e29b002350b96937a"
    },
    "current": {
      "recordId": 21862439,
      "durationSeconds": 169.322,
      "bytes": 61362649,
      "bitRate": 2899216,
      "videoCodec": "h264",
      "dimensions": "1920x1080",
      "nominalFrameRate": "30/1",
      "audioCodec": "aac",
      "md5": "fa789085e8223de98a56775ab075e896",
      "sha256": "ba90b08286e2adbe42fc656efd02c4572895827c73a2b68764e96c70c393902c"
    },
    "comparison": {
      "sameMd5": false,
      "durationDifferenceSeconds": -17.473,
      "byteDifference": -176569771,
      "byteReductionPercent": 74.21,
      "sameNominalFrameRate": false,
      "sameDimensions": true,
      "manualCaptionObservation": "The initial Japanese-captioned ending reports 200 N tension at 0.6 MPa. The current English-captioned ending instead reports approximately 25% no-load contraction, repeated lifting of about 20 kg, and stable stroke after more than 9,000 cycles. These are source-video statements, not RCI measurements."
    }
  },
  "sourceReportedClaims": [
    {
      "claim": "Material cost is about USD 5 per actuator.",
      "sourceLocation": "Current README and Zenodo description",
      "evidenceRole": "author-reported; not exactly reconciled by RCI",
      "rciBoundary": "The BOM omits print cost, allocated cement consumption and a dated exchange rate."
    },
    {
      "claim": "Rupture capacity is 600–800 N and the recommended working load is about 400 N.",
      "sourceLocation": "Current Zenodo description; similar values in the initial README",
      "evidenceRole": "author-reported; not independently tested by RCI",
      "rciBoundary": "No raw load–extension traces, specimen table, calibration record or failure log is deposited."
    },
    {
      "claim": "Contraction stroke changed by less than 3% over more than 9,000 cycles without rupture or leakage.",
      "sourceLocation": "Current Zenodo description",
      "evidenceRole": "author-reported; not independently reproduced by RCI",
      "rciBoundary": "No raw cycle trace, pressure trace, inspection log or analysis code is deposited."
    }
  ],
  "rightsBoundary": {
    "recordLevelMetadata": "The current Zenodo record is marked CC BY 4.0.",
    "readmeFileTypeSplit": "The current README states CERN-OHL-P-2.0 for design files and CC BY 4.0 for documentation/video.",
    "standaloneLicensePresent": false,
    "bomFileLevelLicenseResolved": false,
    "rciReuse": "RCI publishes only independently computed facts, hashes, counts and observations. It does not mirror the source CAD, meshes, BOM, video, README or preprint."
  },
  "reproductionBoundary": {
    "fabricationPackagePresent": true,
    "editableProprietaryCadPresent": true,
    "neutralCadExchangePresent": false,
    "rawMechanicalTestDataPresent": false,
    "testAnalysisCodePresent": false,
    "calibrationRecordsPresent": false,
    "specimenLevelTestLogPresent": false,
    "independentReplicaBuiltByRci": false,
    "performanceClaimsIndependentlyReproducibleFromDeposit": false,
    "interpretation": "The deposit is useful open fabrication documentation with a stable six-file design core. It is not a complete performance-reproduction package, and RCI's mesh checks do not validate pressure safety or actuator performance."
  },
  "limitations": [
    "RCI did not fabricate an LT-PAM, inspect a physical specimen, verify material lots, pressurize the actuator or measure force, contraction, leakage, rupture or fatigue.",
    "The full SSRN preprint was not reviewed because SSRN served a security-verification page; only public DOI metadata and abstract-level information were available.",
    "STL coordinate units are not embedded in the binary files, so RCI reports coordinate-unit extents rather than asserting millimetres from the files alone.",
    "Zero boundary or non-manifold edges by edge count does not establish sliceability, dimensional accuracy, airtightness, pressure rating or mechanical strength.",
    "The approximately USD 5 statement depends on unpublished printing, consumable-allocation and currency-conversion assumptions.",
    "The latest two Zenodo records omit explicit version labels, and file-level license scope remains ambiguous for the BOM.",
    "Author-reported performance values are preserved as source claims and must not be represented as RCI verification or product certification."
  ],
  "suggestedCitation": "Robot Component Index. LT-PAM Open-Hardware Audit: Nine Files, Three Versions, Zero Raw Test Traces. RCI 027, research dataset v0.1.0, 2026-08-10. https://robotcomponentindex.com/research/lt-pam-open-hardware-reproducibility-audit/"
}