Kendama

Most toys that carry a line carry a taut one. A kendama string is slack most of the time. What makes the toy behave like a kendama is the instant it stops being slack: an impulsive constraint that annihilates the rate at which its two ends are separating, and — because the string leaves the ball through a hole in its surface, not through its centre — spins the ball while it does it.

The rules here are the Japan Kendama Association's, read from its own regulations. The string and impact physics are not the Association's and are not anybody's: no published source states them, so they are reconstructed and every number is tagged with where it came from.

35%
 

Controls

Move the mouse over the picture, or ←↑↓→, to move the hand; on a touch screen, drag on the picture. Space pulls hard and upward — that is the knee bend and the lift, and it is what launches the ball.
A / D turn the ken. 1 big cup up · 2 small cup up · 3 base cup up · 4 spike up. The buttons under the picture do the same thing — hold them.
Assist blends your hand with a plan the engine solved for this trick. At 100% it plays itself. That is not a recording: it is the same control path, with the blend all the way over.

How it is judged

Two criteria, both taken verbatim from the JKA's judging rules and both applied geometrically rather than by a distance guess:

  • A cup catch — 「玉が正しく皿に接触すること-皿の面の外周がすべて玉に接触すること。」 the entire outer circumference of the cup face must be in contact with the ball. The engine measures the largest deviation of any point of the rim from the ball's surface, so a ball perched on one edge is millimetres out and a proper seat is microns out.
  • A spike catch — 「玉の穴にけん先が完全に入ること。」 the spike must enter the hole completely, which the same rule distinguishes from the spike catching on the rim of the hole first.

級 — the JKA kyu syllabus

Ten grades, 10-kyu down to 1-kyu, transcribed from 別表第1 けん玉道級位認定表 as revised 2017-03-12. Each grade names up to three of the eleven events and how many successes out of a maximum of ten attempts each; the window slides on by one event per grade, so a grade's hardest event is always the one that was optional last time. Moshikame is bracketed — optional, for teaching, with the speed requirement waived — from 6-kyu to 2-kyu, and compulsory only at 1-kyu, where it is 50 repetitions at 135 a minute or better. Between 1-kyu and 1-dan there is a rank the usual descriptions leave out: 準初段, jun-shodan.

Kyu grades may be skipped if you have mastered everything up to one below the grade you sit. Dan grades may not: 「跳び段」, jumping a dan, is not permitted.

The string

Two rigid bodies — the ken and the tama — coupled by one unilateral constraint. The string carries tension and nothing else; it is slack whenever its two anchors are closer together than its length, and the whole of the toy's character is in the instant it stops being slack.

Let n be the unit vector from the ken's string hole A to the ball's string hole E, let rA and rE be those holes' offsets from their bodies' centres of mass, and let

K = 1/mken + 1/mtama + n·( Iken-1(rA×n) × rA ) + n·( Itama-1(rE×n) × rE )

Then an impulse of magnitude j = (1 + e)·vn/K along n, applied to the ken at A and to the tama at E with the opposite sign, leaves the two holes separating at -e times their old rate. With e = 0 — an inextensible string, which a braided kendama string is to within a millimetre — it annihilates that rate exactly.

Three consequences, and one correction

A correction to a common statement. It is often said that the taut-string impulse “annihilates only the velocity component along the string”. That is the statement for a point mass on a string to a fixed point. Here it is not quite right, and the difference is the point of the toy. The impulse changes each body's centre-of-mass velocity only along the string — that part is true. But the quantity it annihilates is the relative radial velocity of the two anchor points, and the ball's anchor is on its surface, a 30 mm lever from its centre. The same impulse that stops the string stretching also spins the ball. Nothing about the toy survives dropping that term: with the string hole treated as passing through the ball's centre, the effective mass at the anchor changes by tens of per cent and the ball never turns at all.

Where this comes from, and where it does not

