Lost One's Chiral
This is a behind-the-scenes story I wrote after developing “Lost One’s Chiral: Automatically solves ‘chiral carbon CAPTCHA’.”
The project is now publicly available at https://lostone.catme0w.org/en
It’s both a CAPTCHA solver and an experimental art that discusses gatekeeping and filtering.
All quoted messages are paraphrased and anonymized.
“Can the group police step in? 😅” he wrote in a private message.
【In Chinese internet culture, 😅 is often considered as offensive and sarcastic, rather than lighthearted.】
“Has the group police given up on their ideals? Weren’t you so righteous when you lectured me? 😅”
An old friend turned enemy. The notification came. I opened the chat. All our previous conversations had vanished, leaving only these two messages.
I didn’t reply. A few days earlier, he had flown into a rage over my arguments about “chiral carbon CAPTCHAs” and deleted all my discussion messages.
A few days later, he accused me of “cyberbullying” him. Then, I received messages like this.
I never insulted him once.
I only pointed out—“I speak for those filtered out by chiral carbon: middle schoolers, high schoolers who don’t take chemistry, people who’ve forgotten it after college or work.”
First Encounter
“Welcome catme0w. This group has anti-spam CAPTCHA enabled. Please select all regions containing chiral carbon atoms (aka asymmetric carbon atoms) in 600 seconds to complete the CAPTCHA. Join request will be automatically approved after the CAPTCHA is completed in time, vice versa [sic].”
Screw you. I thought to myself.

Real footage.
I stared at the molecular structure on screen. A carbon atom bonded to four different groups—that’s the definition of chiral carbon, I remembered that much. But what range constitutes a “group”? I had no idea.
I wasn’t a high school student anymore. These trivial details had long been returned to my teachers.
Learn it now? Impossible. It had been so long, I couldn’t even remember what this group was about, but I was certain it had nothing to do with chemistry.
This was just a compliance test.
I closed the application window.
Years later, I was chatting with friends in a small group. Somehow the conversation turned to Telegram verification bots.
“What CAPTCHA best blocks spam?” someone asked.
Someone suggested: “Chiral carbon verification!”
Three “typing…” indicators appeared instantly in the status bar.
“I forgot chemistry three months after stopping.”
“I sincerely believe this thing shows a lack of basic respect for people.”
He was immediately attacked by everyone else. Everyone hated it.
I shared my experience: “When I encounter this, I walk away. I don’t indulge it.”
A graduate student with a bioinformatics background explained that its non-standard rendering completely loses three-dimensional topological structures, producing images unsolvable even by humans.
A high school student was agitated: “Why should my ability to discuss computers depend on my chemistry skills?”
Everyone’s perspectives differed, but they converged on one voice:
“Absolutely no!”
Someone posted a screenshot to the chat.
It was a group description:
“Complaining about entry verification = instant ban”
Obviously, this group used chiral carbon CAPTCHAs.
The discussion was already tense. That screenshot was like a spark, igniting our accumulated frustration.
“Can we make a bot specifically for chiral carbon problems?” someone asked.
“I have an idea,” I said.
I didn’t think much about it then. I just felt we had to eliminate this thing, by any means—it was simply wrong.
From a simple, pure sense of justice.
The graduate student flipped the table first. As someone who’d actually studied organic chemistry and spent years in labs, he immediately proposed the basic architecture: extract molecular formulas from images, normalize and redraw them with RDKit, then identify chiral carbons.
“Lucky my undergraduate project was molecular docking,” he said.
Dozens of minutes later, he sent the first prototype using OSRA for image recognition.
“My part’s done,” he said, “but there’s much more to do.”
OSRA struggled with non-standard rendering, and RDKit’s output differed significantly from the original CAPTCHAs. Full automation was far off.
“Maybe we can use some attention,” someone suggested.
I took over the project.
Though we each had different reasons—some for the technical challenge, some to blow off steam, some who simply found the CAPTCHA unfair—we still came together to collaborate on our most controversial project yet.
Two weeks later
One morning, I logged into the server as usual after waking up.
The training script had exited.
No “Training complete,” no celebratory fireworks. Just a blinking cursor and the shell prompt.
The first model capable of reliably recognizing chiral carbon CAPTCHAs was born.
I stared at the terminal, suddenly unsure how to react.
We actually did it.

