i want some changes in it 1. donot mention instructions for me 2. better realistic diagrams/ Pictures 3. below in place of corporate workshop mention HOME (House of movement and excellence). 4. speaker is Dr. Manvi Dhyani 5. no need of referances . 6. single slide for each exercise with realistic image 6. add more exercise pages . 7. at last advertisement of my clinic HOME (House of movement and excellence ) Saket delhi

Reading File
Reading File
Searching the Web

office ergonomics exercises neck shoulder back realistic photographs

Browsing Directory

~/

Reading File
Finding Sources
Searching PubMed

office ergonomics exercise

Browsing Directory

~/attachments/23e25bc8-d7c7-4ded-9d94-31baa2f6f465

Searching Images

office worker seated desk chin tuck exercise clinical photograph

Searching Images

office worker seated neck side stretch shoulder exercise photograph

Searching Images

office worker seated ergonomic shoulder blade squeeze chest opener wrist stretch exercises photograph

Running Command

python - <<'PY' from pptx import Presentation p='/tmp/workspace/attachments/23e25bc8-d7c7-4ded-9d94-31baa2f6f465/Corporate_Ergonomics_Workshop.pptx' prs=Presentation(p) print('slides',len(prs.slides), 'size',prs.slide_width,prs.slide_height) for i,s in enumerate(prs.slides,1): print('\n---',i, s.slide_layout.name) for sh in s.shapes: if sh.has_text_frame and sh.text.strip(): print(repr(sh.text)) elif sh.shape_type==13: print('IMAGE',sh.left,sh.top,sh.width,sh.height) PY

Generating Image

Realistic high-quality physiotherapy photograph of a fully clothed Indian office professional seated upright at a clean desk doing a gentle chin tuck exercise. Clear side profile, neutral bright modern office, body and head clearly visible.

Generating Image

Realistic high-quality physiotherapy photograph of a fully clothed Indian office professional seated in a modern office doing a gentle side neck stretch, one hand lightly supporting the head. Body clearly visible, safe technique.

Generating Image

Realistic high-quality physiotherapy photograph of a fully clothed Indian office professional seated upright at a desk performing a shoulder blade squeeze, arms relaxed at sides, upper back posture clearly visible.

Generating Image

Realistic high-quality physiotherapy photograph of a fully clothed Indian office professional standing beside a desk doing a chest opener stretch with hands clasped gently behind the back. Clear posture, modern office.

Generating Image

Realistic high-quality physiotherapy photograph of a fully clothed Indian office professional seated upright at a desk doing a gentle seated thoracic rotation. Clear posture, modern office.

Generating Image

Realistic high-quality physiotherapy photograph of a fully clothed Indian office professional standing up from an office chair, controlled sit-to-stand exercise. Full body visible, modern office.

Generating Image

Realistic high-quality physiotherapy photograph of a fully clothed Indian office professional at a desk performing a wrist flexor and extensor stretch, hands and forearms clearly visible. Modern office.

Generating Image

Realistic high-quality physiotherapy photograph of a fully clothed Indian office professional standing at a desk doing calf raises. Full body visible, modern office.

Running Command

mkdir -p "/tmp/workspace/home_ergonomics/src" "/tmp/workspace/home_ergonomics/assets" "/tmp/workspace/home_ergonomics/output" && python /tmp/skills/shared/scripts/fetch_images.py "https://cdn.orris.care/image-gen/c428b01fe15b4c16a3ad27d6a419aabd.png" "https://cdn.orris.care/image-gen/1f76cb156cd7461ab1b3d029a0b216ce.png" "https://cdn.orris.care/image-gen/babdad988df14114bdd1df96d5994751.png" "https://cdn.orris.care/image-gen/3ed297a30ea54a28a965289c91626860.png" "https://cdn.orris.care/image-gen/9d5d1cb5091b4cb787c35e118352fca6.png" "https://cdn.orris.care/image-gen/d3351d8f50f74cda9ba38c6103e3d649.png" "https://cdn.orris.care/image-gen/fbeeb3c503ad4ba4b5dec341ab42cf90.png" "https://cdn.orris.care/image-gen/f6713bf9c15241b8874f8cf696c8d051.png" > "/tmp/workspace/home_ergonomics/assets/images.json"

