424 comments

[ 3.2 ms ] story [ 436 ms ] thread
There's something magical about mechanical watches. Maybe it's just knowing that you have this perpetually winding machine on your hand (in the case of "automatic" mechanical watches).

Also knowing that the thing will last forever, take care of it and it will probably outlive you. Can't say that about an Apple Watch.

If you want a good mechanical watch that won't break the bank I suggest picking up a Seiko SKX (though prices have been going up), a Vostok Amphibia (might be hard with the ukraine conflict) or a Timex Marlin.

An SKX isn't gonna outlive you and once it fails they'll just replace the entire movement anyway.

Mechanical watches are still indeed cool though. :)

As an owner of an SKX who doesn’t know much about watch longevity, how long can I expect it to last? Are there other automatics that will outlast a person’s life?

It still blows my mind that you can take the SKX scuba diving, especially when you factor in the price.

This may sound cynical but as I get older and see the world becoming more and more digital and connected, I find myself appreciating analog, mechanical things like watches and old cars more and more.

If you are going to take your SKX diving, you probably want to have a watchmaker pressure test it once in a while and make repairs as needed. The seals dry out and water will get in.
I think maintenance requirements are overstated. I wore a relatively cheap (~£120) mechanical watch continuously for about 8 years, and never had a single problem with it. I only stopped wearing it about 2 years ago when I finally bought a smartwatch. It still works fine, I just don't wear it except on special occasions.

If your watch is a sizable investment then maybe you care about maintenance more, but otherwise I wouldn't worry that it's going to stop working in short order.

Mechanical watches can last a lifetime (or more) if properly maintained and periodically serviced, just like old cars.

People all over the world pass down their Rolexes and Omegas, still ticking, to their children and even grandchildren. Patek Philippe is well known for their slogan, "You never actually own a Patek Philippe. You merely look after it for the next generation," showing confidence in the longevity of their watches.

Of course those are very expensive brands, but I think part of what makes expensive watches last longer is that their owners take good care of them. Few people bother to get their SKX checked up on a regular schedule, on the other hand, because they're so cheap and easily replaceable by first-world standards.

They also cost a ton to service. It's nice if the sentiment of carrying something through the years appeals to you, but the thing that keeps me away from mechanical watches is the service costs compared to the odd battery replacement on a quartz.
I have a 7s26A movement out of a late 90s SKX which was unserviceable, and another 7s26C became unusable after 4-5 months of use.

I also have a replacement 7s26C which worked flawlessly [-5,+5] s/d out of the box and a year so far, and another watch with NH35 which still holds [-5,+5] s/d after seven years of daily use.

There are stories of SKX:s which hold good time after 20 years.

There are much cheaper watches than SKX (at their current prices) that will withstand the depth, see "Beyond on the press" pressure chamber tests, for example https://www.youtube.com/watch?v=Ti-GdfGbj4Y

My father's Seiko from the late 70s still keeps time at around 30 seconds per day. It has never been serviced so I am sure it is bone dry and really should not be run. I regularly wear a 2015 Seiko that used to be 8 seconds per day fast but has fallen to 5 seconds per day slow so it is probably time to service it. My two newest watches are from 2017 and 2021 and they are consistent since break in. So given my limited number of data points, I would say 5-7 years between service but if you just want to wear it until it dies, 10+ years is probably reasonable.

On a side note, I have read about 40 year old Seikos being worn daily without service but that sure feels outside of the norm.

> Are there other automatics that will outlast a person’s life?

Very unlikely. You do hear the occasional story of a mechanical watch running fine for several decades without requiring any servicing, but there's a lot of survivorship bias at play there. It's extremely unlikely to go ~8 decades without needing servicing. Keep in mind there are lubricants at various places in the movement that are essential to proper operation that evaporate/denature over time.

Agree with you so much. It still feels absolutely magical wearing one. The SKX007 was my first automatic watch and I wore it daily for 10 years. Incredible thing.
I actually have an SKX013 which I like wayyy more than the 007. Basically the same watch but that 39MM size is perfect.
I wear a 39mm watch as my daily now. I agree - fantastic size!
Still love my SKX007J though I don't wear it as much once I got in the habit of step counting, maybe I should start wearing two watches...
> Maybe it's just knowing that you have this perpetually winding machine on your hand

It's a mechanical device which stores energy in a spring barrel, and consumes it through a set of gears to produce constant velocity motion.

A mechanical watch needs regular service which is usually just cleaning, lubricating, replacing seals and springs. Eventually it will need replacement parts and that is probably the end of life for the watch.

There are a some brands that will service every watch they've ever made, fabricating new parts as needed. Few of us can afford one of those.

A solar quartz fits this more. Those don't even require movement or correcting as often as with mechanical watches. Just light
The solar Casio I bought as a teenager stopped holding a usable charge after a few winters. Maybe it was just bad luck. I'll see if the new Citizen Eco-Drive in my collection lives up to the 40 years claim I saw elsewhere. :)
The first Eco-Drives came out in the mid 90s. If you look around you'll find quite a few reports from people who bought the very first ones, and which are still ticking away virtually maintenance-free for 25+ years and counting. My own, a dive watch with around 10 years, which has actually been used for its stated purpose, is also still problem-free and with zero maintenance so far.

The only thing you need to be mindful of with Eco-Drives is that you can't let it lose all charge. It can keep functioning in complete darkness for around 6 months, according to the specs, but if you do this enough times the battery will lose the ability to hold charge and will need to be replaced, and there are plenty of reports to this effect. If you're not planning on wearing it, just leave it somewhere that it can get natural light, instead of a drawer, and you should be good.

While mechanical watches are undoubtedly cool and elegant, they're not perfect timekeepers, and when they do need maintenance it's not something trivial which you can perform yourself. For my day-to-day watch I'll take an accurate quartz movement with virtually zero maintenance any day. In other words an Eco-Drive, or something similar.

My experience with a very high-end solar Casio was akin to yours, with the battery needing replacing after about five years. Perhaps gambiting is correct about the common nature of the battery, but multiple watch repair shops (both in a department store, and the "old man in a tiny room in an office building" type) refused to deal with it. I always had to mail it to an authorized Casio repair outlet.

I do not know whether this also applies to Eco-Drive.

(comment deleted)
The parts last quite some time if properly maintained. If you're worried about replacement parts availability, stick with the most popular movements such as the ETA2824/SW200 series or Seiko's NH35 series.
A lot of watch fans are happy when they see a watch brand use an in-house movement. I’m exactly the opposite for the reason you say - the popular movements are going to be easily and inexpensively serviced for much longer.

That said, a lot of in-house movements are little more than tweaks and high end finishing applied to existing commodity movements.

Exactly. The flip side of the recent proliferation of "barely in-house" movements is that there's actually even less diversity of movements in the mid-range watch market than the brands would have you believe. So in the long term, it's going to be fairly easy to get any of them serviced. Just replace some springs and gears with compatible parts from a 2824/2892/7750/whatever and stick the brand's pretty rotor back on.
I'm with you on this. I see a ton of custom watches that end up using a Seiko automatic movement or an ETA. A bit like Lotus using Toyota Camry engines.
Not just custom - Seiko used to (still does maybe) provide manufacturers with bare movements, even with the company name on it. That means you'll find "no name" watches from the 60s onward with Seiko movements. That makes servicing, repairing and replacing them much easier and cheaper. Same with ETA.
Ever since I picked the hobby of fixing old mechanical watch, in house movement is my number 1 criteria for not buying because of the availability of parts.
For example, the size and fit of Seiko "calibers" are the same going back further than NH35, which means far older watches can accept NH35 as replacements. Even sub-assemblies and parts of NH35 fit straight onto 7s26s from the 90s.

NH35 can be serviced, but makes more sense an assembled replacement part. The same argument can probably made for the entire watch. The appeal of using one watch for 30 years is more in romantic fantasy than practicality.

Don't forget Citizen's Miyota 9000 series!
Parts rarely fail on watches from the 50's on, especially the better made watches that are sealed. Even those that arn't sealed very well, the parts seem to last.

If a part does fail, it's usually the old blue steel mainsprings.

They can be replaced with modern White-Alloy springs. (That is just a brand name.)

Watches are my thing. I don't know why I like them so much, but do.

Servicing does take awhile to learn though. That whole 10,000 hrs probally. Servicing a watch does not take that long to learn. I'm talking about making parts with a Jeweler's lathe. And getting to the point where you know those parts well enough to visualize exactly what's wrong with a timepiece by looking at it.

If you did learn to clean/oil your mechanical watch, it's something that will be passed down to loved ones.