The impulse law is Baraff's eq. 8-18 (Physically Based Modeling: Rigid Body Simulation, SIGGRAPH '97 course notes) with the string direction taken as the contact normal; its two-dimensional specialisation is Hecker's eq. 9 (Game Developer, March 1997), whose denominator is literally 1/MA + 1/MB + (rA⊥·n)²/IA + (rB⊥·n)²/IB. The reduced-mass form and the energy lost in a restitution impulse are Ruina & Pratap, Introduction to Statics and Dynamics, boxes 13.1 and 13.2.

Two Victorian textbooks work the string-snatch on a rigid body as a set exercise and their published answers are the same formula: Loney gives the impulsive tension on a falling reel of radius a and radius of gyration k as T = m·u·k²/(a² + k²), and Routh works the uniform-disc case to T = ⅓mv. The physics oracle in this build is checked against both of those before it is allowed to say anything about the engine, and it reproduces them exactly.

What the kendama literature does NOT have. Kendama is a standard robot learning benchmark and there are two openly readable papers on it. Neither models the snatch. Shidi Li (arXiv:2003.06751) latches the string permanently slack once the tension reaches zero — “once the tension on the string reduces to zero, we assume it will remain so for the rest of the motion” — and lists the energy lost at that transition as an error source it is “not able to evaluate”. Bujarbaruah, Zheng, Shetty, Sehr and Borrelli (arXiv:2007.09562) treat a taut string during the ball's free fall as a configuration the controller must avoid. So the snatch in this engine comes from general impulsive mechanics, not from the kendama literature, because the kendama literature does not contain it.

The release-speed window, measured

The question this build was made to answer: does the taut-string impulse, plus the geometry of the cups, fix a window of release speeds in which a given catch is possible at all — and is that window wide or narrow, and does its width match how hard the trick actually is?

It is measured, not assumed. For each trick the engine sweeps the strength of the pull, runs the whole simulation, and asks the judge — the JKA criterion, not a proximity test — whether it was a catch. The release is defined physically: of all the moments the string goes slack during an attempt, the one at which the ball is leaving the ken fastest. Everything after it is a flight the hand can no longer reach.

TrickJKA starsCatchesRelease-speed bandWidth
measured live below

Measured over 80 samples per trick from 0.4 to 7.0 m/s of pull, with the rest of each trick's solved plan held fixed. Speeds are the ball's speed relative to the ken at release, in metres per second.

What it showed

A hypothesis this build's own data falsified

Before measuring, the obvious closed form for the window's edges was written down: the ball's apex must lie between the lowest and the highest the receiving surface can be brought, so the release speed is bounded by sqrt(2g·(recvlow - y)) and sqrt(2g·(recvhigh - y)). The model's own successes violate it. Balls reach apexes of 525 to 852 mm where the bound puts the highest reachable receive point at 507 mm. The bound is wrong because its premise is: the hand is confined to a box during the catch, not during the pull, and during the pull it goes wherever the pull sends it. A bound whose own data violates it is not a bound, and it is printed here rather than deleted.

The snatch: a strong association, and a control that refuses the obvious story

The string going taut again after release — the snatch, the thing this engine exists to model — accompanies almost every failure: 22 of 23 failed big-cup attempts, 50 of 52 failed base-cup attempts, and 72 of 72 failed spike attempts had one. Successes often did not: only 23 of 57 big-cup catches involved one.

It would be easy, and wrong, to call that the mechanism. So the engine runs the counterfactual: the same sweep again, with the string removed entirely once the release has happened — physically impossible, and deliberately so. If the snatch were what ends attempts, the failures should turn into catches. Mostly they do not. For the big cup it rescues 7 of 23 failures and breaks 2 of 57 successes — a net gain of five attempts in eighty. For the base cup it rescues 6 and breaks 7: no net gain at all. For the spike it rescues 1 and breaks 6, so switching the string off after release makes the hardest catch harder, because the string is also what brings a straying ball back. The snatch is where failures end up, not mainly what puts them there.

Running that control correctly took two attempts. The first version left the string's position projection in while removing its impulse — an inextensible string that carries no momentum — and reported that switching the string off destroyed every one of the 153 catches and rescued none. That was a statement about the control, not about the string.