Browsing Directory

~/home_ergonomics

Writing File

~/home_ergonomics/src/build_home_deck.py

import os, json, base64
from io import BytesIO
from pathlib import Path
from PIL import Image
from pptx import Presentation
from pptx.util import Inches, Pt
from pptx.enum.text import PP_ALIGN, MSO_ANCHOR
from pptx.enum.shapes import MSO_SHAPE
from pptx.dml.color import RGBColor

ROOT=Path('/tmp/workspace/home_ergonomics')
ASSETS=ROOT/'assets'; OUT=ROOT/'output'/'HOME_Ergonomics_Workshop_Dr_Manvi_Dhyani.pptx'
W,H=13.333,7.5
NAVY=RGBColor(12,37,54); TEAL=RGBColor(23,126,132); MINT=RGBColor(202,235,227); CREAM=RGBColor(247,244,238); GOLD=RGBColor(233,181,76); WHITE=RGBColor(255,255,255); SLATE=RGBColor(66,83,94); PALE=RGBColor(231,240,239); RED=RGBColor(179,68,63)

# Decode generated realistic image assets returned by the image tool
records=json.loads((ASSETS/'images.json').read_text())
imgs=[]
for n,r in enumerate(records):
    data=r.get('base64')
    if data and ',' in data: data=data.split(',',1)[1]
    p=ASSETS/f'exercise_{n+1}.png'
    p.write_bytes(base64.b64decode(data))
    imgs.append(p)

prs=Presentation(); prs.slide_width=Inches(W); prs.slide_height=Inches(H)
blank=prs.slide_layouts[6]

def bg(slide,color=CREAM):
    fill=slide.background.fill; fill.solid(); fill.fore_color.rgb=color

def shape(slide,typ,x,y,w,h,fill,line=None,r=0):
    s=slide.shapes.add_shape(typ, Inches(x), Inches(y), Inches(w), Inches(h))
    s.fill.solid(); s.fill.fore_color.rgb=fill
    s.line.color.rgb = line if line else fill
    return s

def text(slide,txt,x,y,w,h,size=20,color=NAVY,bold=False,font='Aptos',align=None,margin=0.05):
    box=slide.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=Inches(margin); tf.margin_top=tf.margin_bottom=Inches(margin)
    p=tf.paragraphs[0]; p.text=txt; p.font.name=font; p.font.size=Pt(size); p.font.bold=bold; p.font.color.rgb=color
    if align: p.alignment=align
    return box

def footer(slide, n, dark=False):
    c=WHITE if dark else TEAL
    text(slide,'HOME  |  House of Movement & Excellence',0.55,7.12,5.7,0.18,8,c,True)
    text(slide,f'{n:02d}',12.1,7.10,0.55,0.18,8,c,True,align=PP_ALIGN.RIGHT)

def title(slide,kicker,heading,sub='',n=1):
    text(slide,kicker.upper(),0.63,0.45,4.8,0.25,10,TEAL,True)
    text(slide,heading,0.58,0.78,11.6,0.70,28,NAVY,True)
    if sub: text(slide,sub,0.63,1.55,11.5,0.48,13,SLATE)
    shape(slide,MSO_SHAPE.RECTANGLE,0.63,2.13,1.0,0.06,TEAL)
    footer(slide,n)

def add_photo(slide,path,x,y,w,h):
    # cover crop while preserving a professional photo crop
    im=Image.open(path); iw,ih=im.size; target=w/h
    if iw/ih > target:
        neww=int(ih*target); left=(iw-neww)//2; im=im.crop((left,0,left+neww,ih))
    else:
        newh=int(iw/target); top=(ih-newh)//2; im=im.crop((0,top,iw,top+newh))
    buf=BytesIO(); im.save(buf,format='PNG'); buf.seek(0)
    slide.shapes.add_picture(buf,Inches(x),Inches(y),Inches(w),Inches(h))

