Skip to content
Table of contents

WearMachine

WearMachine collects the parts of the abrasion bench used in the ÉTS master’s research on wear in texture space: a sample slides on a rail under a chosen load, then is scanned with a GelSight sensor. The repository, published under ETSim, is for anyone who wants to rebuild or adapt the rig to evaluate wear, study friction or check simulations against measurements.

Hardware / CAD
STEPSTLDXFInkscape SVG
  • Updated

1. Overview

The README states the goal and the components: a GelSight bench, custom fixtures (the CAD files in the repository), load sensors, linear actuators and a control and acquisition system. Only the fixtures are in the repository. They are organised in three part families, each available in up to four formats:

  • Rail: Rail, Rail_Holder, Rail_Ski, Pusher, Seperator, Holder Berring, plus a Base plate drawing, a nema17bracket_v2 motor bracket and a t8_nut lead-screw nut. The names point to a stepper motor and lead screw moving the sample along the rail.
  • Weight: Weight Holder parts for 10, 20, 50, 100, 200, 500 and 1000 g that set the normal load on the sample.
  • Gelsight_Holder: 30mm Sample Holder, 40mm Sample Holder and Benchtop Holder Square to hold samples under the GelSight sensor.

Picture/Assembly.png is a 1:8 drawing sheet, dated March 2025, of the assembled frame: two rails and a crossbar with five sample holes of increasing size. Drawing/Mold/20240430_16_Holes.svg is an A4 Inkscape sheet with a 16-hole mold layout.

2. Use cases

CAD, print and drawing files for a small sliding-wear bench whose samples are scanned with a GelSight sensor.

Use-case diagram for WearMachine: Print the bench parts; Modify parts in CAD; Cut flat parts from DXF; Set the normal load; Hold samples under GelSightWearMachinePrint the bench partsModify parts in CADCut flat parts from DXFSet the normal loadHold samples under GelSightBench builder«system»3D printer or cutter«system»GelSight scanner
People on the left, external systems on the right; each oval is a use case backed by the files cited below.
Print the bench parts
Bench builder3D printer or cutter

Print/ holds STL files for the rail, rail holder, ski, pusher, separator, bearing holder, motor bracket, lead-screw nut, sample holders and weight holders.

Modify parts in CAD
Bench builder

Raw/ keeps STEP solids of the sample holders, rail parts and most weight holders so dimensions can be changed before printing.

Cut flat parts from DXF
Bench builder3D printer or cutter

Drawing/ provides DXF outlines, including a Base plate that exists only as DXF, plus an Inkscape A4 sheet with 16 holes for a mold.

Set the normal load
Bench builder

Weight Holder parts come in 10, 20, 50, 100, 200, 500 and 1000 g versions to press the sample with a chosen load.

Hold samples under GelSight
Bench builderGelSight scanner

The 30 mm and 40 mm sample holders and a square benchtop holder position worn samples for GelSight capture, as the README describes.

2.1. Scenario: Build the bench and run a loaded sliding test

  1. Open Picture/Assembly.png to see the frame with two rails and the crossbar holding five sample holes.
  2. Print Rail, Rail_Holder, Rail_Ski, Pusher, Seperator, Holder Berring, nema17bracket_v2 and t8_nut from Print/Rail/.
  3. Cut the Base plate from Drawing/Rail/Base.dxf and assemble the rail with a NEMA 17 motor and T8 lead screw.
  4. Print the weight holder for the target load, for example Weight Holder 200g.stl, and place it on the sample.
  5. After each sliding distance, move the sample to the 30 mm or 40 mm holder and scan it with the GelSight.

Files readREADME.mdLICENSEPicture/Assembly.pngPicture/Rail/Rail_Ski.pngDrawing/Mold/20240430_16_Holes.svgDrawing/Rail/Rail.dxf

3. 3D view of the printed parts

The viewer below loads the repository’s own STL files, converted to a single GLB for the browser. Drag to orbit, scroll or pinch to zoom. Each family has its own colour and its own row: rail parts in blue, weight holders in orange, GelSight sample holders in green. The parts are laid flat side by side, not assembled; the assembly drawing further down shows how they fit together. The T8 lead-screw nut is left out because it is a stock part and its STL alone weighs 6.7 MB.

WearMachine printed parts from the repository's STL files: rail parts (blue), weight holders from 10 to 1000 g (orange) and GelSight sample holders (green)

The parts and their sizes, read from the STL bounding boxes (millimetres), with roles inferred from the drawings:

PartSizeWhat it does
Rail400 × 20 × 6Straight bar; the assembly drawing has one along each long side of the frame
Rail_Holder298.5 × 60 × 6C-shaped end piece with rounded tabs; two of them close the frame and hold the rail ends
Rail_Ski58 × 9.8 × 6Short notched slider
Pusher268.5 × 15 × 6Bar with a hook at each end that rides over the rails; the crossbar in the assembly is two of these
Seperator43 × 6 × 3.8Small spacer that sits in the pusher slots and splits the crossbar into sample pockets
Holder Berring30 × 25.5 × 25Bearing block
nema17bracket_v280 × 68 × 48Mount for a NEMA 17 stepper motor
Weight Holder 10g to 200g40.5 × 40.5 × 4Plates with a round recess for the weight; the five share the same outline
Weight Holder 500g50 × 50 × 4Wider plate for the 500 g load
Weight Holder 1000g60 × 60 × 9Thicker plate for the 1 kg load
30mm Sample Holder40 × 40 × 10Holds a 30 mm sample under the GelSight sensor
40mm Sample Holder50 × 50 × 10Same, for a 40 mm sample
Benchtop Holder Square128 × 60 × 20Square pocket with a curved lip at the open end

