WIMTACH / Hackathon 2026

SNOW
ROBOT

An electric snow robot for all four seasons. Three days, AI doing the CAD, me directing every decision.

Garage dock in a snow scene with its door lowered into a ramp and the robot's chute and orange auger just visible inside.
RoleMechanical lead on a team of five
WhenSep 29 to Oct 1, 2026, Toronto
Output12 body versions, 3 docks, 2 animations
StatusConcept stage, not built

Five people, one brief. I owned the machine.

The client's snow robot runs on gas and rubber tracks. The brief was to make it autonomous and useful all year. We split the work by discipline, and I took the mechanical half: the body, how it moves, how it docks and how it is built.

Electric, not gas

Only an electric robot can charge itself, and real autonomy needs that. It is not cheaper upfront. It wins on running cost.

A fence of beacon stakes electrical team

UWB and RTK stakes at the corners draw an invisible wall that keeps working when snow or grass blinds the cameras.

Wheels on lifting pods

Tracks tear a lawn every time they turn. Wheels do not, and a pod that lifts 180 mm lets the robot climb out of a plow berm by itself.

One head, four seasons

The housing rotates 90 degrees and the rotor swaps: auger for snow, flail for grass, brush for leaves. One motor, one shaft.

I decided

  • Wheels over tracks.The mechanical direction, backed with traction and torque numbers.
  • The bar for the look.EcoFlow Blade and Altoz as the reference, and a no for every render that fell short.
  • A rotating head.Manual 90 degree turn with an index plunger and a damper, so a 20 to 30 kg head cannot drop on a hand.
  • Plastic mower blades.A paddle that breaks does not throw metal, and blades become a consumable.
  • Plug-in charging.A floating plug in the dock instead of wireless, so the robot reverses in and connects itself.
  • Never edit a version.Every iteration is a copy, so every earlier one stays comparable.

The AI executed

  • Parametric CAD.One script per version, dimensions at the top, exported as STL for rendering and STEP for SolidWorks.
  • Render scripts.Studio shots, photoreal snow scenes and animation, run on my own GPU.
  • Parallel variants.Four architectures built and rendered side by side in about half an hour.
  • The calculations.Traction, torque and energy, from the assumptions I fixed.

Electrical and software teammates supplied sensing and compute. I fitted their parts inside the machine.

AI did not replace the designer. It changed the job. Give direction, say what is good and what is not, repeat until it is right.

Fast CAD with AI, one loop at a time.

Five steps, repeated about a dozen times. The loop is fast enough that a bad idea costs minutes, not an afternoon.

Direction

I write what the machine must be, name the references and set the rules.

Me

Code

Claude Code writes one parametric script per version. Change a number, regenerate.

build123d

Build

One STL per material for rendering, and STEP so SolidWorks opens real solids.

STL + STEP

Render

About 30 seconds for a studio shot, about a minute for a photoreal scene.

Blender, RTX 3080

Critique

Side by side with the references. I list the 3 or 4 biggest gaps and send them back.

Me

Then back to the first step, on a new copy.

# robot.py, the top of the file. Units: mm.
WHEEL_D, WHEEL_W = 340, 130
BODY_HALF = 340      # wheel outer width + pod skin
AX = 290             # axle x, front +AX, rear -AX
LIFT_MAX = 180       # vertical pod travel
LIFT = {"snow": 70, "grass": 40, "rotor": 0}

This is why iteration is cheap. Changing the lift travel is one edit, and every render updates.

Version 5 of the robot in a photoreal snow scene, clearing a driveway lane and throwing snow from its chute.
The same pipeline also makes photoreal scenes: a snowy-field HDRI, about a minute per frame. The snow particles still read as balls, which I logged as open.

A week of work in three days.

My estimate for the same scope by hand, in SolidWorks and KeyShot, is about a week of full-time work. It took three days, and a good part of the render time ran while I was away from the keyboard. Below is what I can prove from file timestamps.

68min

From the first file in the project folder to the first rendered robot.

Sep 29, 18:46 to 19:54
30min

Four alternative architectures, each a full parametric model, coded and rendered.

Sep 30, 00:03 to 00:33
21min

Three dock concepts, 24 still renders, up to three passes each.

Sep 30, 12:53 to 13:14
870frames

Two animations rendered unattended: 420 of the dock exit and 450 of the connector.

Dock exit: about 17 s a frame, 1080p

Still renders saved per hour

126 stills across 46 hours, from Sep 29 18:00 to Oct 1 16:00. Flat stretches are sleep and the rest of life.

Table view
Hour startingStills

Source: modification times of the PNG files in the project's renders folder, animation frames excluded. Scripts and renders were saved as they were made, so the bursts are real.

What the method did not save is the judging. Twelve versions exist because I kept saying no. What it removed was the wait between an opinion and a picture of that opinion.

Twelve versions, and why each one moved on.

Real renders in the order they were made, with the time each file was saved. Gold means the idea survived. Gray means I said no. The final Monolith render and versions 3 and 4 are blurred for now, under NDA.

V1

Rejected

Looked like a toy. Box body, stick legs, no fillets. It lasted twelve minutes.

V2

Rejected

Springs, a light bar and a graphite body. Better parts, same toy: still boxy and low-poly.

Blurred for now, under NDA

V3

Direction kept

The look arrives: flat planes, tight fillets, a two-tone split. Exposed legs and springs still read as a toy car.

Blurred for now, under NDA

V4

Direction kept