48 samples, sliced across frames so the tab stays alive

Three things the geometry decides

1. The cup has a minimum depth, and the rulebook sets it

A ball of radius R resting on a cup rim of radius Rr touches the whole circumference only when its centre is on the cup's axis at height √(R² - Rr²) above the rim plane. Its lowest point is then R - √(R² - Rr²) below that plane. If the cup's floor is nearer than that, the ball lands on the floor and the rim never touches it — and the JKA's own success criterion becomes geometrically impossible to satisfy. The big cup's floor must therefore be more than … below its rim. It is 12 mm, which clears it by under two millimetres.

This is why the cup depth is not a cosmetic number in this model, and why a 10 mm big cup would make 大皿 unjudgeable rather than merely harder. The figures below are recomputed in your browser from the geometry the engine is using.

2. The string hole is at the pole opposite the ana, and two JKA documents force it

Nobody publishes where the string leaves the ball relative to the big hole. It was actively looked for on the Association's site, on the certified maker's site, on GLOKEN's, and in both encyclopaedias; no source states it. But two documents that say nothing about it decide it between them.

And the same construction settles 灯台 without any further assumption: the ken hangs from the string with its cup body uppermost, so its base cup already points down, and the JKA's definition of 灯台 is the mirror image of とめけん — pull the ken vertically up without rotating it and stand it on the ball. Two tricks, one principle, no rotation needed in either.

A later JKA judging Q&A (revised 2025-06-30) narrows the prohibition: what とめけん forbids is horizontal rotation — a まわしとめけん — rather than all rotation. The engine enforces it that way: a yaw limit on the spike catch, and a full-turn requirement on ふりけん, which the same document says must turn the ball exactly one turn toward the performer.

3. The JKA's own two-finger gauge, reproduced

The Association tells beginners how to check a 38 cm string without measuring it: with the ball on the spike, two fingers should fit between the string and the underside of the base cup. That is a statement about this model's geometry that the model was not fitted to. With the documented 380 mm string, the ball seated on the spike and the slack hanging as a catenary, the loop's lowest point comes out … below the kenjiri. Two adult fingers are about 30 to 35 mm.

Masses, which nothing published can check

The ken's mass properties are integrated from its shape on a 0.75 mm grid; the ball's are exact, because its sphere, its bore and its string channel share one axis. The results are …. No source gives a kendama's mass. Not the Association, not the certified maker, not either robotics paper — the only mass figure anywhere was a Shopify shipping weight for a boxed product. So these numbers are derived and cannot be checked against reality, and that is stated rather than dressed up.

What the Japan Kendama Association does and does not publish

A second correction, to a common assumption: “Kendama dimensions are standardised by the JKA and should be documented”. They are not. Every JKA regulation that could hold a dimension table was read — the kyu/dan examination regulation and its annexes, the detailed implementation guidelines, the judging-rule principles, the championship competition and trick-selection rules, the moshikame championship rules, and the dedicated equipment regulation 「公式戦使用けん玉規程」 — and the Association's own media library was searched for a specification document. There is no 認定けん玉規格. The only numeric dimensional requirement in any of them is:

「① けんの長さが15cm 以上であること。」 — the ken must be at least 15 cm long. 公式戦使用けん玉規程, enacted 1978-05-05, last revised 2019-05-10

Everything else in that regulation is qualitative: it must be the certified wooden 16-2 type with its sticker, the ball's hole must keep its original shape, no re-machining, no marks that could help, the string must leave a designated cup-body hole — and 「糸の種類と糸の長さは自由とする」, string type and length are free. The regulation even says in as many words that setting quantitative thresholds for chips and scratches is extremely difficult and that the judgement is therefore a panel's.