Oh yea, Service a mechanical watch when it stops keeping good time. That is unless you take it in the water.

I know a watchmaker who told his father he needed to Service his gifted wristwatch. His father got it 30 years ago as a present, and just wore it daily. The watchmaker was expecting dried up oil, but to his astonishment, the oil was still there. It was hermetically sealed. Oils do breakdown, but he couldn't find any damage to parts using a 40x stereoscope.

They last longer if you wear them, say, several times a month - i.e. if you have a rotation with several quartz watches and several mechanical ones. They definitely will last decades that way.

As others have noted, if you own a well-known brand like a Seiko you can easily purchase an entirely new movement for $50-$75 and this should take a watchmaker no more than one hour of labor or you can DIY. (Many non-Seiko brands use NH35/36 movements, which are made by Seiko)

Will Seiko provide parts for older watches? I just got stuck with a bricked Swiss Army quartz watch because no one can get parts for it (it's 20 years old). I'm very tempted by some of the more affordable Seiko mechanical/automatic models, but I'd like the watch to last at least a decade or so.
Sadly, I'm not aware of any specific "we will continue to manufacture parts for X years" guarantees from Seiko.

Still, though - keep in mind that entire Seiko movement can be bought for like $50-75. And many of their most common movements are interchangeable. For example, an older 7S26 can be replaced with a new NH36 that sells for about $50. https://chronometercheck.com/seiko-7s26-movement/

It's not entirely unfeasible to imagine buying a spare movement or three if you were, say, planning on doing sort of a heirloom thing and wanted to ensure a supply of parts N decades into the future.

To that point - yes, but it's less expensive than many people think. I got a vintage 1970 Omega Seamaster in very good condition some time ago, paid less than £1000 for it. It kept very good time, no issues with it, but I decided that since it turned 50 recently I'm going to treat it to a full Omega service with an authorized workshop, paid £495 - that included replacement original parts from Omega, which of course they still stock and make for this watch, because well - it's Omega.

I asked them how this works, and they said anything younger than 80 years Omega just sends them parts without any issue, anything older they have to send back to Switzerland for service, and yes, then Omega might have to manufacture the parts required on the spot - and yes, that then turns really expensive.

Do be careful having your vintage watches serviced.

I was lucky enough to inherit my grandfather's pre-COMEX 5513 in very good condition - one or two tiny specks on the dial and a light scratch on the case. The appraiser gave me the warning that I should never send it to a Rolex repair center for servicing under any circumstance. If I did, I'd likely end up having the original acrylic bubble being replaced with crystal, the case polished high heaven, new tritium applied, and it'd probably be worth $15k less.

Collectors want a watch that shows signs of life; they value a nice patina. Many watch manufacturers service things to "modern spec" and try to make a watch look new. For a watch that old, I'd strongly suggest you find an independent watchmaker or two and get them to give you an estimate before you do anything.

>>Collectors want a watch that shows signs of life; they value a nice patina.

Yeah, but I don't. I don't have this watch as an investment - hopefully I'll use it for another 50 years and then someone else can use it again for 50 more years. In fact in addition to the service I paid £300 to have the dial replaced with a brand "new"(old stock) identical dial, because mine was showing very minor signs of corrosion. If a collector somewhere has an issue with that.....tough? Also I have no idea how anyone could ever even tell the dial was replaced, the new one is original Omega, just......flawless.

>> If I did, I'd likely end up having the original acrylic bubble being replaced with crystal, the case polished high heaven, new tritium applied, and it'd probably be worth $15k less.

That sounds perfect, if it were my watch I'd absolutely do that. Who cares how much it's worth at the end? If it's your grandfather's watch, then you probably won't ever sell it, will you?

Either way, I understand this is a personal choice.

>>for a watch that old, I'd strongly suggest you find an independent watchmaker or two and get them to give you an estimate before you do anything.

I did, both of them went "oh it's an omega, it's going to be about £400 for a full service mate" - so servicing it with Omega wasn't that much more expensive and it was a much better shout in my book, I know that whatever parts they replaced are original and brand new.

edit: just to add to the above - sorry, I realized I came across as very defensive. Yes of course your advice applies 100% if someone cares about maintaining the value of a vintage watch. Identical advice applies to maintaining vintage cars as well. But if you buy a vintage watch like me, to use it as....a watch....then just keep that in mind too.

No worries – and ultimately, you are absolutely right, it's all down to what you want out of it.

The two things I wanted to flag were

1) watches can have surprising value fluctuations, so they're worth being appraised professionally: just because you have "a model X from company Y dating back to Z" doesn't mean you'll get the valuation right if you try. If Papa were a desk diver at COMEX instead of Arthur Andersen I'd have likely ended up with a 5514 instead, and my six figure watch would be in a safe somewhere, not on my wrist.

2) many companies, when repairing, will not hesitate to add modern components. Rolex is apparently notorious for this, but others do it as well. In the opinion of Rolex, a watch is a watch: your GMT-Master with a Bakelite bezel is no different from a GMT-Master from 2022, it's just out of spec and needs a refresh.

The combination of this has lead to horror stories where people send their watch in for what they expect to be a fairly routine service (cleaning, oiling, etc.) and end up with an entirely different watch.

My grandma has a mechanical watch she only wears on sundays - to the church. Whenever I was visiting her she asks me to wind it up for her before the mass. She uses this same watch for over 30 years with minimal maintenance, and it's not an expansive brand, just a good noname watch.
I have seiko automatic which kept great time when I first bought it, but not long after, it slipped off my wrist and fell on the tile floor. Since then it has been losing time but no so much as to be a huge problem. Would service easily fix this or is it just something to live with?
Seiko makes a huge range of watches so: it depends. If it's a cheaper one, just buy a new one. If it's a mid-range one, you can just buy a new movement for under $100 and toss it in with a few tools. Lots of tutorials on YouTube.
Should be a simple fix. It might just need regulation on the balance wheel (super quick, no need to disassemble the whole movement), or one of the pinions might be bent (just replace that wheel).

Take it to a watchmaker, a fix like this would be pretty straightforward.

It may or may not be easy to fix properly, but if it's an inexpensive Seiko it may not be worth doing that, just replacing the movement when it wears out completely.

That said, simply adjusting the tick rate to regulate timekeeping is very easy and if you've got steady hands and a sharp eye then you can do it yourself with a wooden toothpick, assuming you've got a tool to remove the watch back. Any shop (offering repair facilities) could do it as well in a matter of minutes.

I have an automatic mechanical watch - a Seiko 5. It loses about 5 minutes a day. It might only need an adjustment to calibrate it, but that would require a watchmaker. I think the last one in town just went out of business, and even if he hadn't, the cost of his labor would be greater than the cost of the watch.
> It loses about 5 minutes a day

This suggests it's completely out of spec, and maybe beyond saving. However, regulating functioning Seiko movements is certainly within reach for enthusiasts using a timegrapher device, or software with a microphone. Persistently adjusting over a few days, it should be able to get within -10,+10 seconds per day.

The timegrapher will also reveal the condition of the movement and whether further work is worthwhile. Servicing these movements is likely more expensive than replacing them.

It's not hard to make the adjustment, but you need a timegrapher to measure the results in a reasonable time.

I've adjusted a couple of my watches over the course of a week or two by making small adjustments, noting the time, wearing it for a day, and then noting how much the time had changed versus a "known good" time. It's a pain but doable.

There are mobile apps that use the phone's microphone to measure the watch's "ticks" and graph them for you. They aren't anywhere near as accurate as a "real" timegrapher but they'll get you close enough.

At one point I had about a dozen mechanical watches. These days I have three, and only one that I wear almost exclusively. It's a Maratac Mid-Pilot, which uses a Miyota 8245 movement. I've used the "adjust and check later" method to adjust it, and it loses about 10s per week - well within the acceptable range.

The other two that I've kept are a Seagull 1963, which I wear as a "dress watch", and a Vostok Retro 1934, which I sometimes wear when I want a change of pace. It has a white face and I have a variety of brightly-colored straps for it.

One day I'll step up and buy a Hamilton, but I'm still savoring the serotonin from looking at them and anticipating :).

Why wouldn't they be accurate? You have a fairly precise 44kHz sampling rate, the only issue might be identifying the ticks.
> I suggest picking up a Seiko SKX

Sadly this advice is a little bit out of date, as the SKX has been out of production now for a few years and the price on uses examples has risen above what one is worth (except to collectors).

The newer advice is to grab a Seiko 5*. There's a million different choices, and all the current ones come with the 4R35 or 4R36 movement, which are better than the 7S26 which was in the SKX divers.

