Create a ppt of origin and evolution of Man according to NCERT
NCERT Biology Evolution origin and evolution of man chapter 7 official PDF
~/
https://ncert.nic.in/textbook.php?lebo1=6-13
human evolution
~/
mkdir -p "/tmp/workspace/origin-evolution-man-ppt/src" "/tmp/workspace/origin-evolution-man-ppt/output" && python - <<'PY' from pathlib import Path p=Path('/tmp/workspace/origin-evolution-man-ppt/src/create_ppt.py') p.write_text(r'''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_LINE_DASH_STYLE OUT='/tmp/workspace/origin-evolution-man-ppt/output/Origin_and_Evolution_of_Man_NCERT.pptx' prs=Presentation(); prs.slide_width=Inches(13.333); prs.slide_height=Inches(7.5) blank=prs.slide_layouts[6] # palette NAVY=RGBColor(18,35,46); TEAL=RGBColor(34,126,123); GOLD=RGBColor(221,168,73); CREAM=RGBColor(247,243,233); INK=RGBColor(34,45,49); MUTED=RGBColor(91,104,106); RUST=RGBColor(171,83,52); PALE=RGBColor(224,237,230); WHITE=RGBColor(255,255,255) def rect(s,x,y,w,h,fill, radius=False, line=None): sh=s.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=fill sh.line.color.rgb=line or fill return sh def text(s,txt,x,y,w,h,size=20,color=INK,bold=False,align=PP_ALIGN.LEFT, font='Aptos', valign=MSO_ANCHOR.TOP): box=s.shapes.add_textbox(Inches(x), Inches(y), Inches(w), Inches(h)); tf=box.text_frame tf.clear(); tf.word_wrap=True; tf.margin_left=tf.margin_right=tf.margin_top=tf.margin_bottom=0 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 tf.vertical_anchor=valign return box def bullet(s,items,x,y,w,fs=20, color=INK, spacing=9): box=s.shapes.add_textbox(Inches(x),Inches(y),Inches(w),Inches(0.45*len(items)+.2)); tf=box.text_frame; tf.clear(); tf.word_wrap=True tf.margin_left=tf.margin_right=tf.margin_top=tf.margin_bottom=0 for i,item in enumerate(items): p=tf.paragraphs[0] if i==0 else tf.add_paragraph(); p.text=item; p.level=0; p.font.name='Aptos'; p.font.size=Pt(fs); p.font.color.rgb=color; p.space_after=Pt(spacing); p.text='• '+item return box def header(s, title, kicker, n): rect(s,0,0,13.333,.24,TEAL); text(s,kicker.upper(),.62,.48,4.6,.28,11,TEAL,True); text(s,title,.62,.79,12.0,.57,30,NAVY,True) text(s,f'{n:02d}',12.12,.52,.58,.32,14,GOLD,True,PP_ALIGN.RIGHT) rect(s,.62,1.55,12.05,.018,GOLD) def footer(s): text(s,'NCERT Biology Class XII | Evolution',.62,7.13,4,.2,9,MUTED) def circle(s,x,y,d,fill, label='', fs=18): sh=s.shapes.add_shape(MSO_SHAPE.OVAL, Inches(x), Inches(y), Inches(d), Inches(d)); sh.fill.solid(); sh.fill.fore_color.rgb=fill; sh.line.color.rgb=fill if label: text(s,label,x,y+d*.28,d,d*.35,fs,WHITE,True,PP_ALIGN.CENTER) return sh def timeline_node(s,x,y,title,sub,tag,color): circle(s,x,y,.62,color,tag,13); text(s,title,x-.45,y+.78,1.55,.35,14,NAVY,True,PP_ALIGN.CENTER); text(s,sub,x-.53,y+1.17,1.72,.45,10,MUTED,False,PP_ALIGN.CENTER) def human_icon(s,x,y,scale, color): # simple human figure, one group of shapes circle(s,x+.18*scale,y,.23*scale,color) rect(s,x+.24*scale,y+.24*scale,.11*scale,.43*scale,color,True) # limbs for dx,dy,w,h,rot in [(.04,.28,.23,.055,0),(.31,.28,.23,.055,0),(.18,.62,.07,.28,0),(.34,.62,.07,.28,0)]: sh=rect(s,x+dx*scale,y+dy*scale,w*scale,h*scale,color,True) def add_title(): s=prs.slides.add_slide(blank); rect(s,0,0,13.333,7.5,NAVY); rect(s,0,0,13.333,.18,GOLD) # abstract fossil strata for i,(yy,hh,c) in enumerate([(5.9,.35,RGBColor(54,77,78)),(6.28,.43,RGBColor(65,86,82)),(6.75,.75,RGBColor(77,95,88))]): rect(s,0,yy,13.333,hh,c) text(s,'ORIGIN &\nEVOLUTION OF MAN',.75,1.1,7.6,1.9,39,WHITE,True) text(s,'A visual study deck based on NCERT Biology, Class XII\nChapter 7: Evolution',.78,3.35,5.8,.62,18,RGBColor(203,221,213)) rect(s,.78,4.42,3.0,.48,TEAL,True); text(s,'From primate ancestors to Homo sapiens',.97,4.55,2.63,.18,10,WHITE,True) # evolutionary silhouettes for x,sc,c in [(8.25,.75,RGBColor(122,160,151)),(9.2,.95,RGBColor(151,178,150)),(10.25,1.15,GOLD),(11.45,1.36,WHITE)]: human_icon(s,x,4.45+(1.36-sc)*.55,sc,c) text(s,'KEY IDEA',.8,6.5,1.2,.2,10,GOLD,True); text(s,'Evolution is branching, not a straight “ladder”.',.8,6.75,6.5,.35,17,WHITE,True) def add_slide2(): s=prs.slides.add_slide(blank); header(s,'What does “origin of man” mean?','The big picture',2) text(s,'Humans are primates. The NCERT account traces fossil evidence and major anatomical changes across hominid lineages.',.68,1.85,8.8,.56,21,INK) for x,lab,desc,col in [(0.8,'Common ancestry','Humans and living apes share earlier common ancestors.',TEAL),(4.5,'Branching change','Different hominid forms overlapped; not all were direct ancestors.',GOLD),(8.2,'Evidence-led','Fossils, dating, tools and comparative biology inform the story.',RUST)]: circle(s,x,3.0,1.0,col); text(s,lab,x-0.1,4.23,3.15,.35,18,NAVY,True); text(s,desc,x-0.1,4.72,3.1,.75,15,MUTED) footer(s) def add_slide3(): s=prs.slides.add_slide(blank); header(s,'Primate roots and early hominids','Starting point',3) text(s,'NCERT describes an evolutionary sequence beginning with early ape-like forms in the Miocene.',.68,1.83,10.7,.36,19,INK) rect(s,.75,2.62,11.72,.08,RGBColor(188,203,195)) data=[('Dryopithecus','~15 mya','More ape-like','Forest-dwelling; hairy'),('Ramapithecus','~15 mya','More man-like','Less hairy; more human-like'),('Hominids','later','Upright trend','Bipedal adaptations become important')] for i,(a,b,c,d) in enumerate(data): x=1.0+i*3.85; circle(s,x,2.35,.62,[TEAL,GOLD,RUST][i],str(i+1),14); text(s,a,x-.14,3.23,2.8,.34,20,NAVY,True); text(s,b,x-.14,3.66,2.5,.27,13,[TEAL,GOLD,RUST][i],True); text(s,c,x-.14,4.12,2.9,.28,16,INK,True); text(s,d,x-.14,4.56,2.85,.56,14,MUTED) text(s,'mya = million years ago',.78,6.65,3,.24,11,MUTED); footer(s) def add_slide4(): s=prs.slides.add_slide(blank); header(s,'Early Homo: the earliest tool makers','Homo habilis',4) rect(s,.72,1.92,4.2,4.67,PALE,True); human_icon(s,2.1,2.35,2.45,TEAL); text(s,'Homo habilis',.98,5.55,3.7,.38,24,NAVY,True,PP_ALIGN.CENTER) text(s,'Key NCERT points',5.5,2.0,4,.36,23,NAVY,True) bullet(s,['Lived in Africa about 2 million years ago.','Brain capacity: about 650-800 cc.','Probably did not eat meat.','Associated with use of simple stone tools.'],5.5,2.62,6.2,19) rect(s,5.5,5.88,6.35,.56,CREAM,True,line=GOLD); text(s,'Trend: larger brain and increasingly purposeful tool use.',5.76,6.06,5.9,.2,14,INK,True); footer(s) def add_slide5(): s=prs.slides.add_slide(blank); header(s,'Homo erectus: wider spread, larger brain','The upright human',5) text(s,'Homo erectus is represented in the NCERT sequence by fossils such as Java man and Peking man.',.7,1.86,10.8,.38,19,INK) for x,title,detail,col in [(1.0,'Age','~1.5 mya',TEAL),(4.2,'Brain','~900 cc',GOLD),(7.4,'Diet','Probably ate meat',RUST),(10.1,'Range','Africa & Asia',TEAL)]: rect(s,x,2.72,2.25,1.52,CREAM,True); text(s,title,x+.18,2.98,1.85,.25,13,col,True,PP_ALIGN.CENTER); text(s,detail,x+.12,3.38,2.0,.34,20,NAVY,True,PP_ALIGN.CENTER) text(s,'Why it matters',.82,5.0,2.5,.35,21,NAVY,True); bullet(s,['Clear bipedal body plan','Greater cranial capacity','Expansion beyond Africa'],.82,5.55,4.4,18) text(s,'The evolutionary record is a set of populations and lineages, not a single file of “better” organisms.',6.1,5.2,5.55,.72,18,TEAL,True); footer(s) def add_slide6(): s=prs.slides.add_slide(blank); header(s,'Neanderthals and the rise of modern humans','Later Homo',6) # comparison for x,title,col in [(1.0,'Homo neanderthalensis',RUST),(7.0,'Homo sapiens',TEAL)]: rect(s,x,2.05,5.0,3.82,CREAM,True); rect(s,x,2.05,5.0,.55,col,True); text(s,title,x+.24,2.2,4.55,.22,16,WHITE,True) text(s,'~100,000 to 40,000 years ago\nBrain capacity: ~1400 cc\nLived in near-east and central Asia\nUsed hides to protect from cold.',1.35,3.0,4.3,2.2,18,INK) text(s,'Modern humans arose in Africa.\nMigration and cultural change continue to shape human history.\n\nHomo sapiens fossils: ~75,000 to 10,000 years ago (NCERT sequence).',7.35,3.0,4.25,2.2,18,INK) footer(s) def add_slide7(): s=prs.slides.add_slide(blank); header(s,'From hunter-gatherers to cultures','Human behaviour',7) text(s,'NCERT links changes in human life with innovations in tools, shelter and social organisation.',.7,1.86,11,.34,19,INK) items=[('Tools','Stone tools enabled new ways of obtaining and processing food.'),('Fire','Control of fire changed food preparation and protection.'),('Art & language','Communication and symbolic expression supported culture.'),('Agriculture','Later settled life reshaped human societies.')] for i,(t,d) in enumerate(items): x=.85+(i%2)*6.0; y=2.65+(i//2)*1.75; circle(s,x,y,.64,[TEAL,GOLD,RUST,TEAL][i],str(i+1),13); text(s,t,x+.85,y+.02,3.9,.28,18,NAVY,True); text(s,d,x+.85,y+.42,4.5,.62,15,MUTED) footer(s) def add_slide8(): s=prs.slides.add_slide(blank); header(s,'NCERT human-evolution timeline','At a glance',8) rect(s,1.0,3.52,11.18,.09,RGBColor(171,192,185)) nodes=[(1.0,'Dryopithecus','15 mya','ape-like',TEAL),(3.14,'Ramapithecus','15 mya','man-like',GOLD),(5.32,'H. habilis','2 mya','650-800 cc',RUST),(7.55,'H. erectus','1.5 mya','~900 cc',TEAL),(9.78,'Neanderthal','100-40 kya','~1400 cc',GOLD),(11.65,'H. sapiens','75-10 kya*','modern human',RUST)] for x,a,b,c,col in nodes: timeline_node(s,x,3.22,a,b+'\n'+c,str(nodes.index((x,a,b,c,col))+1),col) text(s,'*Time ranges shown as presented in the NCERT Class XII sequence. Fossil dates and relationships are refined as new evidence emerges.',.82,6.52,11.6,.32,11,MUTED); footer(s) def add_slide9(): s=prs.slides.add_slide(blank); header(s,'Key takeaways','Revision',9) left=['Humans are primates with shared ancestry.','Fossils document multiple hominid forms.','Bipedalism, brain size and tool use changed over time.','Evolution branches and populations can overlap.'] right=['Dryopithecus: more ape-like','Ramapithecus: more man-like','H. habilis: ~650-800 cc','H. erectus: ~900 cc','Neanderthal: ~1400 cc'] rect(s,.78,2.0,6.0,4.42,PALE,True); text(s,'Remember',1.1,2.35,3,.34,22,TEAL,True); bullet(s,left,1.1,2.98,5.15,19) rect(s,7.03,2.0,5.45,4.42,CREAM,True); text(s,'Exam flash facts',7.35,2.35,3.2,.34,22,RUST,True); bullet(s,right,7.35,2.98,4.55,18) footer(s) def add_slide10(): s=prs.slides.add_slide(blank); rect(s,0,0,13.333,7.5,NAVY); rect(s,0,0,13.333,.18,GOLD) text(s,'CHECK YOUR UNDERSTANDING',.78,.82,5,.25,13,GOLD,True); text(s,'Quick recap',.78,1.25,5,.62,34,WHITE,True) qs=['1. Which early Homo is associated with a brain capacity of 650-800 cc?','2. Name the two Miocene forms contrasted by NCERT as more ape-like and more man-like.','3. Which form had an average brain capacity of about 1400 cc?','4. Why should human evolution not be drawn as a simple straight ladder?'] for i,q in enumerate(qs): text(s,q,1.0,2.2+i*.9,10.85,.52,18,RGBColor(224,237,230),False) text(s,'Source for classroom study: NCERT Biology, Class XII, Chapter 7 - Evolution.\nThis deck paraphrases the NCERT sequence for learning and revision.',.8,6.55,9.7,.42,12,RGBColor(179,204,195)); text(s,'Thank you',10.55,6.53,1.6,.3,16,GOLD,True,PP_ALIGN.RIGHT) for f in [add_title,add_slide2,add_slide3,add_slide4,add_slide5,add_slide6,add_slide7,add_slide8,add_slide9,add_slide10]: f() prs.core_properties.title='Origin and Evolution of Man - NCERT Biology Class XII' prs.core_properties.subject='NCERT-aligned classroom presentation' prs.core_properties.author='Orris' prs.save(OUT) print(OUT) ''') PY python "/tmp/workspace/origin-evolution-man-ppt/src/create_ppt.py"
~/origin-evolution-man-ppt/output
python - <<'PY' from pptx import Presentation p='/tmp/workspace/origin-evolution-man-ppt/output/Origin_and_Evolution_of_Man_NCERT.pptx' prs=Presentation(p) print('slides',len(prs.slides)) for i,s in enumerate(prs.slides,1): texts=[sh.text.strip().replace('\n',' | ') for sh in s.shapes if getattr(sh,'has_text_frame',False) and sh.text.strip()] print(i, ' :: '.join(texts[:3])) PY
Origin and Evolution of Man NCERT
Presentation · PPTX