Spring Classic: April
Tausend Teiche: 300k / June
Sleepy Roads: 275km / August
Spring Classic: April
Tausend Teiche: 300k / June
Sleepy Roads: 275km / August
https://nightrides.cc/munchiesmaps
Who this project is for:

60×13
A bike that is more than a bicycle. Die Machine – half singlespeed, half track bike, half BMX, and half TT missile. A Frankenbike, born from an obsession with massive gearing and the search for a training device that knows no mercy.
60 teeth in the front, 13 in the back, built onto a aluminium frame as stiff as an engine block. Whoever pedals here is not shifting gears – whoever pedals here fights physics.
The numbers are absurd.
With 40×13, the limit was reached at 40 km/h – at 120 rpm cadence. With 60×13, the dimensions shift.
Every crank rotation moves the bike almost ten meters. At 90 rpm, speed climbs past 50 km/h. The difference is not linear, it is brutal: a leap that turns cycling into a form of mechanical weightlifting.
The calculation is simple, the outcome is not:
| Gear | Development per rev | 90 rpm | 120 rpm |
|---|---|---|---|
| 40×13 | ~6.48 m | 35 km/h | 47 km/h |
| 60×13 | ~9.72 m | 52 km/h | 69 km/h |
Each added tooth is not just speed, it’s another demand for raw power.
Power is not calculated in the head, but in resistance. With a system weight of 95 kg and an upright MTB position, air drag grows exponentially. On 40×13, about 400 watts were enough to hold 40 km/h. On 60×13 at 50 km/h, the demand climbs toward 700 watts. At 60 km/h it scrapes 1,100 watts, and at 70 km/h it breaks 1,600 – numbers most track sprinters only see in split seconds.
Climbing tells its own story. On a 14% slope, Die Machine asks for more than lungs. The formula is:
F=m⋅g⋅sin(θ)F = m \cdot g \cdot \sin(\theta)
95 kg, 9.81 m/s², 14% → about 130 N on the pedal. With a 170 mm crank arm, that means 22 Nm torque, multiplied by the gear ratio. The outcome: each stroke equals over 130 kg pressing down through a single leg. Not cycling, but deadlifting in motion.