* https://www.seikowatches.com/us-en/products/5sports/lineup

I feel the same way, I write software for a living and I'm sure an outsider browsing through the thousands of lines of code in my codebases everyday would be confused, but I get that same feeling when looking at a mechanical watch. To think that people were building the first mechanical timepieces 500 years ago, just a hundred or so years after the printing press is incredible to me. How did they even create parts that tiny so accurately?
I keep considering a mechanical watch, but I think I'd find the accuracy a bit tedious - having to continually adjust it every week so that I didn't arrive late to appointments.

I like a watch that gets out of the way - it just works. I've got a Citizen watch a little like this: https://www.citizenwatch.co.uk/stiletto-ar1130-81a.html

It's a quartz watch, powered by solar power through the face. It has 'just worked' for as long as I've had it. From an accuracy point of view, it loses negligible amounts over the several month interval between me being forced to adjust it anyway (daylight savings, international travel).

It depends on the movement in the watch. Any COSC chronometer movement will hold +4/-6s per day which worst case is under a minute lost per week. Typically the error is much smaller.
You can always get a spring drive from grand seiko - it's mechanical (with an "brake" driven by an integrated circuit, but still no battery) but basically only gets a few seconds off per year. Lowest price point for those is like $5k though.
I do love Seiko watches. That's probably a little steep for me but I'll have a look!
you can expect a quality automatic movement (imo seiko is lowest end of quality) to be off on the order of single digit minutes per month
This is of course a matter of personal taste, but:

I usually set my watch a few minutes fast on purpose. I just use it to get an approximation of the time: "oh, it's nearly 5"

When I need the exact time I look at my phone, and naturally that's where my calendar reminders and such live as well. So I'm not missing any appointments if my watch is off, and if I did rely on my watch I'd be a few minutes early.

The two work well in tandem for me.

Of course, I also know lots of watch owners who prioritize accuracy from their wristwatches. If I was one of those people, I really couldn't imagine wanting to deal with a mechanical watch. They are wonderful, wonderful little machines and it's a miracle they're as accurate as they are... but, they are not as accurate as a $10 digital watch.

I've been using the same mechanical watch, more or less every day, for a little over 12yrs now. Miyota movement, stainless body, Sapphire window, about $300. In years of machine shop work the movement survived fine, and has one scratch on window from some tungsten carbide.

Has kept brilliant time, maybe a minute a month, and taught me that my watch being accurate to the second was something that, for me, just didn't matter. I started working around pulsed high voltage last year (100kV+) and now it loses a couple minutes a week.

> one scratch on window from some tungsten carbide.

Checks out. Tungsten Carbide and Corundum (sapphire watch crystals, the hardest watch crystal in use) have the same Mohs hardness of 9 and will scratch each other.

And I'd guess that a $300 watch probably doesn't use Corundum but rather mineral glass.

County comm mid pilot watch, it's advertised as Sapphire. Comparing with colleagues at the time, it was a far sight tougher than their watches.
Lot of microbrands offer sapphire glass and very decent Miyota or Seiko automatic movements for $300-$500. Prices have crept up the last few years.

Orient has a few automatic models (Kamasu, etc) that can be had for under $300 with sapphire.

> I started working around pulsed high voltage last year (100kV+) and now it loses a couple minutes a week.

Are these two things somehow related to one another?

Watch movements are generally sensitive to magnetic fields, and can become magnetized and lose accuracy. Some watch models explicitly advertise their level of resistance to magnetism, for instance the Rolex Milgauss, which is designed to withstand 1,000 ("mille") gauss.
Omega has watches that are METAS certified, so they resist up to 15000 gauss. They use silicon balance and silicon escapement.
Yes indeed, though not necessarily the cause in this case. While it could be coincidence, magnetization of components can result in reduced accuracy. Some companies have started to release watches with silicon springs, though very expensive.
> I started working around pulsed high voltage last year (100kV+) and now it loses a couple minutes a week.

There are antimagnetic watches. Or you can use a cheap watch demagnetizer.

A demagnetizer is on the shopping list, but at the same time, a quick adjustment every now and then is easy enough. I also love my watch, so a switch to antimagnetic isn't high on my priorities.
I’ve got a cheap Seiko 5, the SNK809. Bought for $50 new in 2013, wore it for a few years then it moved with me in drawers for the past 5. I pulled it out last week, wound it up and it works perfectly, gaining just 4 seconds a day.
This rings especially true when you live and work in an ephemeral digital environment. I find mechanical devices of all kinds grounding. No batteries, no upgrades, no security vulnerabilities, no dependency hell.
Not to defend Apple watch or other smart watches, but they have been my dream since my childhood watching James Bond movies. So I love both mechanical watches for their engineering and smart watches for what they bring to the table. We dont have to diss one to make the other feel better.
I have a couple of Seiko automatic watches, but I recently picked up an SNK809 as a new daily driver: https://www.benswatchclub.com/blog/seiko-5-military-review. For £120/$130, it's cheap enough to wear every day and it looks great. The amount of mechanical complexity and engineering that goes into it for that price is mind blowing.
> Also knowing that the thing will last forever, take care of it and it will probably outlive you. Can't say that about an Apple Watch.

I don’t know how many mechanical watches really will last a lifetime, but they will easily last longer than a so-called ‘smart’ watch.

Six years ago I seriously considered purchasing a ‘smart’ watch. Eventually I realised that they were just another money sink and attention leash, and put the money into a couple of automatic watches instead. I still have them, and wear them regularly. Had I bought an Apple or Android watch, I would have replaced it multiple times by now.

That’s the plus side. The minus side is that I don’t wear one of those two every single day because … I gotten bitten by the watch bug, and now I have a pile of other watches, and I wear those too! I still think that I am ahead of the game, though.

BTW, I write ‘smart’ watch because I don’t think they are really that smart; if anything, they should be called unwise watches, because they are an unwise expenditure of resources, money and attention. Also they just don’t look good. I predict that in thirty years we’ll look back on them much as we do digital watches: as a fad.

    The minus side is that I don’t wear one of those two 
    every single day because … I gotten bitten by the watch 
    bug, and now I have a pile of other watches, and I wear 
    those too!
This was a big part of the fun for me. Different watches for different days. It's ridiculous, even embarrassing to admit this but -- I feel like the richest, luckiest man in the world when I look at a drawer full of watches from which I can choose each day. As a child I would never have dreamed of it.

In reality they are all very modest watches, most under $100. The entire collection is not worth more than a nice laptop. But whatever.

As a bonus mechanical watches, unless I'm mistaken, will last longer if not running 24/7/365.

As mentioned the SKX is no longer produced, and the replacements for it are inferior as the 5 series has increased in price beyond inflation and are not true dive watches anymore. Orient is better if you want a dive watch in the spirit of the Seiko SKX.

The best current advice for beginners is probably on the Just One More Watch youtube channel, most watches are in the price bracket that the SKX occupied, and you will learn about micro-brands that exceed Seiko in quality, beat them on price, and under the hood have Seiko movements that are easily replaced & serviced for decades to come.

My Helm Komodo reccomended by Jodi of JOMW gets as much wear as my Rolex Submariner and at a fraction of the price. It isn't the same price or quality, but I enjoy it just as much.

This man is marvelous. Even though I know how top-notch he is at writing interactive blog posts, he surprises me with his quality every time I open his new blog posts. Bartosz is a huge inspiration for me.
I don't make this comparison lightly but I'm reminded of Leonardo DaVinci. How much talent does one need to create something like this? It's not enough to be just 'good' at engineering, design, watchmaking, and writing... you have to be amazing at it ALL of it. AND have motivation to do it.

I'm just in awe.

You don't have to be watchmaker, just need to read and learn about it and understand it.
I read the GPS one a few months back, he absolutely amazingly explained the whole thing to a depth I never would've expected.
This may not be the most valuable comment, but my goodness, the quality of this writeup and it's interactive descriptions of complex mechanical components AND their interactions is radically impressive. The treatment of complex topics in deeply visual and partially interactive ways, for me at least, is a remarkably helpful way to learn.
I almost couldn't believe the quality of this while reading it. Not just animations, but simulations? That perfectly illustrate the concept being discussed? Incredible. Not to mention the incredibly clear and articulate prose.
The author calling this a "blog post" really undersold it!
True multimedia is a lost art. We had it back in the 90s when software came on discs and it was a high-density, polished product that combined text, audio, video, and interactive elements on the same page. The internet taking over turned everything back into text, and then as bandwidth grew the only thing we thought to use it on was higher and higher bitrate video.

