A brief description on dryopithecus and Ramapithecus and homohibilus and homoerectus
Smithsonian Human Origins Dryopithecus Ramapithecus Homo habilis Homo erectus
human evolution fossils
According to NCERT
NCERT Class 12 Biology evolution Dryopithecus Ramapithecus Homo habilis Homo erectus text
Can you create a ppt of this
~/
mkdir -p "/tmp/workspace/ncert-human-evolution-ppt/src" "/tmp/workspace/ncert-human-evolution-ppt/output" && python - <<'PY' from pptx import Presentation from pptx.util import Inches, Pt from pptx.dml.color import RGBColor from pptx.enum.shapes import MSO_SHAPE from pptx.enum.text import PP_ALIGN, MSO_ANCHOR from pptx.enum.dml import MSO_THEME_COLOR from pptx.enum.shapes import MSO_CONNECTOR OUT='/tmp/workspace/ncert-human-evolution-ppt/output/NCERT_Human_Evolution.pptx' prs=Presentation(); prs.slide_width=Inches(13.333); prs.slide_height=Inches(7.5) blank=prs.slide_layouts[6] # Colors NAVY=RGBColor(20,42,58); TEAL=RGBColor(25,132,135); GOLD=RGBColor(232,176,63); CREAM=RGBColor(247,244,236); INK=RGBColor(37,51,58); MUTED=RGBColor(98,112,116); PALE=RGBColor(224,239,235); RUST=RGBColor(177,86,52); WHITE=RGBColor(255,255,255) def rect(slide,x,y,w,h,color, radius=False, line=None): sh=slide.shapes.add_shape(MSO_SHAPE.ROUNDED_RECTANGLE if radius else MSO_SHAPE.RECTANGLE, Inches(x), Inches(y), Inches(w), Inches(h)) sh.fill.solid(); sh.fill.fore_color.rgb=color sh.line.color.rgb = line if line else color if radius: sh.adjustments[0]=0.12 return sh def text(slide,txt,x,y,w,h,size=20,color=INK,bold=False,align=PP_ALIGN.LEFT,font='Aptos',val=MSO_ANCHOR.TOP): tb=slide.shapes.add_textbox(Inches(x),Inches(y),Inches(w),Inches(h)); tf=tb.text_frame tf.clear(); tf.word_wrap=True; tf.margin_left=tf.margin_right=tf.margin_top=tf.margin_bottom=0; tf.vertical_anchor=val p=tf.paragraphs[0]; p.alignment=align r=p.add_run(); r.text=txt; r.font.name=font; r.font.size=Pt(size); r.font.bold=bold; r.font.color.rgb=color return tb def background(slide, num, title=None, subtitle=None): rect(slide,0,0,13.333,7.5,CREAM) rect(slide,0,0,13.333,0.18,TEAL) if title: text(slide,title,0.7,0.48,11.4,0.55,28,NAVY,True) if subtitle: text(slide,subtitle,0.72,1.08,11.2,0.36,12,MUTED) text(slide,f'{num:02d}',12.2,6.91,0.5,0.25,11,TEAL,True,align=PP_ALIGN.RIGHT) text(slide,'NCERT Class XII Biology | Evolution',0.72,6.93,4.4,0.23,10,MUTED) def bullet(slide,items,x,y,w,fs=19,color=INK,leading=0.62): tb=slide.shapes.add_textbox(Inches(x), Inches(y), Inches(w), Inches(len(items)*leading+.2)); tf=tb.text_frame; tf.clear(); tf.word_wrap=True tf.margin_left=tf.margin_right=tf.margin_top=tf.margin_bottom=0 for i,it in enumerate(items): p=tf.paragraphs[0] if i==0 else tf.add_paragraph(); p.text=it; p.font.name='Aptos'; p.font.size=Pt(fs); p.font.color.rgb=color; p.space_after=Pt(10); p.level=0; p.text='• '+it return tb def badge(slide,label,x,y,w,color=TEAL): rect(slide,x,y,w,.38,color,True); text(slide,label,x+.13,y+.08,w-.26,.17,11,WHITE,True,align=PP_ALIGN.CENTER) # Title s=prs.slides.add_slide(blank); rect(s,0,0,13.333,7.5,NAVY); rect(s,0,0,13.333,.2,GOLD) # circles for x,y,r,c in [(9.9,.9,1.2,TEAL),(11.2,1.9,.55,GOLD),(9.7,3.8,.75,RUST),(11.3,5.1,1.1,TEAL)]: sh=s.shapes.add_shape(MSO_SHAPE.OVAL,Inches(x),Inches(y),Inches(r),Inches(r)); sh.fill.solid(); sh.fill.fore_color.rgb=c; sh.fill.transparency=12; sh.line.color.rgb=c text(s,'Human Evolution',.8,1.15,8.2,.75,38,WHITE,True) text(s,'Dryopithecus • Ramapithecus • Homo habilis • Homo erectus',.82,2.05,8.7,.45,20,RGBColor(214,233,229)) rect(s,.82,2.85,2.4,.07,GOLD) text(s,'A brief NCERT Class XII Biology presentation',.82,3.18,6.4,.34,17,WHITE) # timeline line rect(s,.82,5.5,10.9,.05,RGBColor(122,164,163)) for x,lab in [(1.1,'15 mya'),(4.15,'15 mya'),(7.2,'2.4 mya'),(10.25,'1.5 mya')]: sh=s.shapes.add_shape(MSO_SHAPE.OVAL,Inches(x),Inches(5.37),Inches(.3),Inches(.3)); sh.fill.solid(); sh.fill.fore_color.rgb=GOLD; sh.line.color.rgb=GOLD text(s,lab,x-.2,5.86,1.0,.25,12,WHITE,True,align=PP_ALIGN.CENTER) text(s,'DRYOPITHECUS',.45,6.25,1.8,.22,10,RGBColor(214,233,229),True,align=PP_ALIGN.CENTER) text(s,'RAMAPITHECUS',3.45,6.25,1.8,.22,10,RGBColor(214,233,229),True,align=PP_ALIGN.CENTER) text(s,'H. HABILIS',6.55,6.25,1.8,.22,10,RGBColor(214,233,229),True,align=PP_ALIGN.CENTER) text(s,'H. ERECTUS',9.6,6.25,1.8,.22,10,RGBColor(214,233,229),True,align=PP_ALIGN.CENTER) # intro s=prs.slides.add_slide(blank); background(s,2,'NCERT sequence at a glance','Key descriptions used in the Class XII chapter “Evolution”.') items=[('Dryopithecus','More ape-like','~15 million years ago'),('Ramapithecus','More man-like','~15 million years ago'),('Homo habilis','First human-like being','650-800 cc brain'),('Homo erectus','Meat eater','~1.5 million years ago; 900 cc brain')] for i,(name,trait,time) in enumerate(items): x=.72+i*3.08 rect(s,x,1.85,2.7,3.65,WHITE,True,RGBColor(219,218,209)) rect(s,x,1.85,2.7,.18,[TEAL,GOLD,RUST,NAVY][i]) text(s,f'{i+1:02d}',x+.2,2.25,.42,.32,16,[TEAL,GOLD,RUST,NAVY][i],True) text(s,name,x+.2,2.77,2.28,.5,19,NAVY,True) text(s,trait,x+.2,3.55,2.25,.55,16,INK,True) text(s,time,x+.2,4.42,2.25,.45,14,MUTED) text(s,'Note: “mya” = million years ago.',.75,5.95,4.2,.3,13,MUTED) # profiles helper def profile(num,name,period,accent,points,brain=None,icon=''): s=prs.slides.add_slide(blank); background(s,num,name,period) rect(s,.72,1.72,3.2,4.55,accent,True) text(s,icon,1.22,2.23,2.2,1.2,54,WHITE,True,align=PP_ALIGN.CENTER) text(s,name,1.03,4.05,2.6,.45,20,WHITE,True,align=PP_ALIGN.CENTER) text(s,period,1.02,4.65,2.6,.55,13,WHITE,False,align=PP_ALIGN.CENTER) text(s,'NCERT focus',1.02,5.62,2.6,.25,11,WHITE,True,align=PP_ALIGN.CENTER) badge(s,'KEY POINTS',4.5,1.83,1.45,accent) bullet(s,points,4.5,2.5,7.6,21,INK) if brain: rect(s,4.5,5.42,6.8,.62,PALE,True) text(s,brain,4.78,5.62,6.25,.22,15,NAVY,True) return s profile(3,'Dryopithecus','About 15 million years ago',TEAL,['More ape-like.','Had a hairy body.','Walked like present-day gorillas and chimpanzees.'],icon='APE') profile(4,'Ramapithecus','About 15 million years ago',GOLD,['More man-like than Dryopithecus.','Had a hairy body.','Walked like present-day gorillas and chimpanzees.'],icon='EARLY\nAPE') profile(5,'Homo habilis','First human-like being (hominid)',RUST,['Called the first human-like being.','Brain capacity: 650-800 cc.','Probably did not eat meat.'],brain='Name meaning: “handy man” (general biological usage).',icon='HOMO') profile(6,'Homo erectus','Appeared about 1.5 million years ago',NAVY,['Brain capacity: about 900 cc.','Ate meat.','Represents a later stage in the NCERT human-evolution sequence.'],brain='Compare with H. habilis: larger brain capacity in the NCERT account.',icon='UPRIGHT\nHUMAN') # recap s=prs.slides.add_slide(blank); background(s,7,'Quick recap','Learn the distinguishing NCERT facts.') rows=[('Dryopithecus','More ape-like','Hairy body; ape-like walking'),('Ramapithecus','More man-like','Hairy body; ape-like walking'),('Homo habilis','650-800 cc','First human-like being; probably no meat'),('Homo erectus','~900 cc','Appeared ~1.5 mya; ate meat')] headers=['Organism','NCERT identity','Remember'] xs=[.72,3.42,6.35]; ws=[2.5,2.7,5.9] for x,w,h in zip(xs,ws,headers): rect(s,x,1.75,w,.58,NAVY,True); text(s,h,x+.18,1.94,w-.3,.2,14,WHITE,True) for r,row in enumerate(rows): y=2.48+r*.82 fill=WHITE if r%2==0 else PALE for x,w,val in zip(xs,ws,row): rect(s,x,y,w,.65,fill,True,RGBColor(220,220,215)); text(s,val,x+.18,y+.2,w-.3,.25,15,INK,r==0 if False else False) text(s,'Source: NCERT Biology, Class XII, Chapter 7: Evolution.',.72,6.15,8,.32,13,MUTED) text(s,'Use these facts for brief school-level answers and revision.',.72,6.52,8,.28,13,TEAL,True) prs.save(OUT) print(OUT) PY
python - <<'PY' from pptx import Presentation p='/tmp/workspace/ncert-human-evolution-ppt/output/NCERT_Human_Evolution.pptx' prs=Presentation(p) print('slides:',len(prs.slides)) for i,s in enumerate(prs.slides,1): texts=[] for sh in s.shapes: if sh.has_text_frame and sh.text.strip(): texts.append(sh.text.replace('\n',' | ')) print(i, ' :: '.join(texts[:4])) PY ls -lh "/tmp/workspace/ncert-human-evolution-ppt/output/NCERT_Human_Evolution.pptx"
NCERT Human Evolution
Presentation · PPTX