Excellent tool! In a past life I spent a lot of time in the dental world doing technology integrations, and had a lot of in-laws in the dental field. This definitely helped me understand my mouth even better. The UX is really good. I could see a dentist using this to explain something to a patient.
I get how most of this could be coded with an agent, but I'm curious how you created or acquired the 3D assets for the skull, bones, teeth, gums, etc?
That's great. It reminds me of Elsevier's full-body anatomy tool which is very cool but requires a license of like $60 dollars per year. I hope someone can replicate the essence of it and make such a tool available for free.
Probably one of the automatic spam detector in HN, sometimes they have false positives. Try vouching the comments if they are good. (If that doesn't work after a while, you also can send and email to hn@ycombinator.com so dang/tomhow can take a look.)
The implementation that is currently visible in the GitHub commit history was done over about 3 days, yes. But that does not include the research, planning and architecture work that happened before I started committing the implementation.
I spent roughly 2 weeks researching the domain, figuring out the structure of the tool, planning the architecture and deciding how the different anatomical layers and interactions should work before the repo history you are looking at began.
I wonder when Claude will stop doing "pale but not white background with a serif heading"
Also - not sure what happened, but clicking around, I got the entire model to disappear entirely and the reset button did not bring it back. A refresh did work.
One UX suggestion: The "Dissect Anatomy" area should instead have a toggle switch for the "laid out" option (And that could disable the assembled/in position ), as that seems to be a binary control, where the "assembled" and "in position" options are actually modified by the vertical slider.
You pointed your clanker of choice to a dataset (or more realistically, asked it to find an appropriate dataset), and told it to build a interactive 3d model. You learned nothing from this project because no mental effort was spent beyond listing out features for your clanker, and some manual testing.
You continued an argument from somewhere else in a thread about a new way to use tech to visualize anatomy. You took English words you did not develop and typed them into an input device you use but did not invent.
Too bad the AI that this is built with isn't bright enough to know how many permanent teeth there are in a human's jaw. 38 seems high. Why should anyone trust it to know how all the other things are connected?
I hate to think that there are generations of engineers, programmers, etc who will not be qualified to determine whether the AI tools that they build and deploy can answer any of the questions that one would be inclined to ask or solve any of the problems that might need solutions.
Get an education. Learn to think for yourself so that you can recognize when some slop like this hits the screen.
Humans have 32 permanent teeth, and that is exactly what Dental Scope models. It is even pointed at the first screen.
If you found somewhere in the UI that says 38, point it out and I’ll fix it. That is useful feedback.
The rest is just a long rant based on the assumption that using AI means I neither understand nor review what I build. You know nothing about my education, my engineering background, or how this project was developed.
Sounds like an old grump that is falling behind to AI.
I did go back over 'your' work to see why I incorrectly concluded that your model had 38 teeth. It turns out that the mandibular left third molar has a label of "38" when you hover on that tooth. That led me to believe that your jaw somehow fit 38 teeth into the picture. At my dentist, they track oral health of the teeth in the jaw during exams, noting which teeth have fillings or other restorative processes applied so that the dentist can focus on the exact tooth. Their numbering is always 1-32 so when I saw that 38, and other numbers that seemed out of sequence with those I have noted on my own charts, I figured that it had to be wrong. I counted teeth and did not come up with 38 though I also couldn't figure out why a tooth in your model would be labeled "38" unless that is merely an identifier of the specific element displayed.
I see now that your teeth use numbering 21-28 for upper left teeth; 31-38 for lower left teeth; 41-48 for lower right teeth; and 11-18 for upper right teeth. That makes 32 total.
I should've counted. I didn't do that. I made an incorrect assumption that there might be a standard numbering system in place for teeth so that any dentist anywhere could look at a number and know exactly which tooth it referenced. Evidently that is not the case since your model splits a jaw based on right/left and numbers front to back from incisors to molars. That is not the numbering scheme used on my own dental charts which use 1-16 for upper jaw and 17-32 for lower jaw. There is no 38 in that system. This has to be a software issue. My dentist still uses Windows 10 so perhaps they are locked into a different oral health package.
>The rest is just a long rant based...
LOL. This is correct. Too bad. I offer an apology which you can accept or reject. The rant is not terribly out of line for submissions to HN, many of which draw the same criticisms. In this case it appears to be invalid.
>Sounds like an old grump that is falling behind to AI
Actually the old grump part probably fits since I had just made it to my desk and your submission was the first thing that I checked out since it looked interesting. I had not had coffee until after I submitted that post so perhaps my mental capacity was significantly diminished by caffeine depletion.
I'm not falling behind to AI and AI is not threatening to make my job obsolete. There is no part of my work that uses AI so there is no way for me to fall behind.
I think that tool is actually great, and nice that someone deployed it again.
But it is too much if that makes sense, it's hard to fit in so much stuff in one little web app, so it ends up just being a cool visualizer but not so good educating tool.
Just a clarification for the people hating on clankers, I want to know what you expect from todays devs? do you genuinely think that people should manually handcode everything for it to hold any significant value?
I just don't understand the point of view where - "a clanker made it therefore it's trash", it's always the same people they lurk on reddit aswell.
Even in the case of putting something together manually, you are competing against people using AI and you will never match their production level or speed.
I mean the people who hold the highest priority say in this are the dentists/dental students, and so far all the feedback from those have been nothing but positive?
It's hard to do, but ignore the trolls. This is a lesson we had to learn many years ago and it applies today. Do good things that you and others find interesting and ignore the trolls.
Yeah you are totally right and I appreciate the words. I sometimes tend to think I want to rather try to guide them in my POV, but some people refuse to give in.
Years and years of “mobile first” getting getting traction only to be forgotten in a heartbeat when it’s finally easy to do “real cool stuff” on desktop.
You mean MRI scans? I could technically try to do something similar, would be more on the machine learning part, don't know if a web app could manage that. But definitely something I would look into if there is interest.
@Zeruxe: I don't know how to DM people on this platform, but I'd love to chat with you. I'm an ICU doc and have spent the past month vibe-coding a bunch of physiologic and anatomic simulators (med-sim.com). If you want to collaborate, please use the "contact me" form at med-sim.com to reach out. I don't want to share my email on this message board b/c I'm not smart enough to know whether that is safe or not.
Hi, I have filled in the form and would love to have a chat with you, email starts with 'y' if someone tried to impersonate me. Otherwise just reach out to me via github discussions on the repo and you can have my email.
Hi Zeruxe, thanks for your response! My Netlify form managed to capture zero data somehow when you filled out the form. So I just posted something on your Discussion board on GitHub.
I see toggles for the viewing of separate dental tissues, but I can't seem to get them working. For example, I'd like to view the root canals. There are Show/Hide toggles for the enamel, etc. but they don't seem to do anything. Their translucency toggles also don't seem to do anything. I can focus on a tooth, then hit the cross-section button, but instead of showing the cross section of the focused tooth, it does a cross-section of the entire head. So, there's the root canal selections, but apparently no way to view them.
The intended flow is actually to select a tooth first and then inspect it at a deeper level, including its internal tissues. It sounds like that interaction isn’t clear enough from the UI though, so I’ll look into making that maybe more straight forward, thank you for the feedback.
With "flat disks" I suppose you mean the temporomandibular joints, those are like small cushions inside your jaw joint, just where your lower jaw meets your skull, you have one on each side.
It sits between the lower jawbone and the skull bone so they don't rub against each other, it sort of slides along the jaw when you open your mouth.
A real one isn't a flat blue plate of course, it's a pale rubbery pad that curves over the top of the jaw bone like a little cap.
I suppose I could of done a better visual demonstration and I will look into improving it when time allows it, thank you for pointing it out.
Looks cool, thanks for posting here. I can see your passion for operating on 3D models and playing with ThreeJS. Do you want to stay in the 3D space post graduation?
Hey there, I've also worked on a couple of photogrammetry projects and was into game dev in Unity for a while before moving to full stack development. Maybe there's a fit…would definitely apply
52 comments
[ 2.2 ms ] story [ 17.4 ms ] threadLive: https://dental-scope.com/
GitHub: https://github.com/Yoosseph/dental-scope
Feedback and contributions are welcome
I get how most of this could be coded with an agent, but I'm curious how you created or acquired the 3D assets for the skull, bones, teeth, gums, etc?
The base anatomy comes from BodyParts3D, an open anatomical dataset from DBCLS which is openly licensed under CC BY-SA 2.1 Japan.
The tooth internals were modeled to fit the actual teeth so it’s a mix of open anatomical data, processing, and additional modeling.
The 3D models you see are rendered in a javascript framework called three.js, an awesome framework if I may say.
Thank you again for the kind words!
Not the engineering effort behind it.
It still looks great. And very good for understanding whatever it is my dentist is doing with my teeth.
This could be a part of Wikipedia.
Zeruxe: in case you are unfamiliar, this means most people can’t see them, only those who are logged in and have showdead enabled.
I spent roughly 2 weeks researching the domain, figuring out the structure of the tool, planning the architecture and deciding how the different anatomical layers and interactions should work before the repo history you are looking at began.
Also - not sure what happened, but clicking around, I got the entire model to disappear entirely and the reset button did not bring it back. A refresh did work.
One UX suggestion: The "Dissect Anatomy" area should instead have a toggle switch for the "laid out" option (And that could disable the assembled/in position ), as that seems to be a binary control, where the "assembled" and "in position" options are actually modified by the vertical slider.
Seems neat, for the most part.
Thanks for the feedback about the bug I will look into that.
Also thanks for the suggestion and the compliment :)
You pointed your clanker of choice to a dataset (or more realistically, asked it to find an appropriate dataset), and told it to build a interactive 3d model. You learned nothing from this project because no mental effort was spent beyond listing out features for your clanker, and some manual testing.
You continued an argument from somewhere else in a thread about a new way to use tech to visualize anatomy. You took English words you did not develop and typed them into an input device you use but did not invent.
I hate to think that there are generations of engineers, programmers, etc who will not be qualified to determine whether the AI tools that they build and deploy can answer any of the questions that one would be inclined to ask or solve any of the problems that might need solutions.
Get an education. Learn to think for yourself so that you can recognize when some slop like this hits the screen.
If you found somewhere in the UI that says 38, point it out and I’ll fix it. That is useful feedback.
The rest is just a long rant based on the assumption that using AI means I neither understand nor review what I build. You know nothing about my education, my engineering background, or how this project was developed.
Sounds like an old grump that is falling behind to AI.
I did go back over 'your' work to see why I incorrectly concluded that your model had 38 teeth. It turns out that the mandibular left third molar has a label of "38" when you hover on that tooth. That led me to believe that your jaw somehow fit 38 teeth into the picture. At my dentist, they track oral health of the teeth in the jaw during exams, noting which teeth have fillings or other restorative processes applied so that the dentist can focus on the exact tooth. Their numbering is always 1-32 so when I saw that 38, and other numbers that seemed out of sequence with those I have noted on my own charts, I figured that it had to be wrong. I counted teeth and did not come up with 38 though I also couldn't figure out why a tooth in your model would be labeled "38" unless that is merely an identifier of the specific element displayed.
I see now that your teeth use numbering 21-28 for upper left teeth; 31-38 for lower left teeth; 41-48 for lower right teeth; and 11-18 for upper right teeth. That makes 32 total.
I should've counted. I didn't do that. I made an incorrect assumption that there might be a standard numbering system in place for teeth so that any dentist anywhere could look at a number and know exactly which tooth it referenced. Evidently that is not the case since your model splits a jaw based on right/left and numbers front to back from incisors to molars. That is not the numbering scheme used on my own dental charts which use 1-16 for upper jaw and 17-32 for lower jaw. There is no 38 in that system. This has to be a software issue. My dentist still uses Windows 10 so perhaps they are locked into a different oral health package.
>The rest is just a long rant based...
LOL. This is correct. Too bad. I offer an apology which you can accept or reject. The rant is not terribly out of line for submissions to HN, many of which draw the same criticisms. In this case it appears to be invalid.
>Sounds like an old grump that is falling behind to AI
Actually the old grump part probably fits since I had just made it to my desk and your submission was the first thing that I checked out since it looked interesting. I had not had coffee until after I submitted that post so perhaps my mental capacity was significantly diminished by caffeine depletion.
I'm not falling behind to AI and AI is not threatening to make my job obsolete. There is no part of my work that uses AI so there is no way for me to fall behind.
There was a live deploy, but it is currently unavailable: https://human-atlas-seven.vercel.app/
[1]: https://github.com/ashemag/human-atlas
[2]: https://x.com/ashebytes/status/2096221988763173186?lang=ar-x...
But it is too much if that makes sense, it's hard to fit in so much stuff in one little web app, so it ends up just being a cool visualizer but not so good educating tool.
I just don't understand the point of view where - "a clanker made it therefore it's trash", it's always the same people they lurk on reddit aswell.
Even in the case of putting something together manually, you are competing against people using AI and you will never match their production level or speed.
I mean the people who hold the highest priority say in this are the dentists/dental students, and so far all the feedback from those have been nothing but positive?
I personally couldn’t be happier about it.
Base gemotery was derived from BodyParts3D, where the meshes were optimized.
Nerves and vesseles mostly follow data from Z-Anatomy
Internal tooth anatomy was modeled inside the actual tooth rather than coming from one complete premade GLTF
Three.js loads and renders those GLBs and handles interactions,materials,camera controls etc.
Hope this makes sense, if you want to know more there are proper sources of assets on the repo :)
With "flat disks" I suppose you mean the temporomandibular joints, those are like small cushions inside your jaw joint, just where your lower jaw meets your skull, you have one on each side.
It sits between the lower jawbone and the skull bone so they don't rub against each other, it sort of slides along the jaw when you open your mouth.
A real one isn't a flat blue plate of course, it's a pale rubbery pad that curves over the top of the jaw bone like a little cap.
I suppose I could of done a better visual demonstration and I will look into improving it when time allows it, thank you for pointing it out.