When I was a kid I thought the future was going to be fully-integrated data. Like I would be able to pause a movie and click on anything I was seeing to get more information. Click an actor, get his bio and interviews about the movie and bloopers. Click a vehicle and get its model. Click a special effect and see how it was done or an animal and learn about that animal. Imagine watching Lord of the Rings and being able to instantly read the original lore of any object, location, or character just by clicking/tapping it. Hell, even the smallest things can radically change your experience. Imagine if Wikipedia articles had appropriate background music. I guess there's just no market.

There is absolutely a market for your LOTR example. I think a kickstarter made LOTR or Harry Potter Interactive applications like you are purposing could charge $1,000 maybe.

And I 100% align with your 90's prediction. What we gained going from Encarta to Wikipedia was amazing, but we shouldn't forget that we lost some things too.

https://www.youtube.com/watch?v=po3yW-wdLr0

Couldn't the Wikimedia Foundation raise some money to produce these kinds of videos? I wonder why they don't.
I think one problem is that it's difficult to make videos easy for anyone to edit, the way a wiki text page is.

- The skills to edit video are more difficult to acquire, in part because - The hardware and software requirements can be expensive, and are not universally available - Once you've made a video, not everyone has the bandwidth to view it in high quality (certainly the first step to editing it)

Wikimedia could hire people to make videos, but they could also hire people to write articles, and (generally?) don't because that's not how they roll.

A Wikipedia-like platform for video would be fascinating, and worth pursuing, but a significant technological and social challenge.

You can already put instructional videos on Wikiversity.

You're right that the editing workflow for raw video is a challenge, but I expect that support for editable animations, interactive simulation, etc. will also be added at some point. It requires some infrastructure for editing securely sandboxed code in-wiki, which is in the works anyway for the upcoming project Wikifunctions.

There's Wikimedia Commons! It even (somewhat) addresses this particular issue by having a system for requesting specialized media-related edits—video editing, photo retouching, SVG editing, mapmaking, etc.

For the unaware, Commons, a repository of media files, is but one of many Wikimedia "projects" (including Wikipedia). It's mostly used for images, but also hosts video, audio (including MIDI), 3D models (only STLs), and PDFs.Aside: considering what the Foundation seems to like doing, I'm surprised they don't do more to promote the "other" projects, especially to Wikipedia contributors—Wikipedia editors (even split by language) vastly outnumber those of the other projects, including Commons and Wikidata, which are multilingual.

Commons' request system connects those who recognize needed edits but cannot make them with those who check the requests pages and are able to. There's the Graphics Lab[0] for edits to existing uploads, and File requests[1] for new uploads that are needed. Judging by the archives, they seem quite underutilized, though that might only be a sign of how few Commons contributors there are. Probably also has to do with the offloading of requests to local pages in many languages of Wikipedia.[2]

[0] https://commons.wikimedia.org/wiki/Commons:Graphic_Lab

[1] https://commons.wikimedia.org/wiki/Commons:File_requests

[2] https://www.wikidata.org/wiki/Q5324355

There's an interesting variation in the nature of barriers to being able to edit. Hardware and bandwidth cost money, but skills cost only time and software can be free. I'd say the Graphics Lab does decently in "teaching how to fish" through tutorials and lists of FOSS software. This contrasts with file requests, where there's no equivalent, because the most common reason that someone can't take a photo of something is that there physically aren't any instances of it nearby.

This kind of barrier to contribution really isn't specific to media; analogously, not everyone has access to the same resources for researching edits to Wikipedia. Wikimedia's also trying to address that: everyone with >10 monthly edits in any project has free access to the databases participating in The Wikipedia Library.[3] Most are relatively specialized, however (IIRC, JSTOR is the most generally useful of the lot).

[3] https://meta.wikimedia.org/wiki/The_Wikipedia_Library

That was also my dream when I first saw the CD encyclopedia and seeing the first demo of AR using google maps of pointing your phone to a building and seeing information about it and then the introduction of google glass, then it all suddenly disappeared.
Last time I used Amazon Prime Video, around 2017, it would show info that Amazon deemed relevant for that bit of the show (apparently it's called X-Ray). Back then at least, it wasn't on the same level as what you described but still something.

The danger was it made me want to pause all the time in case I missed something interesting, but by putting the user in control of what they get info on, you could avoid that.

Last time I used Amazon Prime Video, around 2017, it would show info that Amazon deemed relevant for that bit of the show (apparently it's called X-Ray).

X-Ray still exists, but the only way I've ever seen it used is to tell you what the background music is, and the names of all the actors in a scene. But even then, it is often incomplete.

The Kindle has a similar feature for some of its native book: if you long-click in the name of a character it would give you a short description and a timeline of where it appeared in prior parts of the books (with future parts hidden to prevent spoilers).
Like I would be able to pause a movie and click on anything I was seeing to get more information

I remember the cable companies promising this when everything went "digital."

I also remember when the movie studios promised us one of the big advantages of DVDs over VHS was that we could watch the scenes of a movie from any angle?

Yeah, that never happened.

And the director / talent commentary tracks, which were sometimes really great (Vanilla Sky comes to mind). I think that was only common for a really brief period unfortunately. To be honest I think it just failed from a market perspective (cost vs revenue). I could be wrong and maybe it still happens a lot?

Suspect the angles thing was the same. Sounded cool but no one wanted it (or to pay extra for it).

It still happens a lot but those tracks rarely make it onto the streaming service copy. Usually you need to buy the disc version.
There is a movie player that would highlight the character/actor on screen at the moment you hit pause. There is a link to find out more that would take you to the appropriate web page with the info.

I want to say it was google play, but not completely sure.

Amazon Prime Video
I've never used that, so there must be another one.
The Google Play video player sometimes does it (or at least sometimes used to).
Amazon Prime Video show you information on the actors in the current scene. If you are (e.g.) chromecasting from a phone you have it continually on the mobile display while the film is on the TV.
>True multimedia is a lost art. We had it back in the 90s when software came on discs and it was a high-density, polished product that combined text, audio, video, and interactive elements on the same page.

This reminds me of Microsoft Encarta.

Microsoft sold a bunch of titles for things like music. They did quite a nice job as I recall during that period when it was really rather wondrous you could hold all this information in the palm of your hand.
Yeah, a 21st-century version of Microsoft Home would be incredible.
1000%.

Sent this to my dad, and can't wait to talk this weekend. When I was a kid we would tinker around with watches in the basement but, alas, I had different interests and never really got around to truly understanding these mechanisms. I don't really know web development beyond setting up basic pages, but how the CAD was integrated into this is wonderful and I'd love to see more posts going through things like human joints or ICE, or maybe weapons ... other things where we kind of intuitively grasp how they work, but don't know the details. This entire blog seems to do a lot of that. So cool.

I came here to write the exact same thing. Amazing content.
Came here to say the same thing. This incredibly well done, well written, well executed, well... everything. How does one find, not only the talent, but the patience to do such incredible work... Mind boggling.
Does anyone know the tooling used to create these?
Came here to write the same - that was amazing...
I think that the person(s) that created the interactive visuals would find this to be a helpful comment. Radically impressive is a fitting description. I don’t think I’ve ever seen and interacted with anything like it, although I imagine people working with CAD software get to see and mess around with this kind of stuff pretty frequently.
Agreed! This is top quality writing AND interactive illustrations.
To be 100% honest I found it very intimidating to even begin reading it. It's such a time sink (no pun intended) and a huge wall of text (with figures and interactivity nonetheless).
I usually get about half way through his posts, see how much is left and just give up. Nonetheless I get a lot out of them.
The end was the best bit. I have seen good explanations of the escapement and timing gears before, but not of the crown adjuster mechanisms.
Dont give up. Pause between sections and come back tomorrow.

Put a reminder on your calendar.

This might be the single best work of art on the Web I've seen since 1995. Nothing else even comes close.
(comment deleted)
I wonder how long it took him to put together this blog post?
(comment deleted)
And in true HN style we react to such objectively awesome content by having a slapfight over whether the author wrote the code in the “right” way.
My first thoughts were "This is what the internet was invented for".

So impressive.

Mr Ciechanowski's articles are themselves complete works of art. Another brilliant article and collection of interactive animations.

My favourite escapement is the detent escapment. I saw a cutout model at the Imperial Science Museum in London. Even after staring at it for ages I could not figure out how it worked!

What a fanatic writeup. I’ve been fascinated with mechanical watches for what seems like forever. I browse YouTube at night and see collections by Mr. Wonderful and John Mayer (mostly very high end collector grade Rolex, Patek, AP, IWC). I actually splurged and purchased a new Omega Seamaster Professional Diver 300 automatic and absolutely love it. It does have a see-through back making watching the caliber 8800 movement hypnotic.
Love the diagrams. Great write up!
How difficult is it to bootstrap the ability to manufacture mechanical watch parts?

It was only in 2017 that China joined the elite club of countries capable of making ballpoint pens. Is it that hard?

https://www.washingtonpost.com/news/worldviews/wp/2017/01/18...

That depends on how many parts you want to make and to what tolerances.

https://www.gearpatrol.com/watches/a636135/greubel-forsey-ha...

Looks like a fun website to spend a hour or two. Thanks!

Regarding tolerances, your OPs article states that they were actually able to produce them before, but not at a satisfying quality. I don't know what a 'good enough' quality is, though. It's a good story nevertheless :)

Very hard. And it comes at an outrageous price. Independent watchmakers usually go one of four routes:

1) Source a movement from a big manufacturer (eg; ETA/Valjoux or a japanese/chinese movement) and use it as is but design the case/dial yourself 2) (1) but modify the movement adding functionality, replacing parts, or refinishing it to your own standard 3) Designing a custom movement around specialty movement parts from a supplier like Jaeger LeCoultre. They make some of the trickier parts (gears, balance springs). They can also manufacture special parts on a swiss screw machine. 4) Going through a bespoke movement maker like agenhor. You tell them what you want and they have both the machinery to make many custom parts and source the rest from elsewhere. They also provide movement design expertise.