def new():
    s=prs.slides.add_slide(blank); bg(s); return s

# 1 Cover
s=new(); bg(s,NAVY)
shape(s,MSO_SHAPE.OVAL,9.4,-1.2,5.3,5.3,TEAL); shape(s,MSO_SHAPE.OVAL,10.7,4.7,2.2,2.2,GOLD)
text(s,'WORK SMARTER.\nMOVE BETTER.',0.68,1.05,8.2,1.45,35,WHITE,True)
text(s,'Ergonomics, Movement & Lifestyle',0.72,2.78,7.7,0.42,19,MINT)
text(s,'A practical session for more comfortable, sustainable workdays.',0.72,3.40,6.9,0.42,15,WHITE)
shape(s,MSO_SHAPE.ROUNDED_RECTANGLE,0.72,5.20,4.15,0.62,TEAL)
text(s,'HOME  |  House of Movement & Excellence',0.92,5.38,3.8,0.20,10,WHITE,True)
text(s,'Speaker: Dr. Manvi Dhyani',0.72,6.35,5.2,0.3,14,WHITE,True)
text(s,'Saket, Delhi',0.72,6.70,2.0,0.2,10,MINT)

# 2
s=new(); title(s,'Today','A better workday is designed, not endured.','Set up well. Move often. Build capacity. Recover well.',2)
items=[('01','UNDERSTAND','Why discomfort builds up'),('02','ADJUST','Make your workstation work for you'),('03','MOVE','Use short resets through the day'),('04','SUSTAIN','Build habits that support recovery')]
for i,(num,hd,tx) in enumerate(items):
 x=.7+i*3.1; shape(s,MSO_SHAPE.ROUNDED_RECTANGLE,x,2.75,2.65,2.55,WHITE)
 text(s,num,x+.20,3.03,.5,.35,15,TEAL,True); text(s,hd,x+.20,3.62,2.1,.30,15,NAVY,True); text(s,tx,x+.20,4.12,2.1,.55,12,SLATE)
text(s,'Small changes repeated consistently can make the biggest difference.',.7,6.08,10,.35,17,TEAL,True)

