Model Comparison
Model Editorial Structural Class Conf SETL Theme
@cf/meta/llama-3.3-70b-instruct-fp8-fast lite 0.00 ND Neutral 0.80 0.00 Technical Access
@cf/meta/llama-4-scout-17b-16e-instruct lite 0.00 ND Neutral 0.00 0.00
deepseek/deepseek-v3.2-20251201 -0.01 -0.08 Neutral 0.10 Digital Access
claude-haiku-4-5-20251001 +0.47 +0.01 Neutral 0.18 0.34 Information Access & Accessibility
meta-llama/llama-3.3-70b-instruct:free ND ND
Section @cf/meta/llama-3.3-70b-instruct-fp8-fast lite @cf/meta/llama-4-scout-17b-16e-instruct lite deepseek/deepseek-v3.2-20251201 claude-haiku-4-5-20251001 meta-llama/llama-3.3-70b-instruct:free
Preamble ND ND ND ND ND
Article 1 ND ND ND ND ND
Article 2 ND ND ND ND ND
Article 3 ND ND ND ND ND
Article 4 ND ND ND ND ND
Article 5 ND ND ND ND ND
Article 6 ND ND ND ND ND
Article 7 ND ND ND ND ND
Article 8 ND ND ND ND ND
Article 9 ND ND ND ND ND
Article 10 ND ND ND ND ND
Article 11 ND ND ND ND ND
Article 12 ND ND ND ND ND
Article 13 ND ND ND ND ND
Article 14 ND ND ND ND ND
Article 15 ND ND ND ND ND
Article 16 ND ND ND ND ND
Article 17 ND ND ND ND ND
Article 18 ND ND ND ND ND
Article 19 ND ND ND 0.61 ND
Article 20 ND ND ND ND ND
Article 21 ND ND ND ND ND
Article 22 ND ND ND ND ND
Article 23 ND ND ND ND ND
Article 24 ND ND ND ND ND
Article 25 ND ND ND ND ND
Article 26 ND ND ND ND ND
Article 27 ND ND ND 0.39 ND
Article 28 ND ND ND ND ND
Article 29 ND ND ND ND ND
Article 30 ND ND ND ND ND
+0.47 Topological Naming Problem (wiki.freecad.org S:+0.23 )
73 points by tripdout 9 days ago | 32 comments on HN | Moderate positive Landing Page · v3.7 · 2026-02-26 04:31:46 0
Summary Information Access & Accessibility Acknowledges
This page is a proof-of-work verification gateway protecting a FreeCAD wiki resource from aggressive web scraping. The administrator's explanation advocates for universal information access and frames the anti-scraping measure as protective of shared resources, aligning with Article 19 (free expression) and Article 27 (scientific commons) values. However, the implementation creates significant accessibility barriers, particularly disadvantaging users with disabilities or privacy-conscious tool usage (JShelter incompatibility), undermining Article 2 (non-discrimination) and Article 25 (adequate standard of living) protections.
Article Heatmap
Preamble: ND — Preamble Preamble: No Data — Preamble P Article 1: ND — Freedom, Equality, Brotherhood Article 1: No Data — Freedom, Equality, Brotherhood 1 Article 2: ND — Non-Discrimination Article 2: No Data — Non-Discrimination 2 Article 3: ND — Life, Liberty, Security Article 3: No Data — Life, Liberty, Security 3 Article 4: ND — No Slavery Article 4: No Data — No Slavery 4 Article 5: ND — No Torture Article 5: No Data — No Torture 5 Article 6: ND — Legal Personhood Article 6: No Data — Legal Personhood 6 Article 7: ND — Equality Before Law Article 7: No Data — Equality Before Law 7 Article 8: ND — Right to Remedy Article 8: No Data — Right to Remedy 8 Article 9: ND — No Arbitrary Detention Article 9: No Data — No Arbitrary Detention 9 Article 10: ND — Fair Hearing Article 10: No Data — Fair Hearing 10 Article 11: ND — Presumption of Innocence Article 11: No Data — Presumption of Innocence 11 Article 12: ND — Privacy Article 12: No Data — Privacy 12 Article 13: ND — Freedom of Movement Article 13: No Data — Freedom of Movement 13 Article 14: ND — Asylum Article 14: No Data — Asylum 14 Article 15: ND — Nationality Article 15: No Data — Nationality 15 Article 16: ND — Marriage & Family Article 16: No Data — Marriage & Family 16 Article 17: ND — Property Article 17: No Data — Property 17 Article 18: ND — Freedom of Thought Article 18: No Data — Freedom of Thought 18 Article 19: +0.61 — Freedom of Expression 19 Article 20: ND — Assembly & Association Article 20: No Data — Assembly & Association 20 Article 21: ND — Political Participation Article 21: No Data — Political Participation 21 Article 22: ND — Social Security Article 22: No Data — Social Security 22 Article 23: ND — Work & Equal Pay Article 23: No Data — Work & Equal Pay 23 Article 24: ND — Rest & Leisure Article 24: No Data — Rest & Leisure 24 Article 25: ND — Standard of Living Article 25: No Data — Standard of Living 25 Article 26: ND — Education Article 26: No Data — Education 26 Article 27: +0.39 — Cultural Participation 27 Article 28: ND — Social & International Order Article 28: No Data — Social & International Order 28 Article 29: ND — Duties to Community Article 29: No Data — Duties to Community 29 Article 30: ND — No Destruction of Rights Article 30: No Data — No Destruction of Rights 30
Negative Neutral Positive No Data
Aggregates
Editorial Mean +0.47 Structural Mean +0.23
Weighted Mean +0.50 Unweighted Mean +0.50
Max +0.61 Article 19 Min +0.39 Article 27
Signal 2 No Data 29
Volatility 0.11 (Medium)
Negative 0 Channels E: 0.6 S: 0.4
SETL +0.34 Editorial-dominant
FW Ratio 52% 17 facts · 16 inferences
Evidence 70% coverage
3H 4M 1L
Theme Radar
Foundation Security Legal Privacy & Movement Personal Expression Economic & Social Cultural Order & Duties Foundation: 0.00 (0 articles) Security: 0.00 (0 articles) Legal: 0.00 (0 articles) Privacy & Movement: 0.00 (0 articles) Personal: 0.00 (0 articles) Expression: 0.61 (1 articles) Economic & Social: 0.00 (0 articles) Cultural: 0.39 (1 articles) Order & Duties: 0.00 (0 articles)
HN Discussion 4 top-level · 8 replies
lgeorget 2026-02-25 16:47 UTC link
I learned about it the hard way, ahah. Now I create intermediary planes for all distances and I extrude planes always with respect to those.
groos 2026-02-25 16:59 UTC link
It's what caused me to move away from FreeCad to OnShape. Never had an issue in OnShape but got hit with it every time in FreeCad. The sad thing is that there was a fork for a long time which had addressed this problem, and added other nice enhancements as well, but they never merged that work. I guess every org has political problems and FreeCad is no exception.
MoonWalk 2026-02-25 20:24 UTC link
Unless I missed it, the article doesn't answer the first question you'd ask: Why don't they just generate unique IDs for everything and use those internally, instead of names that get changed all the time?
phkahler 2026-02-25 20:55 UTC link
Solvespace has a fairly robust solution to this problem - for the cases that it handles. It does not create accessible edges for things like the intersection of surfaces, which won't be a big deal until we have a chamfer/fillet tool where you might want to modify those edges. But change an underlying sketch all you want and all geometry built from it will remain intact except for stuff built on something you delete.