Actually machining the watch parts isn't the hard part... the tricky part comes in things like hairsprings and escapements which are made from sometimes exotic materials like silicon. Some tiny watch parts are made using electrical discharge machining which costs $$$$$$$$ as well.

That's it, this is gonna make me pull the trigger on a skeletonized watch. I've been wanting one for a couple years, but never really sat down and browsed, but I appreciate the mechanics so much more after reading this.
It's like a clear hood on your car. On a nice enough car, it shows the beauty of the engine. But on a cheap one ... Skeleton watches can be uniquely telling of the price of the watch.

Worth mentioning, most mechanical watches will have a sapphire back, so when you take them off you can admire the movement privately.

Just imagine the utopia that would emerge if all education were conducted through web-essays like this. Bravo!
I believe that for every Bartosz Ciechanowski (huge kudos and thanks to him!) there are 100 similarly abled people, who can't create essays like this, because they need to do something else to keep the lights on. A collective loss.
Sounds like something basic income could help alleviate.
Amazing! He's done it again, I am blown away! Thanks you very much for this unmatched level of documentation quality!
This page got the HN hug of death it seems. Absolutely deserves all the traffic he is getting, Mr. Ciechanowski's blog is an absolute gem.
I started with Greg Daniel's masterpiece: Watchmaking.

https://www.amazon.com/Watchmaking-George-Daniels/dp/0856677...

I was about to post the same book. Pretty much a must have if you get into watchmaking.
My late Uncle Vic taught me how to repair clocks and pocket watches when I was young. I let it go, and returned to re-learning it with this book. I still dream of completing my first, from scratch, pocket watch.
I've heard of that book before, it sounds really interesting too! Creating your own mechanism sounds extremely complex, is that what you're doing?
Linked at the very end of the long, long page (which, incidentally, is long).
That is an absolutely amazing book - how to design and make the highest quality watches from scratch. At the time, all watch fabrication was by division of labor, no one made an entire watch from scratch.

Daniels also wrote a riveting autobiography. He rose from the most abject poverty to world eminence, largely because of the British guild system.

He also collected, restored, and raced old cars. He used to drive his Blower Bentley to his gentlemen's club (!) in London[0]. All this is described in his autobiography.

He needed to do business in Switzerland, so he simply drove his restored Rolls-Royce across the Continent.

[0] https://en.wikipedia.org/wiki/Bentley_Blower_No.1

https://en.wikipedia.org/wiki/George_Daniels_(watchmaker)

I was curious how he did those visualizations so I looked at the source code. Turns out he codes everything by hand in WebGL [1]. Absolutely impressive stuff. Source code is non-minified so you can have a look and understand everything as well.

[1]: https://ciechanow.ski/js/watch.js

Yep, that's why the visualizations do not run on my hardened Firefox. I disabled WebGL.
(comment deleted)
You should considering enabling it for this site. I don’t see what the downside here would be.
And it was worth it.
He does it "the right way™". Use the platform. Don't use any framework or generic library. Go straight to the point and code what you need, when you need it. Don't minify or bundle anything, and let the people who are learning and courious a straightforward way to connect the dots, without forcing them into a github repository with 90% of the code unrelated to the thing and existing just to glue 1000 pieces written by 10000 people together. Every essay by Bartosz is so top-notch and a such breath of fresh air! He gives me hope in humanity and I am immensely grateful for what he does.
I mostly agree with you, but I don’t mind minification when appropriate, as it can serve a functional purpose with tangible end-user-friendly benefits (less downloaded over the network = faster response times).

But if you want to be friendly to the tinkerers, you could always host both the *.js and *.min.js versions, and have the webpage just pull the latter - anyone who wants the unminified source can remove the “min” part from the URI, while the majority of end users will still benefit from pulling the minified js.

That's simply not a very well followed (and thus discoverable) standard. Especially for hand crafted code, minifying functions and variable names only obfuscates what is written and minifying whitespace often only has minimal benifits.

In practice this seems to be a lost cause, and links to alternatively hosted source code is more common. Sadly this makes is simple to introduce subtle, harmful differences between the source and what is hosted.

The pattern is extremely common on CDNs that serve JS.
It's hard to guess that extra assets exist on the server if they aren't being pulled down by the site itself.

Seems better just to have premassaged source available in a repo somewhere, or called out on the page itself for a downloaded archive.