Suspension hidden in arm fairings, Altoz-style chute. My verdict: getting very close. Ten gaps still on the list.

V5

Kept as base

Gap list applied: fenders that move with the legs, 60 mm plan radii, a face mask with two cameras, orange under 10%.

00:03 to 00:33Four architectures, coded and rendered in about half an hour. Same base and head, four answers to one question: how does it get over a berm?

Rover 6

Discarded

A passive rocker-bogie climbs about 300 mm with no control. Six hub motors, 30 to 40% more drivetrain cost, and it scrubs lawn when it turns.

Articulated

Discarded

Bends in the middle, so it does not tear lawn. But the bellows joint has to survive salt, and the turning circle is 3.4 m.

Blade-X

Discarded

Closest to the EcoFlow reference, with the head on polished links. Those links sit exposed to salt and ice, and the robot grows to 1.68 m.

Monolith

Chosen

One block, wheels tucked into pods, 180 mm vertical lift. Weakest on sealing and cost, strongest as one object. The team picked it.

Monolith v2

Kept

Real components at true size, plus a rear spray boom. Open issues I logged: nozzle overspray, an antenna shadowing a sensor, no front bumper.

Blurred for now, under NDA

Monolith v3

Kept

Head rotation with a spring plunger and rotary damper, plus tool-free blade rods. Rejected inside it: a bolt per blade (needs tools) and snap-in blades (retention risk).

Monolith v4

Final

Final pass: the internals integrated and checked inside the machine. Not shown.

A robot that lives outside needs a home. Three concepts.

All three sit 250 to 300 mm above the ground with a ramp that lands above the snow, so the robot never has to dig itself out.

Garage

280 mm floor, 12.8 degree ramp

The drawbridge door becomes the ramp. The cheapest of the three to build: one winch, no lids, no compressor. Risks are icing on the door seal and the door actuator load. This is the one that went into the animation.

Hangar

250 mm floor, 14.3 degree ramp

A clamshell in the style of a DJI Dock 2. Lowest floor, steepest ramp. Risks: cost, 110 kg of snow load per lid, and wind.

Capsule

300 mm floor, 13 degree ramp, 3.4 m footprint

An octagon tunnel with a telescoping ramp and an air knife. The most striking and the most expensive. Risk: ice in the ramp cassette.

Finding that changed the design

The snow head strikes any ramp steeper than about 13 to 14 degrees. Either the head lifts into its transport pose before docking, or the ramp stays at 13 degrees or less.

My own cost table is blunt. At production cost multiples, all three docks cost more than a complete Yarbo robot. A consumer would not pay that, so the next step is a lean version without the extras.

Dock exit. 420 frames at 1080p, rendered unattended. The door becomes the ramp, so the robot always rolls out above the snow.

The first charging animation explained nothing.

Only red and orange springs glowing are visible. Nothing visibly connects to anything. My feedback after watching it

What was wrong

  • The bezel and float plate sat between the camera and the pins.
  • The orange springs were the most saturated thing in frame, so they read as the subject.
  • The socket was seen at a grazing angle.
  • The LED change was too subtle.

What changed

  • A true side profile, perpendicular to the mating axis.
  • A half-section cut through socket, bezel and plug, so pins slide into sleeves in view.
  • Steel gray springs, a slower last 30 mm, a one second hold on the mated state.
  • A larger LED ring that turns green only when the pilot pin confirms.
Before, rejected Six frames of the first connector animation from a three-quarter angle: orange springs and plates glow, but the pins are hidden behind the bezel.
Six frames, grazing angle. The springs are the loudest thing and the pins are hidden.
After, shipped Four frames of the fixed animation in section view: a plug approaches a spring-mounted socket, enters it, and a green light shows the connection is confirmed.
Four frames, section view. The plug enters the floating socket and the ring turns green.
  1. Shutter opensA cover keeps snow and salt out of the robot's socket.
  2. Plug self-centersA floating plate on four springs absorbs 10 to 15 mm of misalignment.
  3. Pilot confirmsA shorter third pin makes contact last.
  4. Power goes liveThe charger energizes only after the pilot confirms.
The fixed animation. 450 frames: the robot reverses in, the shutters open, the plug self-centers in section view, and the ring turns green once the pilot pin confirms.

The numbers that drove the design.

Estimates are marked as estimates. The one that mattered most came out of a short calculation.

Size, L x W x H
1,492 x 846 x 836mm
Dry mass (est.)
~105kg
Pod lift travel
180mm
Drive force. Assumes 110 kg, a 10% slope, 0.5 m/s and a 0.17 m wheel radius.
Rolling resistance in snow (Crr 0.15)162 N
Auger intake (estimate)150 N
10% slope108 N
Total drive force~420 N
Traction, bare tires on packed snow (μ 0.25)270 N, not enough
Traction with chains (μ 0.45)486 N, +16%
Torque per wheel~18 N·m at ~28 rpm

Try it

Change the mass and the slope. Drive force, torque and traction update.

Total drive force420 N
Torque per wheel18 N·m
Bare tires hold270 N
With chains485 N

The decision the numbers drive. The robot is traction-limited, not motor-limited. So it clears early, when snow is thin, it runs chains in winter, and it keeps its weight over the wheels. The blower also takes about 80% of the energy, so it sets the battery size, not the wheels.

What is not proven yet.

This is a concept, and I would rather say where it is weak than have someone find it.

Built with Claude Code (parametric CAD and render scripts), build123d, Blender Cycles and Python. Every design call on this page is mine.