Read together with the WearSurfacesDatasets layout (material, sandpaper grit, load in grams, sliding distance in millimetres), the parts describe a reciprocating abrasion test: samples sit in the crossbar pockets, a weight holder sets the load on each one, and the crossbar is moved along the rails over a set distance, with the stepper bracket and lead-screw nut pointing to a motorised drive. Afterwards the sample is placed in a GelSight holder and scanned. The motion and load parts are in the repository; the motor, lead screw, sensor and electronics are not, and the README gives no assembly steps, so this reading comes from the part names, the drawings and the dataset rather than from written instructions.

4. Drawings

Picture/ holds a drawing sheet for each part, generated from the CAD model. These views are cropped from those sheets.

Isometric drawing of the assembled frame: two rails, a crossbar with five sample holes of increasing size, and rounded corner tabs
Picture/Assembly.png, isometric view: the two rails, the crossbar with five sample holes and the corner tabs. Drawn 20 March 2025 at 1:8.

Top view of the assembled frame with the crossbar and its five holes
Top view of the same assembly.

Isometric drawing of the square benchtop holder with its pocket and curved lip
Benchtop Holder Square: the pocket and the curved lip at the open end.

Isometric drawing of the 1000 g weight holder, a square plate with a round recess
Weight Holder 1000g: a 60 mm square plate with a round recess for the weight.

Isometric drawing of the bearing holder block
Holder Berring: the bearing block.

5. Getting started

There is nothing to run. Pick the folder that matches what you want to do:

  • open the STEP files in Raw/ with a CAD tool (FreeCAD, Fusion, SolidWorks…) to change dimensions;
  • slice the STL files in Print/ for 3D printing;
  • use the DXF files in Drawing/ for flat outlines or laser cutting, and the PNG sheets in Picture/ as visual references.
git clone https://github.com/ETSim/WearMachine
ls WearMachine/Print/Rail WearMachine/Print/Weight WearMachine/Print/Gelsight_Holder

6. Repository guide

  • Raw/ holds STEP solids for the GelSight holders, the rail parts and most weight holders.
  • Print/ holds STL meshes for printing, including the motor bracket and the T8 nut.
  • Drawing/ holds DXF outlines for the two round GelSight holders, the rail parts (including Base.dxf) and all weight holders, plus the mold SVG.
  • Picture/ holds PNG drawing sheets of individual parts and Assembly.png.
  • README.md gives the purpose and the list of required components.

7. Features

  • Complete set of printable fixtures for a rail-guided sliding test.
  • Seven weight holders from 10 g to 1000 g for repeatable normal loads.
  • Two round sample holders (30 mm and 40 mm) and a square benchtop holder for GelSight capture.
  • Editable STEP sources next to ready-to-print STL files.
  • Measured surfaces from this kind of test are published in WearSurfacesDatasets, whose loads range from 10 to 200 g.

8. Limits

  • The README says the repository provides detailed build instructions, but it contains no assembly steps, bill of materials or hardware list beyond the component names.
  • No firmware, wiring or control software is included for the actuators, load sensors or acquisition system the README lists.
  • Formats are uneven: Base exists only as DXF, Holder Berring and Weight Holder 10g have no STEP file, and the motor bracket and nut have no STEP or drawing.
  • The drawing sheets have empty title, material and tolerance fields.
  • The repository has a Python .gitignore but no code.

9. Sources

10. CI/CD pipeline

No CI/CD pipeline in the repository. The code is built and run by hand, as described above.

Generated from the source at commit beff25e.

11. Deployment diagram

Mermaid Deployment diagram
flowchart LR
  repo[("GitHub repository")]
  local["Local machine"]
  repo -->|"clone and run"| local

The repository has no Dockerfile, Compose file or hosting configuration, so the code runs on the machine that clones it.

12. External dependencies

The repository declares no external packages: it has no manifest such as pyproject.toml, requirements.txt, package.json or pom.xml.

13. Glossary

Repository

The versioned source files, configuration, and history of a project.

README

The repository’s entry document, usually covering its purpose and initial setup.

Dependency

A library, tool, or service that another component needs to build or run.

HTTP

A request-and-response protocol used by browsers and web services. A method, path, headers, and optional body describe a request.

Volume and bind mount

A volume is storage managed by the container platform; a bind mount exposes a chosen host path inside a container.

CLI

A text interface in which commands and arguments select operations. Exit codes let scripts detect success or failure.

Build

The steps that turn source files and dependencies into a runnable program or distributable artifact.

Mesh

A surface represented by vertices and connected elements, often triangles. Its geometry is distinct from its material or texture.

Firmware

Software running on a device or microcontroller to control its hardware and communication.

14. References

  1. ETSim. (2026, November 5). [Web page] github.com.
  2. ETSim. (2026, November 5). WearMachine. [Software repository] github.com.
  3. ETSim. (2026, November 5). README. [Source file or documentation] github.com.
  4. ETSim. (2026, November 5). Picture/Assembly.png. [Source file or documentation] github.com.
  5. ETSim. (2026, November 5). Raw/Rail/Rail.step. [Source file or documentation] github.com.
  6. ETSim. (2026, November 5). Print/Rail/nema17bracket_v2.stl. [Source file or documentation] github.com.
  7. ETSim. (2026, November 5). Drawing/Weight/Weight Holder 200g.dxf. [Source file or documentation] github.com.

Sources without a publication date show the date they were last checked, November 5, 2026. File links retain the inspected revision where available.