A discoverable version would be to include source maps that link to the original as well. That way a browser console will automatically pull up the original.
People measure minification in byte size (unfortunately I guess you're charged by CDNs by that metric too?). In reality everything text based compresses really well over the wire. In either case, importing tons of libs left and right is going to vastly out-size any minification, yet most fe devs are very liberal with dependencies.

Minification strips comments too though, which may be undesirable in many cases.

minified js is not greatly smaller than gzipped js, I think the whole minification thing is a swing and a miss and now we have to deal with source maps and shit, and build pipelines and etc

    $ ls -la
    -rw-r--r-- 1 jack 197609 330905 May  4 22:56 watch.js
    -rw-r--r-- 1 jack 197609 152172 May  4 22:55 watch.min.js

    $ gzip watch.js
    $ gzip watch.min.js
    $ ls -la
    -rw-r--r-- 1 jack 197609 43690 May  4 22:56 watch.js.gz
    -rw-r--r-- 1 jack 197609 32507 May  4 22:55 watch.min.js.gz
Of surprise to no one, Brotli does better on both:

    $ ls -l *.js
    -rw-r--r--  1 mrd  staff  330904  5 May 01:04 watch.js
    -rw-r--r--  1 mrd  staff  152172  5 May 01:10 watch.min.js
    $ brotli watch.js
    $ brotli watch.min.js
    $ ls -l *.br
    -rw-r--r--  1 mrd  staff  34461  5 May 01:04 watch.js.br
    -rw-r--r--  1 mrd  staff  27122  5 May 01:10 watch.min.js.br
If I were serving this content, and if my web server and all of my target browsers supported Brotli, I'd be somewhat more content to ship an un-minified + Brotli-compressed file than an un-minified + gzip'd one. I'm sure it's some rule of thumb stuck in my head from the Web 2.0 era, but a JavaScript payload in excess of 40KB crosses some warning line in my head. (Probably 40KB / ~4KB/s throughput on a good dial-up connection = 10s transfer time, about the longest you'd want to wait for even a pretty spiffy page to load.)
> I'd be somewhat more content to ship an un-minified + Brotli-compressed file than an un-minified + gzip'd one.

Whoops, typo: I meant to say that I'd be somewhat more content to ship an un-minified + Brotli-compressed file than a minified + gzip'd one. That is, I'd be more happy to serve the 34.4KB watch.js.br than the 32.5KB watch.min.js.gz.

True, but it also removes the comments and the whitespace, leading to slightly better performance and memory usage. There are also less bytes to gzip on the server side.
Slightly, but is it enough to warrant the extra steps?

I don't think the difference is significant enough in this case.

That said, I do think there should be an alternative to minification+gzipping, like e.g. a compiled version of JS that is more optimized than a browser's own JIT compiler can do. Mind you, that might up being a larger package than the JS source code.

Webassembly is* pretty much that

* hopefully will be

> and now we have to deal with source maps and shit

Yeah minification is only really for obfuscation. The small and unpredictable difference is absolutely not worth the ridiculous complex "solution" of source maps. Just the fact that your debugger really doesn't work right, is a deal breaker in and itself, not to mention all the time spent configuring and fighting with webpack.

I don't think any form of "compilation" i.e. bundling, transpiling, minification etc is needed at all. Javascript can already dynamically load (additional) code files when needed, I don't understand why you need to bundle it in the first place.

I don't buy that the http request overheads are so big that it motivates all this complexity, and in the average case a user don't use every single page of the application anyway, so by bundling everything you are always serving "too much", compared to just dynamically loading additional code.

Gzipped JS is generally much smaller than minified JS, but minified-then-gzipped JS is even more so. The minification (assuming gzip) doesn't make a much difference in this case only because the input file is not that large at all and compression algorithms have a natural bias for larger inputs. You can (rightly) claim it is bad to have a JS file large enough that the minification makes a difference after all, but you'd be moving a goalpost then.
We need a ciechanow.ski explainer for how ciechanow.sky explainers are built
He made this in the spirit of watch making. Super impressive and interesting website!
The tradeoff is that there is basically nobody else that has the expertise or time to do the same thing at a similar level of polish. We're not going to see more Ciechanowski-level posts unless new libraries and frameworks make it more accessible.
Maybe, maybe not. We should do the experiment, though.
We definitely won't if people are taught that frameworks are the only option and never allowed to just write a full program on their own.
Nobody stopping you from not using a framework, and yet there is basically nobody else at Ciechanowski's level. It's not going to happen, you can't expect everyone to become a hardcore webgl expert (have you tried?). If we want more cool interactive visualizations, we have to make it easier. Otherwise, we're stuck waiting for those with the time and expertise to pull it off.
> He does it "the right way™". Use the platform. Don't use any framework or generic library.

Hard disagree. "Use What's Right For You™".

Of course there is value in understanding the platform beneath your framework or generic library, but that's just an extension of "understand what you're using and why".

I strongly disagree that this is "the right way". I think that the platform provides low level primitives that are _designed_ to have abstractions built upon them.

Doing it like this has the potential to be the most performant, but it does so in the same way as writing your programs directly in assembly is potentially performant.

I also don't think that the source code is particularly readable for me, and contains lots of magic numbers and very imperative code. I would personally find it a lot more readable if it was written in some sort of declarative way using a library, even if I have to look at a GitHub repo instead of view source.

On a scale of 1 to 10 how strongly are we talking here?
9.5 Your PR will be held up for at least a month with the back and forth.
it depends if you are doing something to get paid, or to last, or to be really good. only in the first case do i ever consider a heap of abstractions
Abstraction is the only thing that makes any of our advancements possible. Not even the simplest of math theses could be proves without a “framework” of relevant lemmas, nor could you write even a single hello world without the layers upon layers of abstractions written carefully over the decades. Sure, there is also bad abstraction, but the problem is the bad part, not the concept itself.

Without abstractions you wouldn’t be able to read a text stored on a remote computer with accompanying style information displayed the same on both of our devices and with embedded 3D graphics doing the same thing on vastly differing devices be it a top of the line GPU or a simple low-end phone. Is it not abstraction?

Well, if the abstractions were peer reviewed and put through the same rigour as mathematical proofs, that's a whole different topic.

The equivalent would be a mathematical services company, who created "free" abstraction packages that required you to rewrite all your math, away from the scientific community standards, to fit their abstractions, and who also made money on consulting and selling books. And the big benefit of it all, is really that they only abstracted away writing summaries of your papers, which is actually the easiest part that is quite irrelevant to your research.

But it is not math - we only have empirical evidence and not even much from that.

Who is to tell whether the OSI model is ideal? It is more than likely not it, but we can’t measure these things up front, there is an insane cost associated with changing it, etc. Yet again, what is the alternative? We can’t manage complexity any other way, and essential complexity can’t be reduced.

> Who is to tell whether the OSI model is ideal?

The current idea of the OSI model was also retrofitted from what it originally was.

i mostly mean the heap of stuff people often throw at problems. of course you cant do anything without abstractions. it helps to understand them better though.
> but it does so in the same way as writing your programs directly in assembly

> contains lots of magic numbers and very imperative code

Well, we really don't know if the code was written in this form by hand, don't we.

It could have been compiled into this, to use your words, "assembly with magic numbers and imperative" from much more elegant form. We may see this form only because this is what browsers understand.

I am not saying it was compiled, just speculating that seeing pure WebGL does not mean it was pure WebGL to begin with.

Graphics code tends to be imperative and have lots of magic numbers. I suppose it's the math-intensive nature of it.

Personally I'm not a fan of the magic numbers either but as I study more and more of it, it's everywhere

> has the potential to be the most performant

It also has the potential to evolve in the most efficient way.

When there's physics, graphics and mathematics, there are magic numbers, which are results of formulas which needs to be computed once, or material properties, or nature's constants.

Also, nature and graphics works as an imperative parallel machine. So the code mirrors that.

This is not written deliberately this way. Code comes out like that when you strip all the libraries, fluff, and other less-related stuff.

I also write a scientific application, and yes, This is the way.

> Don't minify or bundle anything

Yeah in this case it doesn't need to; there's no extraneous or unused code or documentation blocks, and gzip (and comparable) compression is good enough, minification doesn't actually reduce the downloaded code size by that much.

the obvious downside is that it's a lot of work and takes a lot more time... so it might be "the right way™" for some cases, but it's definitely not a rule of thumb...
Can you point to what libraries he could have used that would have made it simpler? I doubt anything like would benefit from any type of abstraction that currently exists, unless it was a more interactive application that would incorporate user input etc.
Three.js maybe, but it doesn't abstract too much away in my opinion, it has a lot of functionality around more complex topics (textures for example), but since he doesn't seem to use those it's probably not worth the hassle.
Depending on one's skillset, you could use a dcc tool like Blender + three.js to make creation of these visuals and interactions much simpler. Have a look at gltfjsx + react-three-fiber [1] combination, which themselves are abstractions over vanilla three.js.

With that said, the raw webGL approach here is arguably more educational, so goal achieved I think!

[1] https://docs.pmnd.rs/react-three-fiber/getting-started/examp...

Edit: there's actually a 50 LOC watch example with r3f: https://codesandbox.io/s/bouncy-watch-qyz5r

Cool example, but all r3f is doing here is just providing the threejs camera, controls and the text with emoji, the watch itself is loaded as a .glb file, where I'd assume most people would be interested in learning about.
Yeah, I think exporting a scene from blender as glft/glb, and then using these tools to bring your exported 3D file to the web, is one of the more approachable abstractions.

The reason you'd use gltfjsx (which that example doesn't) is to have fine grained controls for every node in the scene graph. In the case of the watch, this would map to having a component for each mesh or gear, which can be controlled with mechanics/physics.

Apart from going to each post and manually looking at the JS codes, is it possible to get them all in one go? https://ciechanow.ski/js/ returns 403 error.
wget will do what you want, with the right flags. Try `wget -r https://ciechanow.ski/mechanical-watch/ --include-directories=js/`, the resulting `ciechanow.ski/js/` dir should have it.

Adjust the flags as necessary to crawl more of the site if needed (omitting `--include-directories` without an `-l {limit}` flag will eventually crawl the whole site, please be kinder to their bandwidth than that).

Why is "codes everything by hand" surprising? Is WebGL a really shitty API or something?
> Is WebGL a really shitty API or something?

Yes. Almost no one uses it directly.

Why not? What's wrong with it?
Holy living crap. I was all with it up until I saw the actual full HTML example. That is an incredulous amount of overhead for what is essentially one of the most basic and fundamental operations in *GL.

Comparing this to Canvas is almost like comparing assembly to C. I'm honestly very surprised.

Though boilerplate is never acceptable, most of that is constant-factor overhead, not per-triangle overhead, and tutorialspoint is not a site you should trust under any circumstances. See my links above for better sources.

If you put more vertices and indices in Step 2 you can draw an arbitrarily complex 3-D object with this same code.

And there's a lot of stuff in GLSL where you can program directly with high-level concepts like vectors, normals, and partial derivatives, instead of expressing them by hand the way you would in C.

Using a framework is also constant factor overhead (at least in LoC, which is what I assume we're talking about here)
Right, and that's what the glslCanvas project I linked above is, though in this case it's negative overhead if you're just counting the lines of code you have to maintain :)
Ah gotcha. Yeah I was alluding to ThreeJS, a very powerful and standard framework for webgl
Yeah, ThreeJS is awesome! glslCanvas is just for drawing with shaders, not for general 3-D.
Yup. This is why my crappy little 3D game engine still uses canvas and not WebGL. I can’t feel good about myself and deal with all that.
Yeah, Canvas 2D is great, though it's not any more OO than WebGL, and I sometimes forget to create a new path and wonder why it keeps getting slower and slower with every frame. SVG is also pretty reasonable.
Neat, you do the math yourself and then render the tris/quads in canvas? I did something like that recently (in C/SDL, later RayLib). I found it amusing that to get performant 2D rendering you have to use a 3D API, so my "software rendered" 3D engine which just uses the gfx api for 2D draw calls ends up using 3D for the 2D under the hood...

There's at least one (great) game written like that though, Need for Madness with a custom 3D engine and just using java's 2D gfx api for rendering.

I did this in 02007 in JS: http://canonical.org/~kragen/sw/torus

Except that WebGL didn't exist so I just had to use the 2-D <canvas>. There's probably some trick for getting antialiased polygon edges in <canvas> to not show cracks...

That looks like a fair bit of boilerplate, and a shitty tutorial with comments that mostly just repeat what the code says, but the API doesn't look unusable.

https://github.com/patriciogonzalezvivo/glslCanvas/blob/mast... has most of that same boilerplate in a less repulsive form. https://github.com/patriciogonzalezvivo/glslCanvas/blob/mast... has other bits.

Honestly I think your examples are both genuinely less comprehendible to someone without a deep understanding of GL going in than my example.

It’s a very bad, non-object oriented API in an object oriented language. It was designed for and by people who know GL in other C like languages, not for people who know JavaScript. It is unlike any other part of the language.

The fact that I have to write a shader myself, as a fricken string like I’m writing SQL over here, just to draw a triangle is absurd. There should at the very least be some sort of provided builder for simple shaders.

Yeah, they probably are, I didn't intend them as tutorials but as a better representation of the actual scutwork necessary to draw a triangle.

Object-oriented languages are not a good way to do 3-D rendering. If you want to write pixel shaders in JS you can totally do that but you will have to run them on the CPU; as it happens I wrote a program last week that works that way: http://canonical.org/~kragen/sw/dev3/trama. If you want to run them on the GPU you need a language that exposes the GPU's capabilities.

In essence your primary complaint is that the GPU instruction set is not object-oriented (and neither is your database). Well, you can design your own GPU, but I've got some bad news for you about Verilog, Chisel, and BlueSpec! And you may find out that the real problem is that solid-state physics isn't object-oriented, so your OO GPU will end up underperforming, like the Burroughs B5000 and the Symbolics 3600 (hopefully not as badly as the Intel iAPX432). You'll probably have more success writing an object-oriented database.

However, I do agree that WebGL is a bad API, because boilerplate is never acceptable.

> you may find out that the real problem is that solid-state physics isn't object-oriented

I am saving this quote for future use. Thank you :)

Funny, I would argue that the rock on my table is very definitely an object ;)
But even if we're arguing physics, that's debatable. The shape and toughness of the rock are actually an effect of forces between the atoms composing the rock, and the weight of the rock is actually the interaction between the mass of the rock and the earth. The color of the rock is the effect of the interaction between the molecules in the rock and photons (which are themselves wave-like) and then the interaction between that light and the cells in your eyes.

