EN

Radically

A component-based CJK character search engine

Component freq.¹
Use web worker²
Loading...
Loading...
No component selected
No results
Loading...
No component selected

Updates & Stats

Current Version: 0.1.1
The Service Worker is...
Initialized.
Successfully installed. Follow these instructions to add to home screen if you haven't already.
Unicode characters indexed.
PUA characters indexed.
Dataset generated on Thu Apr 03 2025 19:13:52 GMT+0000.
This compiled version is licensed under the GNU General Public License (GPL), version 2 or later. Scroll to the bottom to see dependencies.

Get in touch

Report issues, request new features, understand the inner workings of Radically, and join the discussion on GitHub.
Come chat about anything CJK-related on the Discord.
Or the Matrix room.
Created and maintained by Bryan Kok. GitHub

Usage

It is assumed that you are familiar with any CJK input method and are able to input most of the basic characters, e.g. the default, indecomposible, colored characters in the Components section, such as 日月火水木金土.
Let us search for U+6EEB 滫, which can be decomposed into the water radical (氵), person radical (亻), 夂 or 攵, and 月:
❶ Search for 水人 in the Components section. You should see (abbreviated):
The Components section retrieves various semantically and orthographically related characters, including all radicals and their conventional names - e.g. 扌 from 手 and 疒 from 病. Double press 氵 and 亻 to add them to the "Components" input box in the Search section.
❷ Enter 月 into the "Components" input box in the Search section. Pressing the search button at this point will lead to the Results page containing our desired character; the combination of 氵, 亻, and 月 is more than sufficient to narrow it down.
❸ For instructional purposes, let's decompose 冬, a far more common character, to obtain its upper component, 夂. Return to the Components section, add 冬, and press again. The following block will be added:
Double press 夂 to add to the Search section, and press Search. The results should be narrowed down even further.
❹ If you happen to know that 修, a more common character, is a phonetic loan (假借) of the component on the right, 脩, you may use the related character finding capability of the Components section to obtain 脩.
The button in the lower pane is useful for recursively decomposing a character. 昚, an ancient character, can be obtained from the common 瞭 or 遼 by first decomposing it into 尞, pressing said button with 尞 selected, then pressing once again. 瞭's IDS is defined as ⿰目尞; the characters in the immediate IDS of a character are included in its result block.
Give retrieving using the more common a try.
What constitutes a variant may be found on GitHub. The nature of the variant is indicated in the lower pane of a selected character, e.g. JA-Kakikae • JA-Joyo • KO-Basic • ZH-Traditional.
A character with any of the following background colors is used in...
Simplified Chinese
Japanese, incl. Wasei Kanji, Shinjitai, & Kyujitai
Korean, incl. Gukja, Basic Hanja, and preferred Hanja forms (e.g. 曺 aka 曹)
Zhuang
Traditional Chinese

Footnotes

❶ The IDCs in any of the IDSes of a resulting character must appear in the relative order entered.
For instance, ⿹⿱ matches 或 (口一), 貳 (二貝), and 戠 (⿶戈亠丷日). alone matches 画 (⿱一凵田).
❷ The number of occurrences of each unique component in a resulting character ≥ the number of times that component is entered in the input box, if turned on.
For instance, 人人人 matches 傘 (4x 人), 众 (3x 人), and 齒 (4x 人), and not 从 (2x 人), 纵 (2x 人), or 齿 (1x 人). 口土土 matches 哇 (1x 口, 2x 土), and not 吐 (1x 口, 1x 土).
❸ Turn this on if your device is unresponsive while searching. As of the time of writing, nearly 99,000 characters are indexed. For efficient retrieval, the data is organized as a directed graph, i.e.
人 ➞ 内 个 亥 亼 ...
从 ➞ 丛 两 众 來 從...
Thus, a complete search algorithm must be used to transitively obtain all characters. In my brief tests;
一 (as can be expected) is likely the worst-case single-character query: ~54,500 results, with ~64800 edges (pairs of characters) traversed; ~300 ms elapsed on a Snapdragon 425 phone. This process has to be repeated for each unique character entered.
一丨人 consumes ~500-600 ms, traversing around 116,500 edges.
The search will be offloaded to a web worker if turned on, to avoid the fairly unlikely situation where the UI thread is blocked for a long time. Very few characters have normalized IDSes composed of more than 5 or 6 unique characters, even in contrived situations such as U+291D2 𩇒, the infamous , or biang.

Acknowledgements

The data used in this compiled version comes from:
CHISE IDS Database - IDS strings, GPLv2 licensed
Kanji Database Project - IDS strings (partially based on CHISE, thus GPLv2) and variants data