So the dimensions in this model come from the certified manufacturer (山形工房, Yamagata Koubou of Nagai City, the Association's designated factory) and from GLOKEN's shop listing for the certified 大空 — not from the governing body. They are tagged accordingly.

One specification the Association used to have, it deleted: the すべり角, the ball's slip angle, was standardised precisely so that 灯台 would be neither impossible nor trivially stable — 「灯台が止まりすぎるけん玉も競技としてのけん玉の面白みを半減する」 — and that regulation has been removed, along with the former bans on patterning the ball and painting the ken. There is no longer a controlled friction specification for the balance tricks.

One design fact the Association does publish, and it is exactly the off-centre attachment the impulse law above needs: the cup body's string hole is deliberately offset from the ken's central axis, toward the small-cup side (「穴の位置がけんの中軸から小皿側に少しずれている」), so that a thrown ken turns in the plane containing the two side cups. English Wikipedia independently dates the change to the F16-2 of 2001. The magnitude of the offset is published nowhere; this model uses 4 mm and says so.

Every number, and where it came from

Five tags, used strictly. DOCUMENTED: a source that was opened and read states this value for a kendama. MEASURED: a source that was opened and read states it as a measurement of something else — a material property, a coefficient — that is applied here. DERIVED: computed from other entries by arithmetic or mechanics, with no new information added. CALIBRATED: chosen so the model reproduces a documented figure. RECONSTRUCTED: it could not be sourced; it is a choice, and the page says so.

An entry marked qualified is documented, but of something adjacent — a species average rather than this kendama's wood, a different model's hole, a reference site rather than the governing body. Counting those as though they were measurements of the toy would be the exact dishonesty this table exists to prevent, so they are counted separately.

Limits, gaps, and things that did not work

The published trick definitions did not decide these

Sources that could not be opened

What this build could not do

Bugs the harnesses caught, listed because they are the point of having them

How this was checked

Four instruments, each blind to something the others see.

Twenty-nine of them escaped on a first pass, and every one of those located a defect in the tests rather than an acceptable mutant. A mutant that deleted the restitution factor (1 + e) was invisible because the shipped string restitution is zero, where that factor is one — so the audit now also runs at e = 0.3. A mutant that let contacts pull was invisible because nothing checked the sign of an accumulated normal impulse. A mutant that removed friction survived a test that dropped a ball sideways into a cup, because a ball rolling over a rim picks up spin either way; it does not survive a ball spun about the contact. And several judge mutants survived because the boundary tests re-wrote the engine's own condition instead of calling the judge, so they could not possibly disagree with it.

About, and credit where it is due

This is an independent reimplementation, and it is not endorsed by or affiliated with anyone named here. Kendama in its modern form descends from the 日月ボール “sun and moon ball”, devised in 1918 by 江草濱次 (Hamaji Ekusa) of Kure, Hiroshima, filed on 1 October 1918 and registered as a utility model on 14 May 1919 — the date Japan now marks as Kendama Day. It was the first to combine the two previously exclusive kinds of play, spearing the ball and catching it in a cup, in one tool.

The Japan Kendama Association (公益社団法人日本けん玉協会) was founded in 1975 by the children's author 藤原一生 (Issei Fujiwara) in Tanashi, Tokyo, and held the first All-Japan Kendama-dō Championship in 1979. The competition kendama descends from the S-type designed by 新間英雄 (Hideo Shinma) in 1975; the F-type of 1978 added the twin cup-body string holes, and the F16-2 of 2001 moved that hole off the axis. The certified model is made by 山形工房 (Yamagata Koubou) in Nagai City, Yamagata.

What differs from the real thing, plainly: this is a side view in a single plane of control, played with a mouse rather than two hands, a body and knees; the ken is a bounded servo rather than a person's grip; the string is inextensible with zero restitution rather than braided cord; the restitution of wood on wood is borrowed from a measurement of wood pellets; the ball's mass, the hole's size and depth, the spike's length, the cup body's profile and the position of the string hole on the ball are all reconstructed, because nobody publishes them. Eleven of the Association's kyu events are implemented; the dan syllabus is shipped as data and displayed, not played.

Sources, revisions and licences are listed in CREDITS.txt; the code is under the MIT licence. A machine-readable summary is at llms.txt.