Objects are a convenient day-to-day model in real life and software, but there are more "functional" models that comprise the object model.

Examine it more closely; you will find that it is a dynamical system composed of sextillions of parts, constantly entering and leaving the rock, and that the boundaries between the rock, the table, and the air are very fuzzy indeed. It isn't even encapsulated, nor are its interactions with its environment mediated by messages to which it freely chooses a response; it is its environment.
Your insight is remarkably well-written. I wish we could see our bodies in the same way, all of the time. The world might be a kinder place overall. Do you meditate?
Not enough to be useful. But I'm glad you enjoyed it!
I don’t see how someone not understanding GL first can do anything useful with it. Like, what would such people even use it for? If they need a complete solution just use a plugin that displays some rotatable 3D model. But I really don’t see the value of planning for the lowest common denominator in case of a highly specialized domain specific API.
Now compare it with Flash ;)
All OpenGL does it draw triangles.

Once you get through the process of drawing a triangle on the screen then you're learnt 70% of the core of OpenGL. I think you're making the incorrect assumption of "wow if it takes this long to just get a triangle on the screen it must take 1000x as long to get an entire model of a watch" when really you're almost able to draw a model already, you just need to put multiple triangles on the screen now instead of just one.

Are you sure about the by hand part? There's a lot of repetition, it feels like at least some of it must be generated.
Yeah, I'm sure a lot of it is copy/pasted or #included from his other work.
There is repetition but it doesn't look auto-generated to me.
I wish he'd write a post about how he developed these visualizations. How does one even learn how to make something this amazing?
> How does one even learn how to make something this amazing?

I haven't done anything quite this amazing, but I have created other things with minimal upfront knowledge and "the way" is simple: just jump in and give it your best shot with what you already know, identify the most glaring deficiency in what you made, take your best shot at solving that, and repeat that process until you have something cool. You can also use this process to focus what you spend time studying/learning, as you backfill the information you were missing to figure out how to overcome whatever obstacles you encounter.

It does take time, but you know what they say about long journeys and single steps. Sometimes there are no shortcuts and you just have to take a lot of steps.

I like that; it's a lot of work but a lot of people seem to prefer to have to make libraries work together than to just do the work, and it's timeless since it doesn't depend on any future frameworks; any issues that might come up in the future with regards to browser incompatibility can be fixed relatively easily.

Would antifragile be an applicable word to use here?

I have a WebGL project thats been broken for a few years due to a browser deprecated api, it is not a relatively easy fix
I'm observing that developers these days are quite surprised to see anyone write code for OpenGL / WebGL directly instead of using some layer of abstraction on top, such as Three.js or Unity etc. Few seem to know that OpenGL already is an abstraction of the computing model underneath.

A couple years ago I did some consulting for a company that needed a point cloud rendering engine. Luckily I had one ready to go. I showed them and they liked it and their young devs asked which library I was using. When I told them I used OpenGL they couldn't believe it. To them OpenGL was the "black magic box" and using it akin to having secret conversations with the GPU in some arcane cryptic language.

In my waking up state I read that as “some layer of distraction”. How fitting ;) But back to original post , yes his work and website is amazing.
When it’s time to simplify and/or troubleshoot overly-complex things, I like to use the phrase “The abstraction is a distraction”.
When I was in college, I got really deep into OpenGL and worked through old textbooks about OpenGL 1.1. I think my favorite one was just called "The Red Book"? It was so much fun.

After finishing that I found out that they were already several major versions ahead and had fancy things like shaders... it really is an amazing tool.

Recently I started messing with some Three.js stuff and it does have some nice abstractions... main benefit of it for me is the ecosystem around it. Being able to just plug in some physics and interactivity and not have to deal with digging up old screen-to-world conversion code is nice.

(comment deleted)
I wrote interactive 3D graphics programs in SGI IrisGL, the proprietary predecessor of OpenGL. At that time I considered it super easy because it was so high-level. Even so, as an experiment, I networked an Iris to a Lisp machine so I could write graphics code in Lisp and let the SGI machine render the output. Good times.

History tidbit: Jim Clark, the founder of SGI, invented the GPU which was what made SGI machines so fast at 3D.. Later he went on to found Netscape.

https://en.m.wikipedia.org/wiki/James_H._Clark

> History tidbit: Jim Clark, the founder of SGI, invented the GPU which was what made SGI machines so fast at 3D.

Even more trivial: When I moved to Silicon Valley I bought a used Porsche on a whim (my recruiter implied it was a proper consultant accessory in SV) and fixed it up a bit until it became my daily driver. When I researched the title I discovered Jim Clark was the original owner. So I’d like to credit Jim Clark for starting me on the road to speed up my commute.

Did he soup it up? If not, nobody cares who owned it before.
" Turns out he codes everything by hand in WebGL"

You really have to admire people who do stuff like that (I can't imagine that I would ever have the patience to do that).

What I'm mildly curious about is why would anyone want to do it? Is there a demand for such stuff? I can understand it if the exercise was for training people but wouldn't most people who were interested in the internal workings of watches already be familiar with them?

I'd reckon most would be like me in that they'd pulled enough watches apart in their younger years to already know their ins and outs (I've long lost track of the number watches and clocks I've either fixed or disassembled by the time I was a teenager).

> I can understand it if the exercise was for training people but wouldn't most people who were interested in the internal workings of watches already be familiar with them?

Most young people don’t even have access to a mechanical watch these days.

I fully accept your point that 'most young people don’t even have access to a mechanical watch these days' but I'd contend that that ought not be relevant (as I'll explain in a moment).

