Hi all, I’ve published a small free plugin (MIT), Proportional Bold, now in the Plugin Manager.
Edit > Proportional Bold → New Master… asks for one number, the target stem ratio. It appends a new master in which every glyph is offset by (ratio − 1)/2 × its own measured stem, using Glyphs’ Offset Curve. The point is CJK. A Regular master already has a stroke hierarchy: in Noto Sans CJK TC the stem of 一 is 82 units and the stem of 灣 is 46. A single Offset Curve value therefore over-inks the dense glyphs.

It gives you a draft master, not a finished weight. I compared it with the designer-drawn Bold of Noto Sans CJK TC. Its mean IoU is the same as one Offset Curve value’s (0.831 vs 0.829, 413 glyphs). What changes is closed counters: 23.8 % vs 28.5 % of 319 CJK ideographs, roughly one in six fewer (run 35598894920). Junctions, stroke spacing and dense glyphs still need hand work. Tiny glyphs such as dots get the font’s median stem.
It is verified on Glyphs 3.5 (3532) and 4.1 (4107). It takes an estimated 13–27 minutes per 65,535 glyphs on a 3-core GitHub Actions runner, varying between runs (runs 35598894920, 35623398619). There is also a command-line version for Windows, macOS and Linux. propbold-compare --report lists every glyph that lost a counter, so you know where to start.
Repository, numbers and logs: GitHub - fanzhixiang777/ProportionalBold · GitHub . Bug reports and questions are welcome here or as GitHub issues.