Real footage.
Conflict
As model training neared completion, we began work beyond technology: surveying public attitudes toward this CAPTCHA and writing copy for our final product.
I went to several groups to ask people’s opinions. From large communities, I learned they generally opposed this CAPTCHA.
Good. I thought. My base is still strong.
Among the many groups I surveyed, one was special. Only a few dozen members—a private group belonging to a good friend.
They had used chiral carbon CAPTCHAs before, but stopped. Using such a CAPTCHA in a small, casual fan group was unusual, so I was curious about their attitudes and why they ultimately abandoned it.
With mixed feelings, I posted an image—an unsolvable chiral carbon CAPTCHA—and asked their opinion.
Soon, several members began replying. Their attitudes matched what I’d seen elsewhere—general rejection.
“I didn’t take chemistry in high school”
“Such esoteric CAPTCHAs shouldn’t exist”
I continued the conversation, and the topic gradually drifted, from the bot’s flawed logic and rendering, to the significance of chiral carbon in the high school chemistry curriculum, to today’s 50-50 high school enrollment split, even the 40-60 split…
Safe landing—I wasn’t a pariah. Or so I thought.
Then the group owner appeared.
The chat window flashed.
Dozens of messages, hours of discussion, all gone. From the first message about chiral carbon to the end of the conversation about high school enrollment—everything vanished.
I stared at the blank chat interface, my mind still reeling.
Not because we said anything offensive. Simply because we questioned the chiral carbon CAPTCHA.
The group owner sent a message:
“NeoAuthBot’s purpose is group verification, not for you to crack.”
I tried to explain that our intention wasn’t to target him, but that the CAPTCHA itself was problematic—
“I chose chiral carbon verification based on long-term usage in the WA and QA large groups. QA’s communication environment speaks for itself. Facts prove Neo has a positive effect in filtering group members.”
The sudden attack enraged those present. The situation quickly spiraled out of control.
“If you’re dissatisfied, tell me a bot you find acceptable, instead of randomly dropping your research results here”
“Your criticism is indeed very correct, but middle school civics teaches that criticism must be constructive.”
“nmbot can’t effectively block, Rose has PM issues, recaptcha+miniapp verification blocks TgX users…”
“It’s meant to filter human-controlled spam bots, so button clicks, arithmetic, and image verification are useless”
Other verifications are useless?
I carefully recalled something I’d said a year ago, and searching some keywords, found a code snippet I’d casually sent a friend. Twenty lines. Twenty lines of code I’d written a year ago:
import cv2
import numpy as np
img = cv2.imread(r"C:\Users\CatMe0w\Downloads\photo_2024-09-08_04-52-18.jpg")
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
template = cv2.imread('template_asterisk.png', cv2.IMREAD_GRAYSCALE)
h, w = template.shape
rects = []
for s in np.linspace(1.5, 0.5, 15)[::-1]:
resized = cv2.resize(gray, (0, 0), fx=s, fy=s)
if resized.shape[0] < h or resized.shape[1] < w:
continue
for pt in zip(*np.where(cv2.matchTemplate(resized, template, cv2.TM_CCOEFF_NORMED) >= 0.7)):
rects.append([int(pt[1]/s), int(pt[0]/s), int(w/s), int(h/s)])
locs, _ = cv2.groupRectangles(rects, 1, 0.3)
rows, cols = list("123"), list("ABCDE")
h_step, w_step = img.shape[0] // len(rows), img.shape[1] // len(cols)
regions = sorted({
cols[min((x + rw // 2) // w_step, len(cols) - 1)] + \
rows[min((y + rh // 2) // h_step, len(rows) - 1)]
for (x, y, rw, rh) in locs
})
regions
(Download template_asterisk.png)
These twenty lines could already accurately recognize default-configured chiral carbon CAPTCHAs—the version with asterisk markers.
It’s more fragile than traditional CAPTCHAs.
He kept typing, but I’d lost interest in his sophistry:
“Then pixiv.pictures uses calculus to gatekeep NSFW access—depriving people of sexual desire. Isn’t that more unreasonable?”
“Can we say that pixiv.pictures’ verification system deprives those who don’t know calculus of the right to view erotic images? Or that it erects a barrier between those who know calculus and those who don’t? Of course not.”
My collaborator had had enough.
“Because QAuxiliary’s verification had asterisks. Only here were they removed, and despite knowing the difficulty exceeds human capability, it’s still euphemistically called ‘high schoolers can do it.’ I’m a graduate student who actually studied organic chemistry and I find it headache-inducing. If you insist on being an ostrich, ignoring the problems of missing asterisks and improper handling of hydrogen and 3D carbon topology, then there’s no point discussing this.”

The conversation went on, but the topic was already gone.
My collaborator mentioned that he was busy with his thesis and the upcoming medical licensing exam, and didn’t have more time to continue.
This was offering him a graceful exit—we all had our own lives to return to.
But the group owner—that high schooler who was, at that very moment, playing on his phone during competition class—his tone quietly shifted. He stopped defending himself and began evaluating a path he had never set foot on.
“Since you two are having such a hard time with the licensing exam, maybe I should just go for a 5+3 program or the eight-year track.”
He wasn’t talking about the CAPTCHAs. He was talking about the real, heavy things we were actually carrying.
Let me translate what he really meant:
“Since you can’t handle it, why not take an even more impossible path? Not that you ever could. But I could. And it would be easy for me.”
I was stunned beyond words. How could someone be this cruel?
I had thought that if I could prove it technically infeasible, prove it couldn’t stop bots, the problem would be solved.
A friend who observed the whole thing explained to me:
“You’ve just destroyed the ego of someone; which appears to be the most important for teenagers.”
At that moment, logic no longer mattered.
The reasons kept changing, but one thing remained constant: they must make it reasonable.
I scrolled up to see what he’d said at the beginning.
Then I saw that line.
Right at the start of this argument, in the first message after he deleted all the discussion:
“Facts prove Neo has a positive effect in filtering group members”
Not “blocking spam.”
“Filtering group members.”
I scrolled back through the chat history, looking for more information. Then I remembered—some time ago, before he’d stopped using chiral carbon CAPTCHAs, I’d mentioned this verification to him.
What had he said then?
“No poor students in my group, all good kids”
“Long ago, before you knew me, idiots got in”
What counts as a poor student? What counts as an idiot? What are the criteria? If someone isn’t as smart as him, does that mean they don’t deserve respect?
Looking back at the entire argument, he talked about “blocking spam bots,” but what he really cared about was never the bots.
Of course.
In the end, I left only one sentence: “I speak for those filtered out by chiral carbon: middle schoolers, high schoolers who don’t take chemistry, people who’ve forgotten it after college or work.”
I stopped contacting him, but not long after the model’s public release, I received those messages.
“Weren’t you so righteous when you lectured me? 😅”
The Bigger Picture
I’ve been thinking about a question.
Why chiral carbon?
If it were oracle bone script, musical notation, or obscure dialects, most people would immediately find it unfair.
But when it’s a chemistry problem, people instinctively accept it.
Even those who can’t solve it themselves.
This requires some context.
China’s gaokao is a one-time, nationwide exam. In your second year of high school, you must choose liberal arts or sciences—a choice that determines what you study for the next three or four years.
Chiral carbon is a science chemistry topic. Chose liberal arts? You won’t learn it. Went to vocational school? You also won’t learn it.
But this exam’s influence extends far beyond the test itself. It shapes a unique social psychology.
I once talked with a friend from a highly competitive region—27% undergraduate admission rate, 30-70 high school enrollment split. “Being in the top few in high school basically means you’re above ten thousand people,” he said.
In his high school, those top students had a special way of talking to classmates—when others tried to chat, they’d look down their noses and say coldly: “I need to study.”
Not “I’m rather busy right now.” But “I need to study.”
The implication: I’m not like you—dividing people into hierarchies through test scores, making this hierarchy seem legitimate, natural, needing no explanation.
“I score better than you” doesn’t just mean “I performed better on this test”—it means “I’m smarter, more hardworking, more valuable. I have the right to look down on you.”
When these people leave school and enter online spaces, they always reconstruct this hierarchy, consciously or not. They need a way to distinguish “us” from “them”—something that appears objective, fair, and unbiased.
Then they found chiral carbon CAPTCHAs.
This is why chiral carbon is accepted, but musical notation wouldn’t be.
Someone might say: “You can spend a few minutes learning it.”
But they wouldn’t use musical notation for CAPTCHAs themselves.
The issue isn’t “can you learn it.” The issue is: why does a chemistry problem seem reasonable while music theory seems absurd?
Because chemistry problems borrow the gaokao’s authority.
“This is a gaokao question” in this context is saying: “This is content you should master.” Then, “this is a legitimate standard for distinguishing people.”
The brilliance of chiral carbon CAPTCHAs is that they appear to test learning ability, but actually just recreate that school-based sense of superiority—“I know, you don’t.”
More insidiously, this filtering appears neutral, technical, objective.
No one says “we don’t welcome certain people.” They just set up a “CAPTCHA,” a “high school knowledge point.” If you can’t pass, that’s your problem—you can “spend a few minutes learning.”
But if it’s really “something you can learn in a few minutes,” why not use musical notation? Why not oracle bone script?
Because then this filtering mechanism would lose its veneer of legitimacy.
I’m not here to criticize the gaokao itself. The gaokao has its problems, but that’s not what this article is about.
What I’m saying is: when the authority of the gaokao seeps from schools into everyday social interactions, becoming a source of superiority so subtly and naturally—
We need to expose it.
Chiral carbon CAPTCHAs epitomize this abuse.
Ultimate Goal
It took me a long time to understand something.
Some groups need this kind of echo chamber.
Without chiral carbon CAPTCHAs, they’d just create even more malicious filtering mechanisms—perhaps trickier questions, perhaps stranger rituals.
Because what they crave is precisely that kind of echo chamber—a sense of belonging and validation, and that rebellious superiority of “doing what others can’t.”
I can’t change that.
But I realized my goal should be winning over the silent majority.
Those who genuinely believe “chiral carbon CAPTCHAs are just for filtering bots.”
Those who unconsciously accepted the claim that “this CAPTCHA works well.”
Those who haven’t yet recognized the ideological issues behind it.
I don’t care what those cliques do. Let them lock themselves in their echo chambers, keeping each other warm. Just don’t let them loose.
But if this malicious software comes to be unconsciously accepted by the public as “a good option for filtering bots,” if this filtering logic becomes normalized, promoted, and treated as part of the natural order—
That would be very, very bad.
Remember the friend who first suggested “chiral carbon CAPTCHAs” in our group?
He genuinely believed “chiral carbon CAPTCHAs work well.”
Now, I’ve proven they don’t stop bots at all. I showed him the code and model, and he witnessed that argument.
He changed his mind.
“If it can’t filter bots, then it’s not good,” he said.
His response surprised me. Just that it can’t filter bots? I thought.
But at least what I did worked.
A few days later, I saw similar discussions in another group. They’d discovered chiral carbon CAPTCHAs can be easily bypassed.
Someone said: “If chiral carbon doesn’t work, what about calculus problems? Just use even more insane questions.”
Something is wrong. I finally realized where the problem lay:
They’ve missed the point entirely.
The problem isn’t “is it technically feasible,” but forcing people “follow a video step by step” just to pass a CAPTCHA is, by itself, deeply pathological.
My project isn’t just about breaking a CAPTCHA.
It’s about preventing this future.
Preventing this idea from becoming legitimate.
Eliminate chiral carbon CAPTCHAs. Prevent a second chiral carbon CAPTCHA from emerging.
That’s the ultimate goal of this project.
Origins
While writing this article, I traced the origins of chiral carbon CAPTCHAs.
I wanted to know how it evolved from an idea into a widely-used tool.
Then I discovered something.
Chiral carbon CAPTCHAs were never designed to stop bots from the beginning.
They first appeared in QNotified, QAuxiliary’s predecessor, to protect certain “advanced features”—features that could be abused with serious consequences.
The author wanted a barrier. A barrier “not everyone can cross.”
So he chose high school science questions.
The logic was simple: people who can solve this problem should have sufficient rationality and judgment not to abuse these features.
But this logic was flawed from the start.
Middle school student modding communities are precisely one of the most “free,” most emotional, most abuse-prone groups.
This “filtering mechanism” has been counterproductive since day one.
Later, this verification was removed from QNotified but resurrected on Telegram as a group entry bot.
The purpose changed, but the essence didn’t.
From birth, its purpose was filtering.
Never to stop bots.