{
 "version": "2026-10-20",
 "license": "Dimension sheets are written by Xem Studio from the cited sources and are free to use (CC BY 4.0, attribute 'Xem Studio'). Linked files belong to their publishers under the license shown; Xem Studio does not host them. 'license_verified: false' means the license shown is from memory or the publisher's page as last read and should be confirmed at the link before commercial use.",
 "slug": "free-piston-core",
 "name": "Free-piston Stirling core: displacer, power piston, liner, gas spring, stops, clearance-seal and tuning tables",
 "kind": "hardware",
 "category": "Stirling engines",
 "group": "Free-piston",
 "year": null,
 "question": "How do I design a free-piston Stirling engine: displacer, power piston, gas spring and clearance seals?",
 "tags": [
  "free piston",
  "displacer",
  "piston",
  "clearance seal",
  "gas spring",
  "beale number",
  "nasa",
  "stirling",
  "free piston",
  "long earth society"
 ],
 "aliases": [
  "free piston stirling engine design",
  "free piston stirling diy",
  "clearance seal piston gap",
  "gas spring stirling",
  "beale number",
  "displacer design free piston",
  "stirling engine without crank"
 ],
 "overall_mm": {
  "length": null,
  "width": null,
  "height": null
 },
 "official_cad": false,
 "xem_status": "free-files",
 "les": true,
 "free_files": 11,
 "url": "https://xemstudio.com/objects/free-piston-core/",
 "sheet_txt": "https://xemstudio.com/objects/free-piston-core/sheet.txt",
 "sheet": {
  "basis": "Beta free-piston layout (displacer and power piston in one bore, as Sunpower RE-1000 / NASA convertors): dimensionless rules from the public FPSE literature; parts sized for Ø30 and Ø40 bores to match the flexures, alternator and tube sizes in the library",
  "overall_mm": {
   "length": null,
   "width": null,
   "height": null
  },
  "notes": [
   "No crank: the displacer and power piston are each a mass on a spring (flexure + gas spring) and the engine runs at the resonance f = (1/2π)√(k/m). Thermodynamics sets the phase (displacer leads the piston by ~60–90°) through the displacer's gas spring and rod area, not a linkage. Design order: pick bore D and stroke S (S ≈ 0.3–0.5 D), then piston mass and alternator load, then tune the displacer spring so it leads.",
   "Clearance seals: the piston runs in the bore with no rings; the radial gap must be small enough that leakage over one cycle is a few % of swept volume. Rule of thumb from the literature: radial gap ≈ 10–20 µm for Ø20–40 mm at 50 Hz; a hobby engine at 10–15 Hz tolerates 25–40 µm. That is a lapped fit (piston turned 0.05 under, lapped into a honed liner), not a printed one: the printed piston blanks here are 0.1 mm under for you to finish, or use a glass syringe (10 mL: Ø14.5) or a graphite piston in a glass liner for a zero-effort seal. Displacer gap is generous (0.5–1 mm radial): it is a shuttle, not a seal.",
   "Gas spring: a sealed bounce space behind the piston; stiffness k_gas = γ·p·A² / V (γ 1.4 air, p mean pressure, A piston area, V bounce volume). Ø20 gas piston at 1 bar with 20 cm³ bounce → k ≈ 1.4 × 10⁵ × (3.14e-4)² / 2e-5 ≈ 690 N/m. Smaller volume → stiffer. Centring ports (two 0.5 mm holes the piston uncovers at mid-stroke) keep the mean position from drifting.",
   "Stops: the piston must never hit metal; TPU bumpers at both ends of the stroke, 6 mm tall, stroke limited to 85% of the free travel. Over-stroke is the normal failure when the load drops.",
   "Dimensionless checks: Beale number ≈ 0.015 for a hobby engine (W = Bn · p_mean · V_swept · f; 1 bar, 10 cm³, 15 Hz → ~0.2 W), 0.1+ for pressurised helium machines; West number ~0.25. Dead volume ratio under 1.5; regenerator porosity 0.7; heater and cooler as copper/stainless tube from the library.",
   "LES: the Ø40 core on flexures with the linear alternator is the next test bed after the crank engines; the tri-clamp spools are its pressure vessel."
  ],
  "table": {
   "columns": [
    "bore_mm",
    "stroke_mm",
    "displacer_len_mm",
    "radial_gap_um_piston",
    "radial_gap_mm_displacer",
    "gas_spring_bore_mm",
    "freq_hz_hobby"
   ],
   "rows": [
    [
     30,
     "10–15",
     75,
     "25–40 (lapped)",
     "0.5",
     15,
     "10–20"
    ],
    [
     40,
     "12–20",
     100,
     "25–40 (lapped)",
     "0.5",
     20,
     "10–20"
    ],
    [
     60,
     "20–30",
     150,
     "20–30",
     "0.8",
     30,
     "10–15"
    ]
   ]
  }
 },
 "sheet_text": "Free-piston Stirling core: displacer, power piston, liner, gas spring, stops, clearance-seal and tuning tables — dimension sheet\nSource: Xem Studio, https://xemstudio.com/objects/free-piston-core/  (CC BY 4.0)\nBasis: Beta free-piston layout (displacer and power piston in one bore, as Sunpower RE-1000 / NASA convertors): dimensionless rules from the public FPSE literature; parts sized for Ø30 and Ø40 bores to match the flexures, alternator and tube sizes in the library\nCatalog version: 2026-10-20\n\nSizes: see table below\n- No crank: the displacer and power piston are each a mass on a spring (flexure + gas spring) and the engine runs at the resonance f = (1/2π)√(k/m). Thermodynamics sets the phase (displacer leads the piston by ~60–90°) through the displacer's gas spring and rod area, not a linkage. Design order: pick bore D and stroke S (S ≈ 0.3–0.5 D), then piston mass and alternator load, then tune the displacer spring so it leads.\n- Clearance seals: the piston runs in the bore with no rings; the radial gap must be small enough that leakage over one cycle is a few % of swept volume. Rule of thumb from the literature: radial gap ≈ 10–20 µm for Ø20–40 mm at 50 Hz; a hobby engine at 10–15 Hz tolerates 25–40 µm. That is a lapped fit (piston turned 0.05 under, lapped into a honed liner), not a printed one: the printed piston blanks here are 0.1 mm under for you to finish, or use a glass syringe (10 mL: Ø14.5) or a graphite piston in a glass liner for a zero-effort seal. Displacer gap is generous (0.5–1 mm radial): it is a shuttle, not a seal.\n- Gas spring: a sealed bounce space behind the piston; stiffness k_gas = γ·p·A² / V (γ 1.4 air, p mean pressure, A piston area, V bounce volume). Ø20 gas piston at 1 bar with 20 cm³ bounce → k ≈ 1.4 × 10⁵ × (3.14e-4)² / 2e-5 ≈ 690 N/m. Smaller volume → stiffer. Centring ports (two 0.5 mm holes the piston uncovers at mid-stroke) keep the mean position from drifting.\n- Stops: the piston must never hit metal; TPU bumpers at both ends of the stroke, 6 mm tall, stroke limited to 85% of the free travel. Over-stroke is the normal failure when the load drops.\n- Dimensionless checks: Beale number ≈ 0.015 for a hobby engine (W = Bn · p_mean · V_swept · f; 1 bar, 10 cm³, 15 Hz → ~0.2 W), 0.1+ for pressurised helium machines; West number ~0.25. Dead volume ratio under 1.5; regenerator porosity 0.7; heater and cooler as copper/stainless tube from the library.\n- LES: the Ø40 core on flexures with the linear alternator is the next test bed after the crank engines; the tri-clamp spools are its pressure vessel.\n\nbore_mm  stroke_mm  displacer_len_mm  radial_gap_um_piston  radial_gap_mm_displacer  gas_spring_bore_mm  freq_hz_hobby\n30  10–15  75  25–40 (lapped)  0.5  15  10–20\n40  12–20  100  25–40 (lapped)  0.5  20  10–20\n60  20–30  150  20–30  0.8  30  10–15\n\nFiles elsewhere (not hosted by Xem Studio; license as stated by the publisher):\n- NASA (NTRS, public domain): Free-piston Stirling engine design and analysis (RE-1000 test results) (1984) — PDF — US Government work, public domain — https://ntrs.nasa.gov/search?q=19840017543\n- NASA (NTRS, public domain): Dynamics of free-piston Stirling engines (1987) — PDF — US Government work, public domain — https://ntrs.nasa.gov/search?q=19870011457\n- Wikipedia: Free-piston engine — web — CC BY-SA 4.0 (text) — https://en.wikipedia.org/wiki/Free-piston_engine\n- Wikipedia: Beale number — web — CC BY-SA 4.0 (text) — https://en.wikipedia.org/wiki/Beale_number\n- Ohio University: Stirling cycle machine analysis (Urieli), free online — web — Author's site — https://www.ohio.edu/mechanical/stirling/\n- Long Earth Society: Engine builds — web, video — LES site — https://longearthsociety.com/engineering/\n\nFree files (CC BY 4.0, Xem Studio; STEP + STL, 11 parts): https://xemstudio.com/files/hardware/free-piston-core/index.json\nAPI: https://xemstudio.com/api/geometry?object=free-piston-core\n",
 "sources": [
  {
   "publisher": "NASA (NTRS, public domain)",
   "title": "Free-piston Stirling engine design and analysis (RE-1000 test results) (1984)",
   "url": "https://ntrs.nasa.gov/search?q=19840017543",
   "formats": [
    "PDF"
   ],
   "license": "US Government work, public domain",
   "license_verified": true,
   "hosted": false
  },
  {
   "publisher": "NASA (NTRS, public domain)",
   "title": "Dynamics of free-piston Stirling engines (1987)",
   "url": "https://ntrs.nasa.gov/search?q=19870011457",
   "formats": [
    "PDF"
   ],
   "license": "US Government work, public domain",
   "license_verified": true,
   "hosted": false
  },
  {
   "publisher": "Wikipedia",
   "title": "Free-piston engine",
   "url": "https://en.wikipedia.org/wiki/Free-piston_engine",
   "formats": [
    "web"
   ],
   "license": "CC BY-SA 4.0 (text)",
   "license_verified": true,
   "hosted": false
  },
  {
   "publisher": "Wikipedia",
   "title": "Beale number",
   "url": "https://en.wikipedia.org/wiki/Beale_number",
   "formats": [
    "web"
   ],
   "license": "CC BY-SA 4.0 (text)",
   "license_verified": true,
   "hosted": false
  },
  {
   "publisher": "Ohio University",
   "title": "Stirling cycle machine analysis (Urieli), free online",
   "url": "https://www.ohio.edu/mechanical/stirling/",
   "formats": [
    "web"
   ],
   "license": "Author's site",
   "license_verified": true,
   "hosted": false
  },
  {
   "publisher": "Long Earth Society",
   "title": "Engine builds",
   "url": "https://longearthsociety.com/engineering/",
   "formats": [
    "web",
    "video"
   ],
   "license": "LES site",
   "license_verified": true,
   "hosted": false
  }
 ],
 "xem": {
  "status": "free-files",
  "sheet_free": true,
  "mesh_price_usd": null,
  "step_price_usd": null,
  "tolerance_mm": null
 },
 "related": [
  "spiral-flexure-bearings",
  "linear-alternator-kit",
  "regenerator-and-heat-materials",
  "plastic-syringes",
  "borosilicate-test-tubes",
  "tri-clamp-spool",
  "o-rings-metric",
  "nasa-fpse-references"
 ],
 "faq": [
  {
   "q": "What is the piston clearance in a free-piston Stirling engine?",
   "a": "10–20 µm radial for the real machines at 50+ Hz; 25–40 µm is workable for a slow hobby engine. It is a lapped or honed fit, never a printed one: print the blank, lap it in, or use a glass syringe or graphite-in-glass piston."
  },
  {
   "q": "How does a free-piston Stirling engine keep its phase without a crank?",
   "a": "The displacer is a tuned mass-spring system (flexure + gas spring on its rod) that resonates slightly ahead of the piston; rod area and gas-spring volume set the phase angle, typically 60–90° lead."
  },
  {
   "q": "What is the Beale number?",
   "a": "W = Bn · p_mean · V_swept · f with Bn ≈ 0.015 for a low-temperature hobby engine and ~0.1–0.15 for pressurised, high-ΔT machines. 1 bar, 10 cm³, 15 Hz → about 0.2 W."
  },
  {
   "q": "What stops a free-piston engine from over-stroking?",
   "a": "The load: alternator current is the brake. Plus TPU bumpers at both ends and a stroke limited to 85% of the free travel for when the load drops."
  }
 ],
 "files_license": null,
 "offers": [
  {
   "file": "displacer-30x75",
   "formats": [
    "step",
    "stl"
   ],
   "price_usd": 0,
   "license": "CC BY 4.0 (Xem Studio)",
   "step": "https://xemstudio.com/files/hardware/free-piston-core/displacer-30x75.step",
   "stl": "https://xemstudio.com/files/hardware/free-piston-core/displacer-30x75.stl",
   "note": "displacer Ø29 (0.5 mm radial gap in a Ø30 bore) × 75, hollow 1.2 wall, Ø5 rod boss"
  },
  {
   "file": "power-piston-30x30",
   "formats": [
    "step",
    "stl"
   ],
   "price_usd": 0,
   "license": "CC BY 4.0 (Xem Studio)",
   "step": "https://xemstudio.com/files/hardware/free-piston-core/power-piston-30x30.step",
   "stl": "https://xemstudio.com/files/hardware/free-piston-core/power-piston-30x30.stl",
   "note": "power piston Ø29.9 × 30 (clearance-seal blank: lap to fit), Ø5 rod"
  },
  {
   "file": "cylinder-liner-30x120",
   "formats": [
    "step",
    "stl"
   ],
   "price_usd": 0,
   "license": "CC BY 4.0 (Xem Studio)",
   "step": "https://xemstudio.com/files/hardware/free-piston-core/cylinder-liner-30x120.step",
   "stl": "https://xemstudio.com/files/hardware/free-piston-core/cylinder-liner-30x120.stl",
   "note": "cylinder liner Ø30 bore × 120, 3 wall (print to check layout; real liner is honed tube or a glass/brass tube from the library)"
  },
  {
   "file": "gas-spring-piston-15x15",
   "formats": [
    "step",
    "stl"
   ],
   "price_usd": 0,
   "license": "CC BY 4.0 (Xem Studio)",
   "step": "https://xemstudio.com/files/hardware/free-piston-core/gas-spring-piston-15x15.step",
   "stl": "https://xemstudio.com/files/hardware/free-piston-core/gas-spring-piston-15x15.stl",
   "note": "gas-spring piston Ø14.9 × 15 for a Ø15 bounce-space bore"
  },
  {
   "file": "stop-bumper-30",
   "formats": [
    "step",
    "stl"
   ],
   "price_usd": 0,
   "license": "CC BY 4.0 (Xem Studio)",
   "step": "https://xemstudio.com/files/hardware/free-piston-core/stop-bumper-30.step",
   "stl": "https://xemstudio.com/files/hardware/free-piston-core/stop-bumper-30.stl",
   "note": "end-stop bumper for a Ø30 bore (TPU), 6 tall"
  },
  {
   "file": "displacer-40x100",
   "formats": [
    "step",
    "stl"
   ],
   "price_usd": 0,
   "license": "CC BY 4.0 (Xem Studio)",
   "step": "https://xemstudio.com/files/hardware/free-piston-core/displacer-40x100.step",
   "stl": "https://xemstudio.com/files/hardware/free-piston-core/displacer-40x100.stl",
   "note": "displacer Ø39 (0.5 mm radial gap in a Ø40 bore) × 100, hollow 1.2 wall, Ø5 rod boss"
  },
  {
   "file": "power-piston-40x40",
   "formats": [
    "step",
    "stl"
   ],
   "price_usd": 0,
   "license": "CC BY 4.0 (Xem Studio)",
   "step": "https://xemstudio.com/files/hardware/free-piston-core/power-piston-40x40.step",
   "stl": "https://xemstudio.com/files/hardware/free-piston-core/power-piston-40x40.stl",
   "note": "power piston Ø39.9 × 40 (clearance-seal blank: lap to fit), Ø5 rod"
  },
  {
   "file": "cylinder-liner-40x160",
   "formats": [
    "step",
    "stl"
   ],
   "price_usd": 0,
   "license": "CC BY 4.0 (Xem Studio)",
   "step": "https://xemstudio.com/files/hardware/free-piston-core/cylinder-liner-40x160.step",
   "stl": "https://xemstudio.com/files/hardware/free-piston-core/cylinder-liner-40x160.stl",
   "note": "cylinder liner Ø40 bore × 160, 3 wall (print to check layout; real liner is honed tube or a glass/brass tube from the library)"
  },
  {
   "file": "gas-spring-piston-20x20",
   "formats": [
    "step",
    "stl"
   ],
   "price_usd": 0,
   "license": "CC BY 4.0 (Xem Studio)",
   "step": "https://xemstudio.com/files/hardware/free-piston-core/gas-spring-piston-20x20.step",
   "stl": "https://xemstudio.com/files/hardware/free-piston-core/gas-spring-piston-20x20.stl",
   "note": "gas-spring piston Ø19.9 × 20 for a Ø20 bounce-space bore"
  },
  {
   "file": "stop-bumper-40",
   "formats": [
    "step",
    "stl"
   ],
   "price_usd": 0,
   "license": "CC BY 4.0 (Xem Studio)",
   "step": "https://xemstudio.com/files/hardware/free-piston-core/stop-bumper-40.step",
   "stl": "https://xemstudio.com/files/hardware/free-piston-core/stop-bumper-40.stl",
   "note": "end-stop bumper for a Ø40 bore (TPU), 6 tall"
  },
  {
   "file": "displacer-rod-5x150-grooved",
   "formats": [
    "step",
    "stl"
   ],
   "price_usd": 0,
   "license": "CC BY 4.0 (Xem Studio)",
   "step": "https://xemstudio.com/files/hardware/free-piston-core/displacer-rod-5x150-grooved.step",
   "stl": "https://xemstudio.com/files/hardware/free-piston-core/displacer-rod-5x150-grooved.stl",
   "note": "Ø5 × 150 displacer rod with E-clip grooves"
  }
 ],
 "markdown": "https://xemstudio.com/objects/free-piston-core/index.md"
}