IIRC the FreeCAD solution tends to create names of ever-increasing length as you continue building.

shadowpho 2026-02-25 16:55 UTC link
I keep making the same mistake. How do you make intermediary planes?
embedding-shape 2026-02-25 17:03 UTC link
How does OnShape handle that problem? The linked page seems to make the case that most CAD suffers from this, others just "hide" it better;

> This problem is not unique to FreeCAD. It is generally present in CAD software, but most other CAD software has heuristics to reduce the impact of the problem on users.

hommelix 2026-02-25 17:13 UTC link
The wiki page explains that as from Freecad 1.0, the work done by Realthunder in the topological naming problem has been merged into Freecad. Not that everything is solved. Just to mention that the work of Real thunder was not lost.
Robotbeat 2026-02-25 17:13 UTC link
This isn’t accurate. FreeCAD merged the main changes from that fork (RealThunder) to fix (well, mitigate) the problem. That’s the big thing with 1.0.

Although… as others have noted, this is a problem with basically all CAD packages, as on a fundamental level, it depends on user design intent. Just some have enough bandaids that it’s more rare.

mft_ 2026-02-25 17:21 UTC link
I’ve experienced similar problems (not totally sure if they were exactly the “topological naming problem” but certainly similar from the description) in Solidworks many times. Not usually a major problem - just a reworking or removal / re-adding of some features needed.