First, I should say that I was perhaps a little harsh in my above comment and I didn't convey what I actually wanted to say. Unfortunately, I was distracted by the somewhat irritating fact that I couldn't view any of those drawings on two different smartphones (I could read the article but only saw white spaces where the drawings were supposed to be). It was only later when logged onto my PC that I could view them, and even then the whole page was sluggish and a pain to view. Perhaps those with faster equipment and or faster internet connection had better luck.

Thus, the thinly-veiled message behind my comment was a question about fitness for purpose—both about the subject matter and its method of delivery. My cynical inference was that if people today didn't already understand the basics of gearing, mechanical advantage and escapement mechanisms etc. then something has gone wrong with the education system in that the basics of how clocks worked were well covered in physics (in mechanics) during my first year in high school—and that should not have changed as we still live and move around in a mechanical world—and thousands of industrial mechanical devices use these principles and rely on people having a good working knowledge of them.

By third year physics, everything relevant about the essential workings of a clock would also have been covered at a basic mathematical level: Hooke's Law, gears and gear ratios, friction and simple harmonic motion. Even temperature expansion and contraction and the need to compensate for them was discussed (and in this context the physics teacher even discussed Harrison's famous chronometer and how his design included temperature compensation to ensure that changes in these parameters did not impact heavily on time drift).

In essence, by third year, everything of important in that article had been covered in the school curriculum. If articles such as that under discussion are now being used to compensate for the lack of training in high school science then we have a serious problem with the education system.

Incidentally, even if one's not interested in clock mechanisms, it's worth having a look at this 19th Century publication on mechanical movements that's on the Internet Archive (there are more types around than most people have ever likely considered: https://archive.org/details/Mechanical_Movements_507

I might be an outlier in how I learn, but I find that learning happens in multiple passes.

First, I learned a concept in school, and probably forgot it. Later, I heard about it again, and hung the concept on the skeleton of what I remembered from school. Only much later, when I'm actually applying the concept (in my career, during home repair, when doing my son's homework), do I connect the dots and really understand the concept front to back.

When talking to people I'll say I learned the concept {of gearing, of escapements, of the behavior of springs} in school. But it's probably just as accurate to say that exposure to experiences like this site were what truly cemented them in my mind.

"I might be an outlier in how I learn, but I find that learning happens in multiple passes."

I don't think so, I'd reckon you'd be pretty typical. It's basically how I learn things and I'd think it's how most others acquire skills.

From my experience, the key issue is having an interest in the subject, subjects that I was interested in I did well in and it was the opposite for those that bored me. I suppose that makes sense but in both cases multiple passes were required before I became proficient - it's just that it took considerably longer when my interest was less.

However, what I've noted on many occasions is that there are students who I'd classify as a class that are just good at learning things even if the subjects have little interest for them per se, they're the ones who would often top the class and later in life you'd find them doing jobs unrelated to the subjects they did well in. I often think I'd like more of that trait.

For reasons I can only speculate about, my interest in certain specific subjects seems to have inate origins, it's as if some a priori interest was there before I knew about them. This doesn't necessarily bode well for other subjects that are deemed essential for one to become skilled in as one's learning can become lopsided.

There's little doubt that hands-on training works for most - and that brings me back to clocks. In physics practical classes on tension, springs, mechanical advantage, etc. we actually had clocks to experiment with. These were usually old bedroom alarm clocks and such that could be pulled apart and reassembled and if damaged it didn't matter much. We all learned from these experiences, even kids with little mechanical aptitude as clocks contains just about every instance of the physics we were learning about and it was obvious how they all came together to make clocks work.

There's little benefit to writing your own asm these days[1], yet we need people who know asm intimately to write compilers.

It's the same here. Without people who deeply understand a tool's input and output, we won't ever write a better tool.

[1] don't @ me, cryptographers and kernel programmers.

"There's little benefit to writing your own asm these days"

Agreed, but programming in ASM makes one think differently. In my opinion every programmer should do some elementary Assembler as part of their training, say some basic projects based on 8086 stuff or even the simpler 8085/Z80 etc. It's a long while since I've done any serious ASM work but the techniques one learns and the ideas one develops frame important attitudes that can't be easily gathered from high level stuff (one gains a better understanding of the underlying hardware and such).

You're right, we still need people for this work, it'd be pretty hard to optimize a compiler without them methinks.

FYI, there's stuff I omitted to mention in the above comment, I mentioned it below in my reply to bitcurious. It's interesting 'fitness for purpose' arises given your ASM comment.

Frameworks change and get in the way when a new version is released. It is most annoying. The underlying WebGL changes much more slowly, and in a much more controlled way with a focus on backward compatibility. So I do the same whenever I can and ignore frameworks to get rid of a dependency. The boilerplate overhead can be encapsulated very well into homemade JS functions that only change when I change them. And JS + WebGL is not really low-level.
Absolutely the best use of web tech I have seen. The best way to put it, is magic.

Great great great work!!!

i'm continuously astounded by how accurate the Omega Aqua Terra is. it will be within 90s over a 30 day period after 4 years of daily use with no servicing. the fact that something mechanical and so tiny operating at 3.5hz can do this is mind blowing to me.

it has a cool [8800] co-axial escapement: https://www.kapoorwatch.com/blogs/through-the-scope-the-omeg...

If you want absurd accuracy in a watch powered by mechanical energy (without just resorting to a battery-powered quartz), look into Grand Seiko's spring drive. It's super interesting technology, and the result is a smoothly sweeping second hand (as in it's actually continuous, not merely a higher number of beats per second).
yep, i've considered that one; insane engineering for sure. but the watch's aesthetics don't do it for me. also, it does feel a bit like cheating ;), if an EMP were to go off, i dont think the Spring Drive would come out okay like a purely mechanical watch would.

another crazy one is Zenith's all-silicon oscillator:

https://masterhorologer.com/2017/09/14/zenith-defy-lab-the-w...

https://monochrome-watches.com/zenith-defy-lab-revolutionary...

To be clear, there are literally hundreds of different models of Grand Seiko watches that are powered by spring drive that have been produced over the past two decades plus, with wildly varying looks across the range. It's not just one watch I'm talking about here.
i probably would not get a watch model from two decades ago, let's limit it to maybe past 5yrs.

most (all?) that i've seen have a power reserve gauge. if it's a daily wearer, that needle will be pegged to max and basically useless clutter. complications for their own sake are not my cup of tea.

most (all?) that have a date function have the extra-wide single digits, which i'm not a fan of.

(i could go on)

i know it's not one model, but there's certainly similar design language to them (as there should be, perhaps), likely due to the geometry of the movement itself. i havent seen anything wildly varying, as you say.

Ha! I followed a rabbit hole and found this gem : Listen to how 3Hz sounds like. It's hypnotic https://www.omegawatches.com/en-au/watch-omega-speedmaster-m...

(Search for 3 Hz and click the Audio icon)

i put on some decent headphones to listen to this and can tell you that at least on my 8800 movement (and the common ETA 2824-2 in another watch i have), this clip misses some important nuance.

both movements have an audible "twang" of the hairspring at each tick -- you can hear it in this video: https://www.youtube.com/watch?v=lNYCujza8JU. the sound is somewhat different for each watch, since the 8800 has a Si14 hairspring and the cheaper 2824-2 is metal. if you want another rabbit hole: [1]

what's interesting is that if you leave the watches on a hard flat surface, like a table or nightstand, the entire surface amplifies this twang, so you can hear it from several feet away.

[1] https://watch-insider.com/reportages/omega-defeats-mechanica...

Interestingly, I met George Daniels a number of times (creator of the co-axial escapement). He asked me to record a video on my phone of a model he created to illustrate how the escapement works:

https://www.youtube.com/watch?v=PVhSQ_Azkr8

Not the best video you'll find on it now, but he was a fascinating man.

Every post from this site is gold. I've learned so much from it.
This guy deserves way more patreons than he has: https://www.patreon.com/ciechanowski
Well, he just got one more. What an absolute treasure.
two more.
three more :)
...and a practical example of a race condition :-)
Three. And I am sure many more to come. Quality stuff.
(comment deleted)
Signed up to HN just to say that I signed up to Patreon to support him. Thanks for sharing.
Stunning visuals and interactivity!