Information about danta in english with sanskrit shlokas
tooth anatomy
Sushruta Samhita danta shloka teeth Sanskrit
"अर्कन्यग्रोधखदिरकरञ्ज" दन्तपवनम्
| Type | Number | Main function |
|---|---|---|
| Incisors | 8 | Cutting food |
| Canines | 4 | Tearing food |
| Premolars | 8 | Crushing and grinding |
| Molars | 12 | Grinding food |
अर्कन्यग्रोधखदिरकरञ्जककुभादिजम् ।
प्रातर्भुक्त्वा च मृद्वग्रं कषायकटुतिक्तकम् ॥२॥कनीन्यग्रसमस्थूलं प्रगुणं द्वादशाङ्गुलम् ।
भक्षयेद्दन्तपवनं दन्तमांसान्यबाधयन् ॥३॥
arka-nyagrodha-khadira-karañja-kakubhādijam |
prātar bhuktvā ca mṛdv-agraṁ kaṣāya-kaṭu-tiktakam ||2||kanīny-agra-sama-sthūlaṁ praguṇaṁ dvādaśāṅgulam |
bhakṣayed danta-pavanaṁ danta-māṁsāny abādhayan ||3||
दन्ताः समाः स्निग्धाः श्लक्ष्णाः शुक्लाः स्युः शुभलक्षणम् ।
dantāḥ samāḥ snigdhāḥ ślakṣṇāḥ śuklāḥ syuḥ śubha-lakṣaṇam |
Create a quick reference PDF on Danta and oral care
~/
CDC oral health brush teeth twice daily fluoride toothpaste floss dental warning signs
oral hygiene fluoride toothpaste
mkdir -p "/tmp/workspace/danta-oral-care/src" "/tmp/workspace/danta-oral-care/output" && ls -la "/usr/share/fonts/truetype" && ls -la "/usr/share/fonts/truetype/noto" 2>/dev/null || true
fc-list | sed -n '1,30p'
fc-list | grep -i 'Devanagari\|Noto Serif' | sed -n '1,20p'
~/danta-oral-care/src/create_pdf.py
from reportlab.lib.pagesizes import A4
from reportlab.lib import colors
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.enums import TA_CENTER, TA_LEFT
from reportlab.lib.units import mm
from reportlab.pdfbase import pdfmetrics
from reportlab.pdfbase.ttfonts import TTFont
from reportlab.platypus import SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle, KeepTogether
from reportlab.lib.colors import HexColor
from pypdf import PdfReader
OUT = '/tmp/workspace/danta-oral-care/output/Danta_Oral_Care_Quick_Reference.pdf'
DEV = '/usr/share/fonts/google-droid-sans-fonts/DroidSansDevanagari-Regular.ttf'
REG = '/usr/share/fonts/google-noto-vf/NotoSans[wght].ttf'
pdfmetrics.registerFont(TTFont('Deva', DEV))
pdfmetrics.registerFont(TTFont('Noto', REG))
navy=HexColor('#123B4A'); teal=HexColor('#167C80'); pale=HexColor('#E8F4F3'); gold=HexColor('#D99B27'); red=HexColor('#A53B35'); gray=HexColor('#435057')
styles=getSampleStyleSheet()
base=ParagraphStyle('Base', parent=styles['BodyText'], fontName='Noto', fontSize=8.7, leading=11.2, textColor=gray, spaceAfter=4)
small=ParagraphStyle('Small', parent=base, fontSize=7.2, leading=9)
title=ParagraphStyle('Title', parent=styles['Title'], fontName='Noto', fontSize=22, leading=26, textColor=navy, alignment=TA_CENTER, spaceAfter=3)
subtitle=ParagraphStyle('Subtitle', parent=base, fontSize=10, leading=13, alignment=TA_CENTER, textColor=teal, spaceAfter=10)
h2=ParagraphStyle('H2', parent=styles['Heading2'], fontName='Noto', fontSize=11.3, leading=14, textColor=navy, spaceBefore=5, spaceAfter=4)
shloka=ParagraphStyle('Shloka', parent=base, fontName='Deva', fontSize=11.5, leading=16, textColor=navy, leftIndent=7, rightIndent=7, spaceBefore=3, spaceAfter=3)
trans=ParagraphStyle('Trans', parent=base, fontSize=8, leading=10.5, textColor=teal, leftIndent=7, rightIndent=7)
callout=ParagraphStyle('Callout', parent=base, fontSize=8.4, leading=10.8, textColor=navy)
def P(txt, st=base): return Paragraph(txt, st)
def box(items, color=pale):
t=Table([[items]], colWidths=[178*mm])
t.setStyle(TableStyle([('BACKGROUND',(0,0),(-1,-1),color),('BOX',(0,0),(-1,-1),0.5,teal),('LEFTPADDING',(0,0),(-1,-1),7),('RIGHTPADDING',(0,0),(-1,-1),7),('TOPPADDING',(0,0),(-1,-1),5),('BOTTOMPADDING',(0,0),(-1,-1),5)]))
return t
doc=SimpleDocTemplate(OUT, pagesize=A4, rightMargin=16*mm,leftMargin=16*mm, topMargin=13*mm,bottomMargin=13*mm)
story=[]
story += [P('DANTA (दन्त)', title), P('Quick Reference: Teeth and Daily Oral Care', subtitle)]
story.append(box(P('<b>Danta</b> means a tooth or teeth in Sanskrit. Healthy teeth help with biting, chewing, speech, facial support, and a confident smile.', callout)))
story.append(P('1. Tooth essentials', h2))
data=[['Type','Adult total','Main role'],['Incisors','8','Cut food'],['Canines','4','Tear food'],['Premolars','8','Crush and grind'],['Molars','12','Grind food']]
t=Table([[P(c, small) for c in row] for row in data],colWidths=[43*mm,35*mm,100*mm])
t.setStyle(TableStyle([('BACKGROUND',(0,0),(-1,0),navy),('TEXTCOLOR',(0,0),(-1,0),colors.white),('GRID',(0,0),(-1,-1),0.3,HexColor('#B8D6D5')),('BACKGROUND',(0,1),(-1,-1),HexColor('#F7FBFB')),('VALIGN',(0,0),(-1,-1),'MIDDLE'),('LEFTPADDING',(0,0),(-1,-1),5),('RIGHTPADDING',(0,0),(-1,-1),5),('TOPPADDING',(0,0),(-1,-1),4),('BOTTOMPADDING',(0,0),(-1,-1),4)]))
story += [t, Spacer(1,5), P('<b>Adult dentition:</b> 32 permanent teeth. Children normally have 20 primary (milk) teeth.', base), P('<b>Key parts:</b> enamel (hard outer crown), dentin (main inner tissue), pulp (nerves and blood vessels), cementum (root covering), and periodontal ligament (anchors tooth in bone).', base)]
story.append(P('2. Classical Ayurvedic reference: Dantadhavana', h2))
story.append(box([P('From <i>Aṣṭāṅga Hṛdaya</i>, Sūtrasthāna 2.2-3:', small), P('अर्कन्यग्रोधखदिरकरञ्जककुभादिजम् ।<br/>प्रातर्भुक्त्वा च मृद्वग्रं कषायकटुतिक्तकम् ॥२॥<br/><br/>कनीन्यग्रसमस्थूलं प्रगुणं द्वादशाङ्गुलम् ।<br/>भक्षयेद्दन्तपवनं दन्तमांसान्यबाधयन् ॥३॥', shloka), P('<i>arka-nyagrodha-khadira-karañja-kakubhādijam ... bhakṣayed danta-pavanaṁ danta-māṁsāny abādhayan</i>', trans), P('Meaning: In the morning, a soft-tipped cleansing twig from appropriate astringent, pungent, or bitter plants may be used gently, without harming the teeth or gums.', base)]))
story.append(P('3. Daily oral-care checklist', h2))
checks=[['Morning and night','Brush for about 2 minutes with fluoride toothpaste.'],['Every day','Clean between teeth with floss or interdental brushes.'],['Food and drink','Limit frequent sugary snacks and sweet drinks. Choose water often.'],['Toothbrush','Use a soft-bristled brush. Replace it about every 3 months or sooner if frayed.'],['Dental visits','Attend regular preventive dental check-ups as advised by your dentist.']]
t2=Table([[P('<b>'+a+'</b>',small),P(b,small)] for a,b in checks], colWidths=[38*mm,140*mm])
t2.setStyle(TableStyle([('GRID',(0,0),(-1,-1),0.3,HexColor('#B8D6D5')),('BACKGROUND',(0,0),(0,-1),pale),('VALIGN',(0,0),(-1,-1),'TOP'),('LEFTPADDING',(0,0),(-1,-1),5),('RIGHTPADDING',(0,0),(-1,-1),5),('TOPPADDING',(0,0),(-1,-1),4),('BOTTOMPADDING',(0,0),(-1,-1),4)]))
story += [t2, Spacer(1,5)]
story.append(box(P('<b>Traditional practice and modern care:</b> A clean, gentle chewing stick may be part of a cultural routine, but it should not replace fluoride toothpaste, cleaning between teeth, or professional dental care.', callout), HexColor('#FFF7E8')))
story.append(P('4. See a dentist promptly if you have', h2))
story.append(P('• Toothache lasting more than a day or two • Facial or gum swelling • Bleeding gums that persist • A loose, broken, or knocked-out tooth • Pus, fever, or trouble swallowing/breathing', base))
story.append(box(P('<b>Urgent:</b> Facial swelling with fever, difficulty breathing, or difficulty swallowing may indicate a serious infection. Seek urgent medical or dental care.', callout), HexColor('#FCEDEC')))
story.append(Spacer(1,5))
story.append(P('<b>Sources</b> Aṣṭāṅga Hṛdaya, Sūtrasthāna 2.2-3. Histology: *Histology A Text and Atlas*, “Teeth,” lines 4484-4492. Preventive-care guidance: CDC, “About Fluoride” (accessed 27 Aug 2026).', small))
story.append(P('Educational reference only. It does not replace advice from a dentist or clinician.', small))
doc.build(story)
reader=PdfReader(OUT)
assert len(reader.pages) >= 1
text=''.join(p.extract_text() or '' for p in reader.pages)
assert 'DANTA' in text and 'Daily oral-care' in text
print(f'Created {OUT} ({len(reader.pages)} page(s), {len(text)} extracted characters)')
python "/tmp/workspace/danta-oral-care/src/create_pdf.py" && ls -lh "/tmp/workspace/danta-oral-care/output/Danta_Oral_Care_Quick_Reference.pdf"
Danta Oral Care Quick Reference
PDF Document · PDF
Types of anta according to ayurveda
Ayurveda types of danta teeth bheda Sanskrit danta types
Ayurveda oral health teeth
| Ayurvedic name | Sanskrit | Modern equivalent | Function |
|---|---|---|---|
| Rājadanta | राजदन्त | Incisors | Cutting food |
| Vaṣṭa / Vasta | वष्ट / वस्त | Canines | Tearing food |
| Daṃṣṭrā | दंष्ट्रा | Premolars | Crushing food |
| Hānavya | हानव्य | Molars | Grinding and chewing food |
Make a one-page PDF on Ayurvedic tooth anatomy
~/
Ayurvedic tooth anatomy Rajadanta Vasta Damshtra Hanavya classical source
Ayurveda teeth oral health
~/danta-oral-care/src/create_ayurvedic_tooth_anatomy_pdf.py
from reportlab.lib.pagesizes import A4
from reportlab.lib import colors
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.enums import TA_CENTER
from reportlab.lib.units import mm
from reportlab.pdfbase import pdfmetrics
from reportlab.pdfbase.ttfonts import TTFont
from reportlab.platypus import SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle, KeepTogether, Flowable
from reportlab.lib.colors import HexColor
from pypdf import PdfReader
OUT='/tmp/workspace/danta-oral-care/output/Ayurvedic_Tooth_Anatomy_One_Page.pdf'
DEV='/usr/share/fonts/google-droid-sans-fonts/DroidSansDevanagari-Regular.ttf'
REG='/usr/share/fonts/google-noto-vf/NotoSans[wght].ttf'
pdfmetrics.registerFont(TTFont('Deva', DEV)); pdfmetrics.registerFont(TTFont('Noto', REG))
navy=HexColor('#173A4C'); teal=HexColor('#167C80'); pale=HexColor('#EAF6F3'); gold=HexColor('#CE9426'); ink=HexColor('#3E4C52'); rose=HexColor('#FAEEEE')
styles=getSampleStyleSheet()
base=ParagraphStyle('base', parent=styles['BodyText'], fontName='Noto',fontSize=8.35,leading=10.6,textColor=ink,spaceAfter=3)
small=ParagraphStyle('small',parent=base,fontSize=7.1,leading=8.5)
title=ParagraphStyle('title',parent=styles['Title'],fontName='Noto',fontSize=21,leading=24,textColor=navy,alignment=TA_CENTER,spaceAfter=2)
sub=ParagraphStyle('sub',parent=base,fontSize=9.3,leading=12,alignment=TA_CENTER,textColor=teal,spaceAfter=7)
h=ParagraphStyle('h',parent=styles['Heading2'],fontName='Noto',fontSize=10.7,leading=13,textColor=navy,spaceBefore=3,spaceAfter=3)
shloka=ParagraphStyle('sh',parent=base,fontName='Deva',fontSize=11.5,leading=15.5,textColor=navy,leftIndent=6,rightIndent=6)
trans=ParagraphStyle('tr',parent=base,fontSize=7.8,leading=9.5,textColor=teal,leftIndent=6,rightIndent=6)
def P(x,s=base): return Paragraph(x,s)
class ToothDiagram(Flowable):
def __init__(self): super().__init__(); self.width=165*mm; self.height=65*mm
def draw(self):
c=self.canv; w=self.width; h=self.height
# crown / root outline
p=c.beginPath(); p.moveTo(67*mm,60*mm); p.curveTo(53*mm,63*mm,47*mm,53*mm,51*mm,41*mm); p.curveTo(55*mm,30*mm,60*mm,26*mm,66*mm,22*mm); p.curveTo(67*mm,15*mm,61*mm,6*mm,59*mm,2*mm); p.lineTo(69*mm,2*mm); p.lineTo(75*mm,18*mm); p.lineTo(81*mm,2*mm); p.lineTo(91*mm,2*mm); p.curveTo(87*mm,12*mm,82*mm,18*mm,83*mm,22*mm); p.curveTo(91*mm,30*mm,96*mm,41*mm,96*mm,50*mm); p.curveTo(96*mm,59*mm,86*mm,63*mm,76*mm,60*mm); p.close(); c.setFillColor(HexColor('#FFF9EE')); c.setStrokeColor(navy); c.setLineWidth(1.1); c.drawPath(p,fill=1,stroke=1)
# enamel band and dentin
c.setStrokeColor(gold); c.setLineWidth(3); c.arc(51*mm,40*mm,96*mm,62*mm,20,140)
c.setFillColor(HexColor('#F4D6AA')); c.circle(73*mm,43*mm,11*mm,fill=1,stroke=0)
c.setFillColor(HexColor('#B6534E')); c.circle(73*mm,43*mm,5*mm,fill=1,stroke=0)
# gum line
c.setStrokeColor(HexColor('#B66A74')); c.setLineWidth(1.5); c.line(45*mm,27*mm,102*mm,27*mm)
# leaders
c.setStrokeColor(teal); c.setLineWidth(.6)
labels=[('Crown (मुकुट)',25,56,55,56),('Enamel',106,56,89,55),('Dentin',106,45,83,45),('Pulp',106,35,78,42),('Gingiva / Dantamāṃsa',102,25,91,27),('Root (मूल)',24,12,60,12)]
c.setFont('Noto',7.3); c.setFillColor(navy)
for txt,x,y,x2,y2 in labels:
c.line(x*mm,y*mm,x2*mm,y2*mm); c.drawString(x*mm,y*mm,txt)
def box(flow, bg=pale):
t=Table([[flow]],colWidths=[178*mm]); t.setStyle(TableStyle([('BACKGROUND',(0,0),(-1,-1),bg),('BOX',(0,0),(-1,-1),.45,teal),('LEFTPADDING',(0,0),(-1,-1),6),('RIGHTPADDING',(0,0),(-1,-1),6),('TOPPADDING',(0,0),(-1,-1),4),('BOTTOMPADDING',(0,0),(-1,-1),4)])); return t
doc=SimpleDocTemplate(OUT,pagesize=A4,leftMargin=16*mm,rightMargin=16*mm,topMargin=11*mm,bottomMargin=10*mm)
story=[P('AYURVEDIC TOOTH ANATOMY',title),P('Danta Sharira: a one-page study reference',sub)]
story.append(box(P('<b>Danta (दन्त)</b> means tooth. Ayurvedic teaching places teeth in relation to <b>Asthi dhātu</b> (bone tissue) and describes the gums as <b>Dantamāṃsa</b>. Classical nomenclature is positional; modern anatomical terms are included only as practical parallels.',base)))
story += [P('1. Form of a tooth: classical and modern view',h), ToothDiagram()]
story.append(P('<b>Key structures:</b> Crown is the visible part; root anchors the tooth. Modern anatomy recognizes enamel covering the crown, dentin forming most of the tooth, pulp with nerves and blood vessels, cementum over the root, and periodontal ligament attaching the root to its socket.',small))
story.append(P('2. Ayurvedic positional classification of teeth',h))
data=[['Term','Position / common modern parallel','Primary role'],['Rājadanta<br/><font name="Deva">राजदन्त</font>','Central front teeth - incisors','Cutting'],['Vasta<br/><font name="Deva">वस्त</font>','Adjacent to the central teeth - often interpreted as lateral incisors/canines','Tearing and guiding'],['Daṃṣṭrā<br/><font name="Deva">दंष्ट्रा</font>','Teeth beyond Vasta - commonly aligned with canines or premolars in teaching sources','Piercing / crushing'],['Hānavya<br/><font name="Deva">हानव्य</font>','Posterior teeth - premolars and molars','Chewing and grinding']]
t=Table([[P(a,small) for a in r] for r in data],colWidths=[34*mm,86*mm,58*mm],repeatRows=1)
t.setStyle(TableStyle([('BACKGROUND',(0,0),(-1,0),navy),('TEXTCOLOR',(0,0),(-1,0),colors.white),('FONTNAME',(0,0),(-1,0),'Noto'),('FONTSIZE',(0,0),(-1,-1),7.1),('LEADING',(0,0),(-1,-1),8.4),('GRID',(0,0),(-1,-1),.3,HexColor('#AAC7C5')),('BACKGROUND',(0,1),(-1,-1),HexColor('#F8FBFA')),('VALIGN',(0,0),(-1,-1),'MIDDLE'),('LEFTPADDING',(0,0),(-1,-1),4),('RIGHTPADDING',(0,0),(-1,-1),4),('TOPPADDING',(0,0),(-1,-1),3),('BOTTOMPADDING',(0,0),(-1,-1),3)])); story.append(t)
story.append(P('3. Dentition and ideal Danta',h))
cols=[[P('<b>Number</b><br/>Classical teaching commonly describes <b>20 primary</b> teeth and <b>32 permanent</b> teeth.',base)],[P('<b>Healthy features</b><br/><b>Śveta</b> (whitish), <b>Ślakṣṇa</b> (smooth), <b>Snigdha</b> (lustrous), <b>Sama</b> (even), and <b>Sthira/Ghana</b> (firm, strong).',base)]]
row=Table([[cols[0][0],cols[1][0]]],colWidths=[89*mm,89*mm]); row.setStyle(TableStyle([('BACKGROUND',(0,0),(-1,-1),pale),('BOX',(0,0),(-1,-1),.4,teal),('INNERGRID',(0,0),(-1,-1),.3,teal),('VALIGN',(0,0),(-1,-1),'TOP'),('LEFTPADDING',(0,0),(-1,-1),6),('RIGHTPADDING',(0,0),(-1,-1),6),('TOPPADDING',(0,0),(-1,-1),4),('BOTTOMPADDING',(0,0),(-1,-1),4)])); story.append(row)
story.append(P('Study note',h)); story.append(box(P('Spellings and modern equivalents vary across Ayurvedic commentaries and teaching texts. The four names above are best understood as a <b>classical positional map</b>, not a one-to-one substitute for modern dental nomenclature.',small),rose))
story.append(Spacer(1,3)); story.append(P('Sources: Ayurvedic nomenclature summarized in reviews of Kāśyapa’s dentition account. Modern tissue anatomy: <i>Histology: A Text and Atlas</i>, “Teeth,” lines 4484-4492. Educational use only.',small))
doc.build(story)
r=PdfReader(OUT); assert len(r.pages)==1, len(r.pages)
print(f'Created {OUT}, {len(r.pages)} page')
python "/tmp/workspace/danta-oral-care/src/create_ayurvedic_tooth_anatomy_pdf.py" && ls -lh "/tmp/workspace/danta-oral-care/output/Ayurvedic_Tooth_Anatomy_One_Page.pdf"
Ayurvedic Tooth Anatomy One Page
PDF Document · PDF