I’ve not encountered the same issue in FreeCAD 1.1 (to which I’ve transitioned recently). There are of course other frustrating niggles in FreeCAD, but not this one (yet).

mitthrowaway2 2026-02-25 17:31 UTC link
I had the same experience, but instead of moving away from FreeCAD to OnShape, I moved to the fork that you mentioned, by RealThunder. Works great! Eventually the main branch mostly caught up.
throwup238 2026-02-25 20:34 UTC link
Whether it's unique IDs or names, the problem is the same: topology changes destroy the things you’re identifying. When you have a box and you assign ID face_007 (or a generated unique ID) to its top face, that works fine until you fillet an edge adjacent to that face. Now the kernel has to recompute the geometry and depending on the operation, face_007 might still exist in a different shape, might split into multiple faces, or be destroyed completely.

The geometric kernel is doing boundary representation operations so when you do a boolean or a fillet, it doesn’t “edit” existing faces, it computes an entirely new b-rep from scratch. The old faces, edges, and vertices are gone and new ones are created to replace then. There’s nothing to hang a persistent ID on because the entities themselves are ephemeral.

There are solutions to the problem but they all break down eventually. I think freeCAD uses topological tracing and naming schemes so it encodes a face’s identity by how it was created. e.g., “the face generated by the intersection of extrude_1 and the XY plane.” The problem then is that parameter changes or operation insertions in the history can destroy those too, creating a new feature that can’t be easily mapped to the old ones. That’s where all the heuristics come in.

Unique IDs are used internally, but they only last for the lifetime of one evaluation. The hard part is establishing the equivalence between entities across re-evaluations when the topology itself may have changed.

vjvjvjvjghv 2026-02-25 20:37 UTC link
They have that but when you change something, often some elements get deleted and others are added. Now you need to figure out how they relate to the previous elements and that’s very hard it seems.
Editorial Channel
What the content says
+0.50
Article 27 Cultural Participation
High Advocacy Practice
Editorial
+0.50
SETL
+0.39

Administrator advocacy emphasizes protection of 'resources' and 'server accessibility' as shared public goods. Frames scraping as threat to commons. This aligns with protection of cultural and scientific advancement. FreeCAD is explicitly open-source technical knowledge commons.

+0.45
Article 19 Freedom of Expression
High Advocacy Practice
Editorial
+0.45
SETL
+0.30

Administrator explanation advocates for freedom to receive information and criticizes aggressive web scraping as inimical to information access. Frames Anubis as compromise supporting 'universal' access. Explicitly states goal is preventing downtime that makes 'resources inaccessible for everyone.' This is advocacy for universal information access rights.

ND
Preamble Preamble
Medium Practice

No editorial content directly addresses Preamble principles of dignity, justice, or peaceful advancement.

ND
Article 1 Freedom, Equality, Brotherhood
Low Practice

No content addresses equal rights or dignity of all humans.

ND
Article 2 Non-Discrimination
Medium Practice

No editorial content addresses discrimination or protected characteristics.

ND
Article 3 Life, Liberty, Security

No content addresses right to life, liberty, or security of person.