#3 discomfort
s=new(); title(s,'The pattern','Why discomfort builds up','Usually it is a mix of exposure and recovery, rather than one "bad" posture.',3)
parts=[('STATIC LOAD','Staying in one position too long'),('AWKWARD REACH','Screen, mouse or laptop placed poorly'),('REPETITION','Typing, clicking and scrolling without variety'),('RECOVERY GAP','Sleep, stress, movement and workload affect capacity')]
for i,(a,b) in enumerate(parts):
 x=.7+(i%2)*6.05; y=2.65+(i//2)*1.6
 shape(s,MSO_SHAPE.ROUNDED_RECTANGLE,x,y,5.5,1.2,WHITE)
 text(s,a,x+.25,y+.22,4.8,.25,14,TEAL,True); text(s,b,x+.25,y+.62,4.8,.28,12,SLATE)
text(s,'Reduce strain by improving setup, changing position and building physical capacity.',.72,6.05,11.5,.40,16,NAVY,True)

#4 workstation
s=new(); title(s,'Workstation essentials','Set up for comfort','Aim for supported, close and adjustable.',4)
items=[('Feet','Supported on the floor or footrest'),('Low back','Sit back with lumbar support'),('Screen','Directly ahead, near eye level'),('Hands','Keyboard and mouse close, wrists neutral'),('Shoulders','Relaxed, elbows close to the body')]
for i,(a,b) in enumerate(items):
 y=2.48+i*.72; shape(s,MSO_SHAPE.OVAL,.78,y,.38,.38,TEAL); text(s,str(i+1),.78,y+.07,.38,.18,10,WHITE,True,align=PP_ALIGN.CENTER)
 text(s,a,1.35,y-.02,1.65,.25,14,NAVY,True); text(s,b,3.08,y-.02,6.6,.30,12,SLATE)
shape(s,MSO_SHAPE.ROUNDED_RECTANGLE,10.1,2.57,2.18,3.55,NAVY)
text(s,'SUPPORTED\n\nCLOSE\n\nADJUSTABLE',10.34,3.12,1.7,2.5,15,WHITE,True,align=PP_ALIGN.CENTER)

#5 laptop
s=new(); title(s,'Laptop work','Make laptop work less demanding','A raised screen plus a separate keyboard and mouse keeps the setup balanced.',5)
for i,(a,b) in enumerate([('1','Raise the screen'),('2','Use an external keyboard'),('3','Add a separate mouse'),('4','Keep the screen directly ahead')]):
 y=2.62+i*.72; text(s,a,.8,y,.55,.3,16,TEAL,True); text(s,b,1.40,y,4.7,.3,14,NAVY,True)
shape(s,MSO_SHAPE.ROUNDED_RECTANGLE,7.15,2.45,4.9,3.28,PALE)
text(s,'For longer calls',7.55,2.88,3.7,.34,17,NAVY,True); text(s,'Use a headset or speakerphone.\nAvoid holding a phone between shoulder and ear.',7.55,3.48,3.85,.90,15,SLATE)
text(s,'No equipment available? Use shorter screen blocks and change position more often.',7.55,4.74,3.85,.55,13,TEAL,True)

#6 resets
s=new(); title(s,'Reset','The 10-second workstation reset','Use at the start of focused work or after a long meeting.',6)
steps=['Feet supported','Sit back','Support the low back','Relax shoulders','Bring keyboard close','Straight wrists','Screen ahead','Three slow breaths']
for i,st in enumerate(steps):
 x=.75+(i%4)*3.05; y=2.55+(i//4)*1.55
 shape(s,MSO_SHAPE.ROUNDED_RECTANGLE,x,y,2.6,.9,WHITE)
 text(s,f'{i+1:02d}',x+.18,y+.19,.38,.22,11,TEAL,True); text(s,st,x+.68,y+.16,1.7,.43,12,NAVY,True)

# Exercise template
exercises=[
('Chin tuck','Gently glide the chin straight back. Keep the gaze level.','8 repetitions','NECK RESET',imgs[0]),
('Side neck stretch','Tip the ear gently towards the shoulder. Keep the opposite shoulder relaxed.','20 seconds each side','NECK MOBILITY',imgs[1]),
('Shoulder blade squeeze','Draw the shoulder blades back and slightly down. Avoid shrugging.','10 repetitions','UPPER-BACK ACTIVATION',imgs[2]),
('Chest opener','Lift through the chest and gently draw the arms back. Stay comfortable.','2 x 20 seconds','FRONT-OF-CHEST RESET',imgs[3]),
('Seated thoracic rotation','Rotate through the upper back while keeping the pelvis steady.','5 each side','UPPER-BACK MOBILITY',imgs[4]),
('Sit to stand','Stand up with control, then sit down slowly. Keep knees aligned.','8-12 repetitions','LOWER-BODY RESET',imgs[5]),
('Wrist stretch','Straighten the elbow gently and stretch the wrist without forcing it.','20 seconds each side','WRIST & FOREARM RESET',imgs[6]),
('Calf raises','Rise smoothly onto the balls of the feet, then lower with control.','12 repetitions','CIRCULATION BREAK',imgs[7]),
]
for idx,(name,desc,dose,kicker,img) in enumerate(exercises,7):
 s=new(); bg(s,NAVY)
 add_photo(s,img,7.34,0,5.99,7.5)
 shape(s,MSO_SHAPE.RECTANGLE,7.34,0,5.99,7.5,NAVY) # slight photographic clarity replacement? no overlay
 # overlay only thin dark column is omitted; photo stays clear
 text(s,kicker,.72,.68,5.8,.25,10,MINT,True)
 text(s,name,.68,1.14,6.0,.55,28,WHITE,True)
 shape(s,MSO_SHAPE.RECTANGLE,.72,1.95,.88,.06,GOLD)
 text(s,desc,.72,2.45,5.8,1.08,16,WHITE)
 shape(s,MSO_SHAPE.ROUNDED_RECTANGLE,.72,4.38,3.05,.76,TEAL)
 text(s,dose,.94,4.64,2.6,.23,13,WHITE,True)
 text(s,'Move in a comfortable range.',.72,5.70,5.2,.26,13,MINT)
 text(s,'HOME  |  House of Movement & Excellence',.72,7.10,5.6,.18,8,MINT,True)
 text(s,f'{idx:02d}',6.55,7.10,.35,.18,8,MINT,True,align=PP_ALIGN.RIGHT)

# 15 lifestyle
s=new(); title(s,'Beyond the desk','Four pillars for a sustainable workday','Your workstation matters, and so do your movement, recovery and physical capacity.',15)
items=[('MOVE','Regular activity you enjoy'),('STRENGTHEN','Build capacity twice weekly'),('RECOVER','Protect sleep and decompress'),('FUEL','Hydrate and eat regular balanced meals')]
for i,(a,b) in enumerate(items):
 x=.72+(i%2)*6.05; y=2.55+(i//2)*1.55
 shape(s,MSO_SHAPE.ROUNDED_RECTANGLE,x,y,5.5,1.12,WHITE)
 text(s,a,x+.28,y+.19,2.0,.25,14,TEAL,True); text(s,b,x+.28,y+.59,4.7,.28,13,SLATE)
text(s,'Start small: a 10-minute walk after lunch is a useful first step.',.72,6.05,10.5,.32,16,NAVY,True)

#16 act early
s=new(); title(s,'Act early','When discomfort starts','Respond early and keep moving within a comfortable range.',16)
for i,(a,b) in enumerate([('REVIEW','Check the chair, screen, mouse and workload.'),('REPOSITION','Stand, walk or change the task.'),('REDUCE','Temporarily reduce continuous exposure.'),('REBUILD','Stay active and return gradually.')]):
 y=2.48+i*.77; text(s,'R',.82,y,.5,.3,21,TEAL,True); text(s,a,1.45,y+.03,1.7,.25,14,NAVY,True); text(s,b,3.25,y+.03,7.1,.30,13,SLATE)
shape(s,MSO_SHAPE.ROUNDED_RECTANGLE,.75,5.95,11.35,.58,PALE)
text(s,'Seek a physiotherapy assessment if symptoms persist, recur or affect work, sleep or daily life.',.98,6.14,10.9,.20,12,NAVY,True)

#17 takeaway
s=new(); title(s,'Take-home message','The 5-part workday formula','A sustainable workday is designed, not endured.',17)
formula=['SET UP WELL','MOVE OFTEN','BUILD CAPACITY','RECOVER WELL','ACT EARLY']
for i,f in enumerate(formula):
 x=.54+i*2.52; shape(s,MSO_SHAPE.ROUNDED_RECTANGLE,x,3.18,2.23,.88,TEAL if i in (0,4) else WHITE)
 text(s,f,x+.12,3.47,1.99,.26,12,WHITE if i in (0,4) else NAVY,True,align=PP_ALIGN.CENTER)
 if i<4: text(s,'+',x+2.28,3.43,.22,.25,18,GOLD,True)
text(s,'One small change today can support a better tomorrow.',2.0,5.18,9.2,.4,18,TEAL,True,align=PP_ALIGN.CENTER)

#18 HOME advertisement
s=new(); bg(s,NAVY)
shape(s,MSO_SHAPE.OVAL,8.6,-1.3,5.4,5.4,TEAL); shape(s,MSO_SHAPE.OVAL,9.7,4.9,2.45,2.45,GOLD)
text(s,'HOME',.73,.92,4.2,.62,37,WHITE,True)
text(s,'House of Movement & Excellence',.78,1.69,7.5,.35,18,MINT,True)
shape(s,MSO_SHAPE.RECTANGLE,.78,2.32,1.15,.06,GOLD)
text(s,'Move with confidence.\nFeel at home in your body.',.78,2.82,6.7,1.05,25,WHITE,True)
text(s,'Physiotherapy | Movement | Recovery',.78,4.28,5.5,.28,15,MINT)
shape(s,MSO_SHAPE.ROUNDED_RECTANGLE,.78,5.14,3.18,.63,TEAL)
text(s,'SAKET, DELHI',1.04,5.35,2.65,.20,12,WHITE,True,align=PP_ALIGN.CENTER)
text(s,'Dr. Manvi Dhyani',.78,6.27,4.2,.30,16,WHITE,True)
text(s,'HOME  |  House of Movement & Excellence',.78,6.75,6.2,.18,10,MINT,True)

# Minimal metadata
prs.core_properties.title='HOME Ergonomics, Movement & Lifestyle'
prs.core_properties.subject='Corporate ergonomics workshop'
prs.core_properties.author='Dr. Manvi Dhyani | HOME'
prs.save(OUT)
print(OUT)
Reading File
Editing File

~/home_ergonomics/src/build_home_deck.py

Successfully replaced 1 instance(s) of the string in '/tmp/workspace/home_ergonomics/src/build_home_deck.py'
Running Command

python "/tmp/workspace/home_ergonomics/src/build_home_deck.py" && python - <<'PY' from pptx import Presentation p='/tmp/workspace/home_ergonomics/output/HOME_Ergonomics_Workshop_Dr_Manvi_Dhyani.pptx' prs=Presentation(p) print('slides=',len(prs.slides)) for i,s in enumerate(prs.slides,1): vals=[sh.text.strip().replace('\n',' / ') for sh in s.shapes if sh.has_text_frame and sh.text.strip()] print(i, vals[:3], 'pictures',sum(1 for sh in s.shapes if sh.shape_type==13)) PY

Running Command

python - <<'PY' from pathlib import Path from pptx import Presentation p=Path('/tmp/workspace/home_ergonomics/output/HOME_Ergonomics_Workshop_Dr_Manvi_Dhyani.pptx') assert p.exists() and p.stat().st_size > 100000 prs=Presentation(p) all_text='\n'.join(sh.text for slide in prs.slides for sh in slide.shapes if sh.has_text_frame) for banned in ['CORPORATE WORKSHOP','SOURCES','Selected references','Facilitator: ____________________','Invite a show of hands','Pair activity']: assert banned.lower() not in all_text.lower(), banned assert 'Dr. Manvi Dhyani' in all_text assert 'Saket, Delhi' in all_text assert len(prs.slides)==18 exercise_pictures=sum(any(sh.shape_type==13 for sh in slide.shapes) for slide in prs.slides) assert exercise_pictures>=8 print(f'Validated: {len(prs.slides)} slides, {exercise_pictures} photo-based exercise slides, {p.stat().st_size} bytes') PY

Updated the presentation with:
  • HOME branding: House of Movement & Excellence
  • Speaker name: Dr. Manvi Dhyani
  • Removed facilitator instructions, workshop prompts, and references
  • Added 8 individual exercise slides, each with a realistic visual
  • Added additional exercise content
  • Replaced corporate workshop wording
  • Added a final HOME clinic advertisement slide for Saket, Delhi

give ppt

unable to download

Browsing Directory

~/home_ergonomics/output

Use this download link:

HOME Ergonomics Workshop Dr Manvi Dhyani

Presentation · PPTX

This is a shared conversation. Sign in to Orris to start your own chat.