The ride feel changes radically. 40×13 could be pedaled “round,” in the classical sense. 60×13 dictates a different movement: stamping, pressing, pistons up and down. Cadence becomes secondary. 30, 40, maybe 60 rpm – no elegance, just raw mechanics. Every stroke a rep, every kilometer a set.
The speed table reads more like a lab log than a training plan:
| Cadence | Speed (60×13) |
|---|---|
| 30 rpm | 17 km/h |
| 60 rpm | 35 km/h |
| 90 rpm | 52 km/h |
| 120 rpm | 69 km/h |
Each number is a challenge, each line another opponent.
Die Machine is not an efficiency project. It is too heavy, too unforgiving, too absurdly geared to make rational sense. And yet, that is its purpose: it shifts training logic. It does not just build aerobic capacity or lactate tolerance – it builds something rarer: uncompromising muscular endurance.
In preparation for the Tour de Bière, Die Machine finds its mission. Jičín means 70 kilometers with 1,600 meters of climbing, ramps up to 14 percent, ridden on coaster-brake bikes with no gears. There, where gearing gives no mercy, tactics do not count. What counts is the willingness to push a slope with nothing but raw force. Die Machine simulates exactly that moment – on the flats, in daily life, without mountains.
The effects do not show up in watt numbers, but in the body. Within weeks, the reserves normally hidden in fast cadence vanish, replaced by another kind of stability. The sense of carrying load longer, the upper body locked, the legs working like pistons. Heart rate and breathing follow, but it is the muscle that does the real labor. Where others fade, the pressure remains.
A training plan with Die Machine looks nothing like one with a road bike. No interval charts, no zones. Instead: fixed distances, fixed gears, defined ramps. Two to three sessions a week of 60 to 90 minutes, cadence rarely above 50, but constant heavy load. Longer rides on a normal bike keep agility and economy alive. Die Machine is not a daily tool – it is a blade, used only when the cut is needed.
But Die Machine is not confined to the lab. It rides daily to work: two times a handful of kilometers along the path. A section that could be routine becomes training. The commute transforms into two sets of strength endurance, morning and evening. No warm-up, no cool-down – resistance is there from the first pedal stroke.
Die Machine is layered. “Mach” points to the Mach number: to be determined – because speed here is never fixed, only fought for. Or, as Friedrich Liechtenstein and Purple Disco Machine put it: “Sie ist die Maschine, die niemals müde wird”.
That is the true parallel – a bike that does not ask for efficiency, but for the willingness to confront physics over and over again.
Haiku
Steel teeth bite forward,
railway path at dawn in mist,
weight becomes breathing.
https://www.apidura.com/journal/chris-herberts-transcontinental-race-kit-list
Chris Herbert finished TCR No.7 (2019) in 12 days 17 hours 48 minutes, riding from Burgas (Bulgaria) to Brest (France).
He aims for extreme minimalism. His pack was built around carrying only what he truly needed, with almost nothing extra (except emergency inner tubes, patches, chain link, which he didn’t use).
Here are the main choices and the reasoning (and what to learn from them):
Chris used three bags/packs:
Here are the deeper insights from what Chris says — lessons applicable to anyone doing ultra-bikepacking / long self-supported races.
| Decision / Feature | What Chris Noted | What to Take Away |
|---|---|---|
| Battery / Electronics | He used a 5,000 mAh battery because he had a dynamo for lighting and charging. But found that on hilly or slow days it was often not enough: his phone drained fast, the battery took a whole riding day to recharge. Also, his headphones died on day one, so he used the phone speaker, which drained phone battery faster. | If relying on limited charging options (dynamo or intermittent outlets), be very conservative with electronics. Carry backups for high-drain items. Separate media devices (e.g. MP3 player) can help offload load from phone. Bigger or faster rechargeable battery or strategy for charging needs to be realistic. |
| Dual-Use / Multipurpose Items | Many items serve multiple functions: nitrile gloves are good for cleaning wounds but also keeping hands clean while maintenance; layering clothing serves both insulation and wind/rain protection when combined; waterproof or outer layers supplement base layers rather than carrying many base layers. | Tactical packing: each item should pull double duty where possible. Reduce redundancy but maintain safety. Think “what else could this do in emergency”? That gives flexibility and weight saving. |
| Sleep / Rest Quality | Sleep is critical. Though he rode fast, he stopped in hotels most nights. He used a heat-reflective bivvy + light sleeping bag + earplugs + used his neck-buff as an eye mask. Even in cheap hotel rooms or petrol station stops, disturbances are real. He found that getting to sleep quickly & staying asleep has outsize importance given sleep will be limited. | The quality of rest can be more important than quantity. Don’t skimp on layers or accessories (earplugs, eye mask) that help isolate from disruptions. Even a small comfort that helps you sleep better can repay many times in performance. |
| Spares & Durability | He didn’t carry massive spare-kits. Focused on what was likely to break and what he could fix roadside. Example: carried a spare cleat because previous experience showed cleats wear out and can end up forcing long sections unclipped otherwise. Also chose more durable tires instead of ultralight ones, sacrificing a bit of speed for reduced risk of punctures or flats. | Know your gear’s weak points from past experience and cover those. Choose components for durability where breakdowns cost more than slight performance loss. Don’t overcarry spares just in case; carry the spares that matter. |
https://www.apidura.com/journal/how-to-pack-for-the-transcontinental-race
This Apidura piece focuses not on what to pack, but how to approach packing strategy for the Transcontinental Race (TCR). The article emphasizes that the TCR is unique: long, unsupported, across highly varied climates, terrains, and road conditions. The wrong packing approach can cost huge amounts of time and energy, even if your gear list is good.
| Category | Recommended Packing Approach | Purpose / Lesson Learned |
|---|---|---|
| Essentials | Food, wallet, phone, batteries in top tube / cockpit | Quick access avoids time loss and hesitation |
| Weather Protection | Rain jacket, gloves, warmers near top of frame/saddle bag | Accessibility means you’ll actually use them |
| Sleep System | Bivvy, bag, liner deep in saddle bag | Used rarely, so stored further away |
| Tools & Spares | Multitool, tubes, chain links low in frame/saddle pack | Not needed daily, but must be carried |
| Clothing Layers | Mid-layers, socks, buffs in frame/saddle | Accessible with short stop, for climate changes |
| Topic | Core Idea | Application / Takeaway |
|---|---|---|
| Weight vs Comfort vs Risk | Every item is a trade-off | Decide your threshold; less weight = more risk |
| Accessibility | Quick access increases actual use | Keep rain gear, food, power packs up front |
| Balance | Avoid front overload; spread weight | Bike handles better, less fatigue |
| Personalization | No “perfect” universal setup | Gear layout reflects your own race strategy |
| Testing | Ride long days with full setup before race | Save stress and time when racing |
| Adaptability | Conditions vary massively along route | Pack so layers can be swapped quickly |
Lesson: Reliability and proven comfort win over marginal gains. If something has passed multiple long-distance “stress tests,” keep it.
Lesson: Pack minimal clothing — one set each. Comfort trumps variety. Test in real race climates, because what works one year may feel wrong in heat/cold extremes.
Lesson: Don’t over-prepare for rare scenarios (full fenders) if weight/cost to handling is high. Small, lightweight solutions suffice.
| Category | Item(s) | Notes / Lesson |
|---|---|---|
| Frame | No. 22 Drifter | Proven, reliable |
| Groupset | SRAM Red eTap AXS | Worked flawlessly |
| Power Meter | Quarq | Critical pacing tool, reliable |
| Brakes | Hydraulic discs 160/140 | Powerful, no issues |
| Wheels | DT Swiss ERC 1400 + SON Dynamo | Aero + dynamo combo worked perfectly |
| Tires | Continental GP5000 | Zero flats, highly reliable |
| Cockpit | Fizik + Profile Design aerobars | Familiar, stable, effective |
| Saddle | Selle San Marco Open Supercomfort | Personal, worked well |
| Pedals | Exustar Ti-Carbon | Very light, problem-free |
| Helmet | Kask Protone | Comfortable, functional |
| Glasses | Oakley EVZero Range (photochromic) | Adapt to light conditions |
| Base Layer | Rapha Merino-Mesh | Previously great, less ideal in heat |
| Jersey | Assos Mille | One piece carried, no frills |
| Bib Shorts | Assos | Reliable, still not perfect comfort |
| Accessories | Ass-Saver integrated in seatpack | Simple, effective |
| Mudguards | None | Too heavy, unnecessary for summer |
| Theme | Torsten’s Approach | Takeaway for Future Races |
|---|---|---|
| Proven Gear | Stick with what worked in previous years | Reliability over novelty |
| Minimal Clothing | One set only | Saves space, forces reliance on washing & drying |
| Aero vs Utility | Chose aero wheel with dynamo | Balance style, function, and need |
| Comfort vs Weight | Skipped mudguards, integrated Ass-Saver | Cut unnecessary extras |
| Test in Context | Base layer fine in some years, less in hot conditions | Always retest gear in race-like environments |
| Incremental Refinement | Iterative adjustment of kit each year | Learn from races, not theory |
| Category | Items / Choices | Reflection / Lesson |
|---|---|---|
| Bike | Aero endurance road bike, disc brakes | Reliability and comfort balance |
| Wheels/Tires | Dynamo hub + durable tires | Sacrificed lightness for safety |
| Bags | Frame, saddle, handlebar | Accessibility critical, overpacked some |
| Clothing | 1 bib + jersey, layers, rain jacket, down jacket | Minimal but effective; down jacket worth it |
| Sleep System | Emergency bivvy + light bag | Not comfy, but covered all scenarios |
| Electronics | GPS, phone, dynamo, power bank | Redundancy needed, test strategy in advance |
| Tools/Spares | Multitool, chain link, tubes, pump | Small insurance, weight justified |
| Theme | Observation | Takeaway |
|---|---|---|
| Minimalism | Overpacked at first, learned to cut next time | Confidence reduces gear creep |
| RAAM vs TCR | No support crew, mindset shift required | Unsupported racing is a different discipline |
| Accessibility | Important for rain gear/food | Pack by usage frequency |
| Sleep | Hotels when possible, bivvy otherwise | Must be prepared for worst-case nights |
| Power Strategy | Dynamo + battery balance | Test in real weather, not just theory |
| Experience | One race = huge learning curve | Each TCR iteration improves kit decisions |
https://www.instagram.com/p/DOIZZqXCOs-
| Category | Items / Setup | Lesson / Reflection |
|---|---|---|
| Bike | Specialized Aethos S-Works, Roval wheels, 32mm tubeless | Light + comfort + reliability, zero punctures |
| Groupset | SRAM Force 46/33 – 10/36 | Wide range gearing essential for mountains |
| Saddle | S-Works Power Mirror 155mm | Comfort-specific choice, no compromise |
| Cockpit | Profile Design aerobars | Aero comfort, compact setup |
| Lights | Supernova dynamo system + SON hub + backups | Dynamo backbone, but redundancy is vital |
| Bags | Evoc prototypes + snack bag, musette | Modular, clean cockpit, easy food access |
| Clothing | 2 bibs, 1 jersey, weather layers, snood | Layering > multiples, hygiene = 2 bibs |
| Sleep System | Old Sea to Summit bag, ultralight mat, groundsheet | Minimalist but proven, functional in all weather |
| Tools & Spares | Pump, Dynaplug, 2 tubes, hanger, cleat, screws | Focus on known failure points, not excess spares |
| First Aid | Blanket, disinfectants, bandage, painkillers | Small kit, just enough for stabilization |
| Electronics | Coros + Wahoo, 2x 10k power banks, spare SRAM batts | Double redundancy in critical systems |
| Other | Toothbrush, sunscreen, chamois cream, glasses, docs | Morale items matter |
| Theme | Rider’s Approach | Takeaway |
|---|---|---|
| No Compromises | Won’t carry gear that “doesn’t work” | Test gear in advance, cut what’s unproven |
| Redundancy | Backup lights, head unit, power banks, cleats | Failure-proofing critical items |
| Minimalism | Only 2 bibs, 1 jersey, small sleep kit | Less volume, more focus on essentials |
| Proven Gear | Old sleeping bag, trusted saddle | Confidence in durability > chasing new tech |
| Modularity | Multiple small bags + musette | Easy to reorganize, not one big compartment |
| Sponsorship Bias | High-end gear (Specialized, Rapha, Supernova) | But always evaluated by function, not logo |
https://www.cyclist.co.uk/in-depth/transcontinental-race-kit-list
| Category | Setup / Items | Reflection / Lesson |
|---|---|---|
| Bike | Carbon endurance road bike, aerobars, dynamo | All-round adaptable, balanced gearing |
| Bags | Frame, saddle, bar, top tube | Trimmed to essentials, focus on accessibility |
| Clothing | 1 bib, 1 jersey, jacket, warmers, base layer | Layered flexibility, no duplicates |
| Sleep System | Bivvy + light sleeping bag | Backup to hotels, ensured safe rest |
| Electronics | Dynamo + lights, GPS, phone, power bank | Redundancy for safety and navigation |
| Tools & Spares | Multitool, pump, tubes, hanger, quick links | Covered critical failures, no excess |
| Theme | Jaimi’s Approach | Takeaway |
|---|---|---|
| Minimalism | Avoided overpacking | Cutting gear reduces fatigue on climbs |
| Comfort vs. Risk | Chose one good set of clothing layers | Reliability beats having spares |
| Sleep | Hotels preferred, bivvy as fallback | Always have an emergency rest option |
| Efficiency | Food & layers easily accessible | Fewer stops, more consistent riding |
| Redundancy | Backups for lights and navigation | Single-point failures avoided |
https://www.cyclist.co.uk/in-depth/transcontinental-race-kit-list
| Category | Setup / Items | Reflection / Lesson |
|---|---|---|
| Bike | Carbon endurance frame, aerobars, dynamo | Comfort-focused, reliable |
| Bags | Saddle, frame, handlebar, top tube | Slightly more volume, allowed preparedness |
| Clothing | Multiple bibs + jerseys, warmers, rain gear | Comfort & hygiene prioritized over weight |
| Sleep System | Bivvy + light sleeping bag | Outdoor sleep anticipated, not emergency only |
| Electronics | Dynamo + lights, GPS, phone, power bank | Standard redundancy, proven system |
| Tools & Spares | Multitool, tubes, cleats, hanger, chain links | Comprehensive coverage of possible failures |
| Theme | Jamie’s Approach | Takeaway |
|---|---|---|
| Preparedness | Carried more spares than minimalists | Peace of mind > weight saving |
| Hygiene/Comfort | Rotating clothing sets | Clean kit improves morale and body health |
| Sleep Philosophy | Planned to sleep outside regularly | Invest in a sleep system, not just a bivvy |
| Risk Management | Anticipated more scenarios (cleats, hangers, etc.) | Broader spare coverage can prevent DNF |
| Efficiency | Slightly slower climbing weight, but steady pace | Consistency over marginal gains |
https://dotwatcher.cc/feature/bikes-of-transcontinental-no10
Looking across dozens of riders’ setups from TCR No.10, some strong themes emerge:
Lesson: Comfort geometry + low gears are more decisive than marginal aero or weight differences.
Lesson: Tubeless reliability is now mainstream. Dynamo hubs are no longer optional, but a baseline.
Lesson: Access and aero matter as much as volume. Integrated bag systems are becoming the standard.
Lesson: The new baseline is 2 bibs (for hygiene) + 1 full weather system.
Lesson: Sleep kit reflects race style: hotel-first vs. bivvy-first. Both are viable.
Lesson: Redundancy on mission-critical devices (navigation, lighting, shifting) is seen as worth the weight.
Lesson: Cover likely failures, not every scenario. Confidence comes from knowing your gear’s weak points.
Some nice trails, oh my. Long ones:
https://gravgrav.cc/de/route/lynx-trail-bikepacking
221km | Singletrail | Slovenia
https://gravgrav.cc/en/article/wossa-bikepacking-science
567km | Road | Austria/Germany
https://gravgrav.cc/de/route/postalm-gravel-bikepacking-tour
113km | Road/Grvl | Austria
608km | Road | aut/ger/slov/ita
SVG Downloads:
https://narukawa-lab.jp/archives/dymaxion-map/
D3-Projection Instruction
https://observablehq.com/@fil/d3-projections
https://observablehq.com/@d3/fullers-airocean
D3JS Azimuthal
https://d3js.org/d3-geo/azimuthal
D3geo Projections
https://d3js.org/d3-geo/projection
D3 Projections Demo Page
https://observablehq.com/@fil/d3-projections
Phillippe Rivières Airocean implementation:
https://observablehq.com/@fil/airocean-projection
https://github.com/d3/d3-geo-polygon/blob/main/src/airocean.js
/*
* Buckminster Fuller’s AirOcean arrangement of the icosahedron
*
* Implemented for D3.js by Jason Davies (2013),
* Enrico Spinielli (2017) and Philippe Rivière (2017, 2018)
*
*/
import { atan, degrees } from "./math.js";
import polyhedral from "./polyhedral/index.js";
import { default as grayFullerRaw } from "./grayfuller.js";
import {
geoCentroid as centroid,
geoContains as contains,
geoGnomonic as gnomonic,
geoProjection as projection
} from "d3-geo";
import { range } from "d3-array";
function airoceanRaw(faceProjection) {
const theta = atan(0.5) * degrees;
// construction inspired by
// https://en.wikipedia.org/wiki/Regular_icosahedron#Spherical_coordinates
const vertices = [[0, 90], [0, -90]].concat(
range(10).map((i) => [(i * 36 + 180) % 360 - 180, i & 1 ? theta : -theta])
);
// icosahedron
const polyhedron = [
[0, 3, 11],
[0, 5, 3],
[0, 7, 5],
[0, 9, 7],
[0, 11, 9], // North
[2, 11, 3],
[3, 4, 2],
[4, 3, 5],
[5, 6, 4],
[6, 5, 7],
[7, 8, 6],
[8, 7, 9],
[9, 10, 8],
[10, 9, 11],
[11, 2, 10], // Equator
[1, 2, 4],
[1, 4, 6],
[1, 6, 8],
[1, 8, 10],
[1, 10, 2] // South
].map((face) => face.map((i) => vertices[i]));
// add centroid
polyhedron.forEach((face) => (face.centroid = centroid({ type: "MultiPoint", coordinates: face })));
// split the relevant faces:
// * face[15] in the centroid: this will become face[15], face[20] and face[21]
// * face[14] in the middle of the side: this will become face[14] and face[22]
(function() {
let face, tmp, mid, centroid;
// Split face[15] in 3 faces at centroid.
face = polyhedron[15];
centroid = face.centroid;
tmp = face.slice();
face[0] = centroid; // (new) face[15]
face = [tmp[0], centroid, tmp[2]];
face.centroid = centroid;
polyhedron.push(face); // face[20]
face = [tmp[0], tmp[1], centroid];
face.centroid = centroid;
polyhedron.push(face); // face[21]
// Split face 14 at the edge.
face = polyhedron[14];
centroid = face.centroid;
tmp = face.slice();
// compute planar midpoint
const proj = gnomonic()
.scale(1)
.translate([0, 0])
.rotate([-centroid[0], -centroid[1]]);
const a = proj(face[1]),
b = proj(face[2]);
mid = proj.invert([(a[0] + b[0]) / 2, (a[1] + b[1]) / 2]);
face[1] = mid; // (new) face[14]
// build the new half face
face = [tmp[0], tmp[1], mid];
face.centroid = centroid; // use original face[14] centroid
polyhedron.push(face); // face[22]
// cut face 19 to connect to 22
face = polyhedron[19];
centroid = face.centroid;
tmp = face.slice();
face[1] = mid;
// build the new half face
face = [mid, tmp[0], tmp[1]];
face.centroid = centroid;
polyhedron.push(face); // face[23]
})();
const airocean = function(faceProjection) {
faceProjection =
faceProjection ||
// for half-triangles this is definitely not centroid({type: "MultiPoint", coordinates: face});
((face) => gnomonic()
.scale(1)
.translate([0, 0])
.rotate([-face.centroid[0], -face.centroid[1]]));
const faces = polyhedron.map((face, i) => {
const polygon = face.slice();
polygon.push(polygon[0]);
return {
face: face,
site: face.centroid,
id: i,
contains: function(lambda, phi) {
return contains({ type: "Polygon", coordinates: [polygon] }, [
lambda * degrees,
phi * degrees
]);
},
project: faceProjection(face)
};
});
// Connect each face to a parent face.
const parents = [
// N
-1, // 0
0, // 1
1, // 2
11, // 3
13, // 4
// Eq
6, // 5
7, // 6
1, // 7
7, // 8
8, // 9
9, // 10
10, // 11
11, // 12
12, // 13
13, // 14
// S
6, // 15
8, // 16
10, // 17
17, // 18
21, // 19
16, // 20
15, // 21
19, // 22
19 // 23
];
parents.forEach((d, i) => {
const node = faces[d];
node && (node.children || (node.children = [])).push(faces[i]);
});
function face(lambda, phi) {
for (let i = 0; i < faces.length; ++i) {
if (faces[i].contains(lambda, phi)) return faces[i];
}
}
// Polyhedral projection
const proj = polyhedral(
faces[0], // the root face
face // a function that returns a face given coords
);
proj.faces = faces;
return proj;
};
return airocean(faceProjection);
}
export default function () {
const p = airoceanRaw((face) => {
const c = face.centroid;
face.direction =
Math.abs(c[1] - 52.62) < 1 || Math.abs(c[1] + 10.81) < 1 ? 0 : 60;
return projection(grayFullerRaw())
.scale(1)
.translate([0, 0])
.rotate([-c[0], -c[1], face.direction || 0]);
});
return p
.rotate([-83.65929, 25.44458, -87.45184])
.angle(-60)
.scale(45.4631)
.center([126, 0]);
}
summary:
👉 So the choice isn’t about drag anymore – it’s about comfort, handling, and volume needs.