ND
Article 4 No Slavery

No content addresses slavery or forced servitude.

ND
Article 5 No Torture

No content addresses torture or cruel punishment.

ND
Article 6 Legal Personhood

No content addresses right to recognition as person before law.

ND
Article 7 Equality Before Law

No content addresses equal protection before law.

ND
Article 8 Right to Remedy

No content addresses right to remedy by courts.

ND
Article 9 No Arbitrary Detention

No content addresses arbitrary arrest or detention.

ND
Article 10 Fair Hearing

No content addresses fair trial or hearing.

ND
Article 11 Presumption of Innocence

No content addresses criminal law or presumption of innocence.

ND
Article 12 Privacy
High Practice

No editorial content addresses privacy or family.

ND
Article 13 Freedom of Movement
Medium Practice

No editorial content addresses freedom of movement.

ND
Article 14 Asylum

No content addresses asylum or refugee status.

ND
Article 15 Nationality

No content addresses nationality.

ND
Article 16 Marriage & Family

No content addresses marriage or family.

ND
Article 17 Property

No content addresses property ownership.

ND
Article 18 Freedom of Thought

No content addresses freedom of thought or religion.

ND
Article 20 Assembly & Association

No content addresses freedom of assembly or association.

ND
Article 21 Political Participation

No content addresses political participation or voting.

ND
Article 22 Social Security

No content addresses social security or economic rights.

ND
Article 23 Work & Equal Pay

No content addresses work or labor rights.

ND
Article 24 Rest & Leisure

No content addresses rest or leisure.

ND
Article 25 Standard of Living
Medium Practice

No editorial content addresses health, welfare, or adequate standard of living.

ND
Article 26 Education

No content addresses education.

ND
Article 28 Social & International Order

No content addresses social and international order.

ND
Article 29 Duties to Community

No content addresses duties or limitations on rights.

ND
Article 30 No Destruction of Rights

No content addresses preventing destruction of rights.

Structural Channel
What the site does
+0.25
Article 19 Freedom of Expression
High Advocacy Practice
Structural
+0.25
Context Modifier
+0.30
SETL
+0.30

Wiki structure supports free access to technical knowledge (FreeCAD open-source documentation). However, proof-of-work barrier creates friction to information access. DCP modifiers (+0.2 mission, +0.1 ownership, +0.05 access_model) recognize underlying commitment to open knowledge despite the verification gatekeeping.

+0.20
Article 27 Cultural Participation
High Advocacy Practice
Structural
+0.20
Context Modifier
+0.10
SETL
+0.39

Wiki is free access to open-source software documentation and knowledge. Proof-of-work system aims to preserve resource sustainability enabling continued availability. DCP modifiers (+0.2 mission, +0.1 ownership) reflect underlying commitment to open creative/scientific commons despite verification gatekeeping.

ND
Preamble Preamble
Medium Practice

Anubis proof-of-work system implements anti-scraping defense framed as protection for server accessibility. This represents a structural choice balancing access with resource preservation, partially aligned with dignity and peace principles.

ND
Article 1 Freedom, Equality, Brotherhood
Low Practice

Proof-of-work requirement applies uniformly to all users regardless of status, but creates unequal friction for those with limited computational resources or accessibility needs.

ND
Article 2 Non-Discrimination
Medium Practice

Anubis system inadvertently creates discriminatory barriers: users with disabilities requiring accessibility accommodations (JShelter disabled), older devices, or limited bandwidth face greater friction. The explicit note 'disable JShelter or other such plugins' disadvantages privacy and accessibility-focused users.

ND
Article 3 Life, Liberty, Security

No observable structural signals regarding Article 3.

ND
Article 4 No Slavery

No observable structural signals regarding Article 4.

ND
Article 5 No Torture

No observable structural signals regarding Article 5.

ND
Article 6 Legal Personhood

No observable structural signals regarding Article 6.

ND
Article 7 Equality Before Law

No observable structural signals regarding Article 7.

ND
Article 8 Right to Remedy

No observable structural signals regarding Article 8.

ND
Article 9 No Arbitrary Detention

No observable structural signals regarding Article 9.

ND
Article 10 Fair Hearing

No observable structural signals regarding Article 10.

ND
Article 11 Presumption of Innocence

No observable structural signals regarding Article 11.

ND
Article 12 Privacy
High Practice

Anubis collects User-Agent and IP metadata ('X-Real-Ip' and 'User-Agent' fields visible in challenge JSON). This collection is framed as anti-scraping protection rather than surveillance. The system respects baseline privacy by not requiring login or account tracking, and metadata collection is instrumental to bot-detection rather than profiling. DCP modifier (+0.15) recognizes this protective role.

ND
Article 13 Freedom of Movement
Medium Practice

Proof-of-work system creates a computational barrier to accessing content. While not a literal restriction on physical movement, the page is inaccessible without completing the challenge, effectively restricting information access. This is a gatekeeping measure that inhibits free movement through the information space.

ND
Article 14 Asylum

No observable structural signals regarding Article 14.

ND
Article 15 Nationality

No observable structural signals regarding Article 15.

ND
Article 16 Marriage & Family

No observable structural signals regarding Article 16.

ND
Article 17 Property

No observable structural signals regarding Article 17.

ND
Article 18 Freedom of Thought

No observable structural signals regarding Article 18.

ND
Article 20 Assembly & Association

No observable structural signals regarding Article 20.

ND
Article 21 Political Participation

No observable structural signals regarding Article 21.

ND
Article 22 Social Security

No observable structural signals regarding Article 22.

ND
Article 23 Work & Equal Pay

No content addresses work or labor rights.

ND
Article 24 Rest & Leisure

No observable structural signals regarding Article 24.

ND
Article 25 Standard of Living
Medium Practice

Anubis system creates accessibility barrier that impacts users' ability to access information needed for learning and professional development. JShelter incompatibility disadvantages users with accessibility or privacy needs. DCP modifier (-0.2 accessibility) identifies this barrier. Proof-of-work computational load is negligible for most but exclusionary for those with limited device capability or bandwidth.

ND
Article 26 Education

No observable structural signals regarding Article 26.

ND
Article 28 Social & International Order

No observable structural signals regarding Article 28.

ND
Article 29 Duties to Community

No observable structural signals regarding Article 29.

ND
Article 30 No Destruction of Rights

No observable structural signals regarding Article 30.

Supplementary Signals
How this content communicates, beyond directional lean. Learn more
Epistemic Quality
How well-sourced and evidence-based is this content?
0.69 medium claims
Sources
0.6
Evidence
0.7
Uncertainty
0.7
Purpose
0.8
Propaganda Flags
2 manipulative rhetoric techniques found
2 techniques detected
appeal to fear
Administrator describes web scraping as 'the scourge of AI companies aggressively scraping websites' causing 'downtime,' framing it as urgent threat justifying the verification challenge.
loaded language
Use of 'scourge' to describe web scraping behavior creates emotionally charged framing of the threat.
Emotional Tone
Emotional character: positive/negative, intensity, authority
urgent
Valence
-0.3
Arousal
0.6
Dominance
0.5
Transparency
Does the content identify its author and disclose interests?
0.30
✗ Author
More signals: context, framing & audience
Solution Orientation
Does this content offer solutions or only describe problems?
0.42 mixed
Reader Agency
0.3
Stakeholder Voice
Whose perspectives are represented in this content?
0.35 2 perspectives
Speaks: institution
About: individualscorporation
Temporal Framing
Is this content looking backward, at the present, or forward?
present immediate
Geographic Scope
What geographic area does this content cover?
global
Complexity
How accessible is this content to a general audience?
moderate medium jargon general
Longitudinal 783 HN snapshots · 15 evals
+1 0 −1 HN
Audit Trail 35 entries
2026-02-28 14:35 eval_success Lite evaluated: Neutral (0.00) - -
2026-02-28 14:35 eval Evaluated by llama-3.3-70b-wai: 0.00 (Neutral)
reasoning
Technical wiki page
2026-02-26 23:03 eval_success Light evaluated: Neutral (0.00) - -
2026-02-26 23:02 eval Evaluated by llama-4-scout-wai: 0.00 (Neutral)
2026-02-26 20:11 dlq Dead-lettered after 1 attempts: Topological Naming Problem - -
2026-02-26 20:09 rate_limit OpenRouter rate limited (429) model=llama-3.3-70b - -
2026-02-26 20:08 rate_limit OpenRouter rate limited (429) model=llama-3.3-70b - -
2026-02-26 20:07 rate_limit OpenRouter rate limited (429) model=llama-3.3-70b - -
2026-02-26 17:32 dlq Dead-lettered after 1 attempts: Topological Naming Problem - -
2026-02-26 17:29 rate_limit OpenRouter rate limited (429) model=llama-3.3-70b - -
2026-02-26 17:28 rate_limit OpenRouter rate limited (429) model=llama-3.3-70b - -
2026-02-26 17:27 rate_limit OpenRouter rate limited (429) model=llama-3.3-70b - -
2026-02-26 09:00 dlq Dead-lettered after 1 attempts: Topological Naming Problem - -
2026-02-26 08:59 dlq Dead-lettered after 1 attempts: Topological Naming Problem - -
2026-02-26 08:59 dlq Dead-lettered after 1 attempts: Topological Naming Problem - -
2026-02-26 08:59 dlq Dead-lettered after 1 attempts: Topological Naming Problem - -
2026-02-26 08:58 rate_limit OpenRouter rate limited (429) model=mistral-small-3.1 - -
2026-02-26 08:57 rate_limit OpenRouter rate limited (429) model=llama-3.3-70b - -
2026-02-26 08:57 rate_limit OpenRouter rate limited (429) model=hermes-3-405b - -
2026-02-26 08:57 rate_limit OpenRouter rate limited (429) model=qwen3-next-80b - -
2026-02-26 08:56 rate_limit OpenRouter rate limited (429) model=mistral-small-3.1 - -
2026-02-26 08:56 rate_limit OpenRouter rate limited (429) model=hermes-3-405b - -
2026-02-26 08:10 eval Evaluated by deepseek-v3.2: -0.01 (Neutral) 9,068 tokens
2026-02-26 04:31 eval Evaluated by claude-haiku-4-5-20251001: +0.06 (Neutral) 11,364 tokens +0.06
2026-02-26 04:25 eval Evaluated by claude-haiku-4-5-20251001: +0.00 (Neutral) 11,137 tokens +0.00
2026-02-26 04:21 eval Evaluated by claude-haiku-4-5-20251001: +0.00 (Neutral) 11,204 tokens +0.03
2026-02-26 03:54 eval Evaluated by claude-haiku-4-5-20251001: -0.03 (Neutral) 11,283 tokens -0.02
2026-02-26 03:48 eval Evaluated by claude-haiku-4-5-20251001: -0.01 (Neutral) 11,282 tokens +0.04
2026-02-26 03:40 eval Evaluated by claude-haiku-4-5-20251001: -0.05 (Neutral) 11,844 tokens -0.00
2026-02-26 00:18 eval Evaluated by claude-haiku-4-5-20251001: -0.04 (Neutral) 11,184 tokens -0.13
2026-02-26 00:02 eval Evaluated by claude-haiku-4-5-20251001: +0.09 (Neutral) 11,824 tokens -0.08
2026-02-25 23:50 eval Evaluated by claude-haiku-4-5-20251001: +0.16 (Mild positive) 11,095 tokens +0.23
2026-02-25 23:26 eval Evaluated by claude-haiku-4-5-20251001: -0.07 (Neutral) 10,743 tokens -0.17
2026-02-25 22:27 eval Evaluated by claude-haiku-4-5-20251001: +0.10 (Mild positive) 8,212 tokens +0.01
2026-02-25 22:23 eval Evaluated by claude-haiku-4-5-20251001: +0.09 (Neutral) 8,001 tokens