make me flow charts of this in easy way
cd /home/daytona/workspace/attachments/751e32f2-404d-4342-8336-35dcb88d1d28 && python3 -c " import pdfplumber with pdfplumber.open('JOINTS (2).pdf') as pdf: print(f'Total pages: {len(pdf.pages)}') for i, page in enumerate(pdf.pages): text = page.extract_text() print(f'--- PAGE {i+1} ---') print(text[:2000] if text else '[no text]') print() "
mkdir -p /home/daytona/workspace/joints-flowcharts
~/joints-flowcharts/joints_flowcharts.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>JOINTS - Easy Flowcharts</title>
<style>
* { box-sizing: border-box; margin: 0; padding: 0; }
body {
font-family: 'Segoe UI', Arial, sans-serif;
background: #f0f4f8;
color: #222;
padding: 30px 20px;
}
h1 {
text-align: center;
font-size: 2rem;
color: #1a2e5a;
margin-bottom: 6px;
letter-spacing: 1px;
}
.subtitle {
text-align: center;
color: #5a7ab0;
font-size: 0.95rem;
margin-bottom: 40px;
}
.section-title {
font-size: 1.3rem;
font-weight: 700;
color: #fff;
background: #1a2e5a;
border-radius: 10px 10px 0 0;
padding: 12px 22px;
margin-top: 40px;
display: inline-block;
width: 100%;
}
.chart-wrap {
background: #fff;
border-radius: 0 0 14px 14px;
border: 2px solid #1a2e5a;
padding: 30px 20px 36px 20px;
margin-bottom: 10px;
overflow-x: auto;
}
/* ---- FLOWCHART NODES ---- */
.fc { display: flex; flex-direction: column; align-items: center; }
.fc-row { display: flex; flex-direction: row; align-items: flex-start; justify-content: center; gap: 18px; flex-wrap: wrap; }
.node {
border-radius: 12px;
padding: 10px 18px;
font-weight: 600;
font-size: 0.95rem;
text-align: center;
min-width: 140px;
max-width: 210px;
box-shadow: 0 2px 8px rgba(0,0,0,0.10);
position: relative;
}
.node-root {
background: #1a2e5a;
color: #fff;
font-size: 1.15rem;
padding: 14px 32px;
border-radius: 16px;
min-width: 180px;
}
.node-cat1 { background: #e74c3c; color: #fff; }
.node-cat2 { background: #2980b9; color: #fff; }
.node-cat3 { background: #27ae60; color: #fff; }
.node-cat4 { background: #8e44ad; color: #fff; }
.node-cat5 { background: #e67e22; color: #fff; }
.node-mid1 { background: #fadbd8; color: #922b21; border: 2px solid #e74c3c; }
.node-mid2 { background: #d6eaf8; color: #1a5276; border: 2px solid #2980b9; }
.node-mid3 { background: #d5f5e3; color: #1e8449; border: 2px solid #27ae60; }
.node-mid4 { background: #e8daef; color: #6c3483; border: 2px solid #8e44ad; }
.node-mid5 { background: #fdebd0; color: #935116; border: 2px solid #e67e22; }
.node-leaf {
background: #f8f9fa;
color: #333;
border: 1.5px solid #aaa;
font-size: 0.85rem;
font-weight: 400;
min-width: 110px;
max-width: 170px;
border-radius: 8px;
padding: 7px 12px;
}
.node-note {
background: #fffbe6;
color: #7d5a00;
border: 1.5px dashed #f0c040;
font-size: 0.82rem;
font-weight: 400;
border-radius: 8px;
padding: 7px 12px;
max-width: 260px;
text-align: left;
}
.node-mech {
background: #eaf4fb;
color: #1a5276;
border: 2px solid #5dade2;
font-size: 0.88rem;
font-weight: 500;
border-radius: 10px;
padding: 8px 14px;
min-width: 120px;
max-width: 190px;
text-align: center;
}
/* Arrows */
.arrow-down { text-align: center; font-size: 1.4rem; color: #888; margin: 2px 0; line-height: 1; }
.arrow-right { font-size: 1.2rem; color: #888; align-self: center; }
.branch-wrap {
display: flex;
flex-direction: column;
align-items: center;
gap: 4px;
}
.sub-branch {
display: flex;
flex-direction: column;
align-items: center;
gap: 3px;
}
.horz-line {
border-top: 2.5px solid #bbb;
width: 80%;
margin: 0 auto;
}
.badge {
display: inline-block;
background: #1a2e5a;
color: #fff;
border-radius: 20px;
padding: 2px 12px;
font-size: 0.78rem;
font-weight: 700;
margin-top: 4px;
letter-spacing: 0.5px;
}
/* Table styles */
.fc-table {
width: 100%;
border-collapse: collapse;
font-size: 0.9rem;
margin-top: 10px;
}
.fc-table th {
background: #1a2e5a;
color: #fff;
padding: 10px 12px;
text-align: left;
}
.fc-table td {
padding: 8px 12px;
border-bottom: 1px solid #dde;
vertical-align: top;
}
.fc-table tr:nth-child(even) td { background: #f4f6fb; }
.fc-table tr:hover td { background: #e8eef8; }
.fc-table .axes-1 { background: #fdebd0; }
.fc-table .axes-2 { background: #d5f5e3; }
.fc-table .axes-3 { background: #d6eaf8; }
.divider { border: none; border-top: 2px dashed #c8d0e0; margin: 36px 0 0 0; }
/* Responsive */
@media (max-width: 700px) {
.fc-row { gap: 8px; }
.node { font-size: 0.82rem; padding: 7px 10px; min-width: 90px; }
}
</style>
</head>
<body>
<h1>🧠 JOINTS - Easy Flowcharts</h1>
<p class="subtitle">Based on THIEME Atlas of Anatomy — General Anatomy & Musculoskeletal System</p>
<!-- =========================================================
CHART 1: MASTER CLASSIFICATION
========================================================== -->
<div class="section-title">① Master Classification of Joints</div>
<div class="chart-wrap">
<div class="fc">
<!-- ROOT -->
<div class="node node-root">🦳 JOINTS</div>
<div class="arrow-down">↓</div>
<!-- 2 MAIN CATEGORIES -->
<div class="fc-row">
<!-- FALSE JOINTS -->
<div class="branch-wrap">
<div class="node node-cat1">✘ FALSE JOINTS<br><small>(Synarthroses)</small></div>
<div class="node-note" style="margin-top:6px;">No joint cavity — bones are continuously connected</div>
<div class="arrow-down">↓</div>
<div class="fc-row">
<div class="sub-branch">
<div class="node node-mid1">Syndesmoses<br><small>(Fibrous)</small></div>
<div class="arrow-down">↓</div>
<div class="node node-leaf">Interosseous membranes</div>
<div class="node node-leaf">Tibiofibular syndesmosis</div>
<div class="node node-leaf">Fontanelles (skull)</div>
<div class="node node-leaf">Gomphosis (teeth)</div>
</div>
<div class="sub-branch">
<div class="node node-mid1">Synchondroses<br><small>(Cartilaginous)</small></div>
<div class="arrow-down">↓</div>
<div class="node node-leaf">Epiphyseal growth plates</div>
<div class="node node-leaf">Costal cartilage (ribs-sternum)</div>
<div class="node node-leaf">Pubic symphysis</div>
<div class="node node-leaf">Intervertebral discs</div>
</div>
<div class="sub-branch">
<div class="node node-mid1">Synostoses<br><small>(Bony Fusion)</small></div>
<div class="arrow-down">↓</div>
<div class="node node-leaf">Sacrum (fused vertebrae)</div>
<div class="node node-leaf">Hip bone fusion</div>
<div class="node node-leaf">Ossified epiphyseal plates</div>
</div>
</div>
</div>
<div style="align-self:center; font-size:1.8rem; color:#bbb; padding: 0 10px;">|</div>
<!-- TRUE JOINTS -->
<div class="branch-wrap">
<div class="node node-cat2">✔ TRUE JOINTS<br><small>(Diarthroses / Synovial)</small></div>
<div class="node-note" style="margin-top:6px;">Joint cavity present — separated by synovial space</div>
<div class="arrow-down">↓</div>
<div class="fc-row">
<div class="sub-branch">
<div class="node node-mid2">Diarthroses<br><small>(Mobile)</small></div>
<div class="arrow-down">↓</div>
<div class="node node-leaf">Plane / Translational joints</div>
<div class="node node-leaf">Hinge, Pivot joints</div>
<div class="node node-leaf">Ellipsoidal, Saddle</div>
<div class="node node-leaf">Spheroidal joints</div>
</div>
<div class="sub-branch">
<div class="node node-mid2">Amphiarthroses<br><small>(Stiff)</small></div>
<div class="arrow-down">↓</div>
<div class="node node-leaf">Sacroiliac joint</div>
<div class="node-note" style="margin-top:4px; font-size:0.78rem;">Very limited movement due to tight ligaments</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- =========================================================
CHART 2: TRUE JOINT STRUCTURE
========================================================== -->
<div class="section-title">② Structure of a True (Synovial) Joint</div>
<div class="chart-wrap">
<div class="fc">
<div class="node node-cat2" style="font-size:1.05rem; padding:12px 28px;">True Joint (Synovial Joint)</div>
<div class="arrow-down">↓</div>
<div style="color:#555; font-size:0.88rem; margin-bottom:8px;">Has 8 key components:</div>
<div class="fc-row">
<div class="sub-branch">
<div class="node node-mid2">1. Articular Surfaces</div>
<div class="node node-leaf">Covered by hyaline cartilage<br>1-2 mm (phalanges)<br>5-7 mm (femoropatellar)</div>
<div class="node-note" style="font-size:0.78rem;">Exception: jaw & sternoclavicular = fibrous cartilage</div>
</div>
<div class="sub-branch">
<div class="node node-mid2">2. Joint Cavity</div>
<div class="node node-leaf">Narrow gap (few mm)<br>Contains synovial fluid<br>Has articular recesses</div>
</div>
<div class="sub-branch">
<div class="node node-mid2">3. Joint Capsule</div>
<div class="node node-leaf">Closed capsule<br>Inner = synovial membrane<br>Produces synovial fluid</div>
</div>
<div class="sub-branch">
<div class="node node-mid2">4. Synovial Fluid</div>
<div class="node node-leaf">Highly viscous<br>Lubricates joint<br>Nourishes avascular cartilage</div>
</div>
</div>
<div class="arrow-down" style="margin-top:10px;">↓</div>
<div class="fc-row">
<div class="sub-branch">
<div class="node node-mid2">5. Intra-articular Structures</div>
<div class="node node-leaf"><b>Menisci</b> - crescent-shaped<br>(knee only)</div>
<div class="node node-leaf"><b>Articular Discs</b> - divide joint<br>(jaw, sternoclavicular, wrist)</div>
<div class="node node-leaf"><b>Articular Labra</b> - fibrocartilage<br>at socket margins<br>(hip & shoulder)</div>
</div>
<div class="sub-branch">
<div class="node node-mid2">6. Ligaments</div>
<div class="node node-leaf">Intra & extracapsular<br>Primary joint stabilizers</div>
</div>
<div class="sub-branch">
<div class="node node-mid2">7. Muscles</div>
<div class="node node-leaf">Agonist & antagonist pairs<br>Cross the joint<br>Move in opposite directions</div>
</div>
<div class="sub-branch">
<div class="node node-mid2">8. Synovial Bursae</div>
<div class="node node-leaf">Near the joint<br>May communicate with joint cavity</div>
</div>
</div>
<div class="node-note" style="margin-top:18px; max-width:480px;">
⚠ <b>Key fact:</b> Hyaline cartilage <b>CANNOT regenerate</b> (avascular, no perichondrium).
Synovial membrane CAN regenerate from adjoining connective tissue.
</div>
</div>
</div>
<!-- =========================================================
CHART 3: TYPES OF TRUE JOINTS BY AXES
========================================================== -->
<div class="section-title">③ Types of True Joints - Classified by Axes & Movements</div>
<div class="chart-wrap">
<div class="fc">
<div class="node node-cat2" style="font-size:1.05rem; padding:12px 28px;">True Joints (Diarthroses)</div>
<div class="arrow-down">↓</div>
<div style="color:#555; font-size:0.88rem; margin-bottom:12px;">Classified by: Shape of surfaces • Number of axes • Degrees of freedom</div>
<!-- 1 AXIS -->
<div class="fc-row" style="align-items:flex-start; gap:24px;">
<div class="branch-wrap">
<div class="node node-cat1" style="min-width:170px;">1 AXIS<br><small>(Rotational)</small></div>
<div class="arrow-down">↓</div>
<div class="fc-row">
<div class="sub-branch">
<div class="node node-mid1">Hinge Joint</div>
<div class="node node-leaf">2 degrees of freedom</div>
<div class="node node-leaf"><b>Movements:</b> Flexion & Extension</div>
<div class="node node-leaf"><b>Examples:</b> Elbow, Knee</div>
</div>
<div class="sub-branch">
<div class="node node-mid1">Pivot Joint</div>
<div class="node node-leaf">2 degrees of freedom</div>
<div class="node node-leaf"><b>Movement:</b> Rotation (axial)</div>
<div class="node node-leaf"><b>Examples:</b> Atlanto-axial, Proximal radioulnar</div>
</div>
</div>
</div>
<!-- 1-2 AXIS TRANSLATIONAL -->
<div class="branch-wrap">
<div class="node node-cat3" style="min-width:170px;">1-2 AXES<br><small>(Translational)</small></div>
<div class="arrow-down">↓</div>
<div class="fc-row">
<div class="sub-branch">
<div class="node node-mid3">Femoropatellar<br>(Plane) Joint</div>
<div class="node node-leaf">1 translational axis<br>1 degree of freedom</div>
<div class="node node-leaf"><b>Movement:</b> Slide up/down in groove</div>
<div class="node node-leaf"><b>Example:</b> Patella in femoral groove</div>
</div>
<div class="sub-branch">
<div class="node node-mid3">Vertebral<br>(Plane) Joint</div>
<div class="node node-leaf">1-2 translational axes<br>2-4 degrees of freedom</div>
<div class="node node-leaf"><b>Movement:</b> Gliding in multiple directions</div>
<div class="node node-leaf"><b>Example:</b> Facet joints of spine</div>
</div>
</div>
</div>
</div>
<div class="arrow-down" style="margin-top:14px;">↓</div>
<!-- 2 AXES and 3 AXES -->
<div class="fc-row" style="align-items:flex-start; gap:24px;">
<div class="branch-wrap">
<div class="node node-cat4" style="min-width:170px;">2 AXES<br><small>(Rotational)</small></div>
<div class="arrow-down">↓</div>
<div class="fc-row">
<div class="sub-branch">
<div class="node node-mid4">Ellipsoidal Joint</div>
<div class="node node-leaf">4 degrees of freedom</div>
<div class="node node-leaf"><b>Movements:</b><br>Flexion, Extension,<br>Abduction, Adduction</div>
<div class="node node-leaf"><b>Example:</b> Radiocarpal (wrist) joint</div>
</div>
<div class="sub-branch">
<div class="node node-mid4">Saddle Joint</div>
<div class="node node-leaf">4 degrees of freedom</div>
<div class="node node-leaf"><b>Movements:</b><br>Flexion, Extension,<br>Abduction, Adduction</div>
<div class="node node-leaf"><b>Example:</b> Carpometacarpal joint of thumb</div>
</div>
</div>
</div>
<div class="branch-wrap">
<div class="node node-cat2" style="min-width:170px;">3 AXES<br><small>(Rotational)</small></div>
<div class="arrow-down">↓</div>
<div class="fc-row">
<div class="sub-branch">
<div class="node node-mid2">Spheroidal<br>(Deep Socket)</div>
<div class="node node-leaf">6 degrees of freedom</div>
<div class="node node-leaf"><b>Movements:</b><br>Flexion, Extension,<br>Abduction, Adduction,<br>Internal/External rotation</div>
<div class="node node-leaf"><b>Example:</b> Hip joint</div>
</div>
<div class="sub-branch">
<div class="node node-mid2">Spheroidal<br>(Shallow Socket)</div>
<div class="node node-leaf">6 degrees + greater range</div>
<div class="node node-leaf"><b>Movements:</b> All 6 movements with wider range</div>
<div class="node node-leaf"><b>Example:</b> Shoulder (glenohumeral) joint</div>
</div>
</div>
</div>
</div>
<div class="node-note" style="margin-top:18px; max-width:560px;">
💡 <b>Key principle:</b> More congruent surfaces (similar radius) = more <b>sliding</b>.
Less congruent surfaces = more <b>rolling</b>. Most joints use a <b>combination (roll-slide)</b>.
</div>
</div>
</div>
<!-- =========================================================
CHART 4: JOINT STABILITY / MECHANICS
========================================================== -->
<div class="section-title">④ Joint Mechanics: Stability & Constraints</div>
<div class="chart-wrap">
<div class="fc">
<div class="node node-cat5" style="font-size:1.05rem; padding:12px 28px;">Joint Stability - 4 Types of Constraints</div>
<div class="arrow-down">↓</div>
<div class="fc-row">
<div class="sub-branch">
<div class="node node-mid5">1. Bony Constraint</div>
<div class="node node-leaf">Shape of articular surfaces</div>
</div>
<div class="sub-branch">
<div class="node node-mid5">2. Muscular Constraint</div>
<div class="node node-leaf">Muscles crossing the joint</div>
</div>
<div class="sub-branch">
<div class="node node-mid5">3. Ligamentous Constraint</div>
<div class="node node-leaf">Ligaments limiting range of motion</div>
</div>
<div class="sub-branch">
<div class="node node-mid5">4. Soft-Tissue Constraint</div>
<div class="node node-leaf">Joint capsule & surrounding tissue</div>
</div>
</div>
<div class="arrow-down" style="margin-top:18px;">↓</div>
<div class="node node-cat5" style="margin-bottom:12px;">Key Muscles for Erect Posture</div>
<div class="fc-row">
<div class="sub-branch">
<div class="node node-mid5">Ankle</div>
<div class="node node-leaf">Triceps surae<br>+ Tibialis anterior<br><i>(sagittal plane)</i></div>
</div>
<div class="sub-branch">
<div class="node node-mid5">Knee</div>
<div class="node node-leaf">Quadriceps femoris</div>
</div>
<div class="sub-branch">
<div class="node node-mid5">Hip (sagittal)</div>
<div class="node node-leaf">Gluteal muscles</div>
</div>
<div class="sub-branch">
<div class="node node-mid5">Hip (frontal)</div>
<div class="node node-leaf">Gluteus medius<br>+ Gluteus minimus</div>
</div>
<div class="sub-branch">
<div class="node node-mid5">Spine</div>
<div class="node node-leaf">Intrinsic back muscles</div>
</div>
</div>
</div>
</div>
<!-- =========================================================
CHART 5: QUICK REFERENCE TABLE
========================================================== -->
<div class="section-title">⑤ Quick Reference: Joint Types at a Glance</div>
<div class="chart-wrap">
<table class="fc-table">
<thead>
<tr>
<th>Joint Type</th>
<th>Axes</th>
<th>Degrees of Freedom</th>
<th>Main Movements</th>
<th>Example</th>
</tr>
</thead>
<tbody>
<tr class="axes-1">
<td><b>Hinge</b></td>
<td>1 rotational</td>
<td>2</td>
<td>Flexion, Extension</td>
<td>Elbow, Knee</td>
</tr>
<tr class="axes-1">
<td><b>Pivot</b></td>
<td>1 rotational</td>
<td>2</td>
<td>Rotation (axial)</td>
<td>Atlanto-axial, Proximal radioulnar</td>
</tr>
<tr>
<td><b>Plane (Femoropatellar)</b></td>
<td>1 translational</td>
<td>1</td>
<td>Slide up/down</td>
<td>Patella in femoral groove</td>
</tr>
<tr>
<td><b>Plane (Vertebral)</b></td>
<td>1-2 translational</td>
<td>2-4</td>
<td>Gliding (multiple)</td>
<td>Facet joints of spine</td>
</tr>
<tr class="axes-2">
<td><b>Ellipsoidal</b></td>
<td>2 rotational</td>
<td>4</td>
<td>Flex, Ext, Abd, Add</td>
<td>Wrist (radiocarpal)</td>
</tr>
<tr class="axes-2">
<td><b>Saddle</b></td>
<td>2 rotational</td>
<td>4</td>
<td>Flex, Ext, Abd, Add</td>
<td>Thumb CMC joint</td>
</tr>
<tr class="axes-3">
<td><b>Spheroidal (deep)</b></td>
<td>3 rotational</td>
<td>6</td>
<td>All 6 movements</td>
<td>Hip joint</td>
</tr>
<tr class="axes-3">
<td><b>Spheroidal (shallow)</b></td>
<td>3 rotational</td>
<td>6 + wider range</td>
<td>All 6 + greater range</td>
<td>Shoulder joint</td>
</tr>
</tbody>
</table>
<div style="margin-top:14px; display:flex; gap:18px; flex-wrap:wrap;">
<span style="background:#fdebd0; border-radius:6px; padding:4px 12px; font-size:0.82rem;">■ 1-axis joints</span>
<span style="background:#d5f5e3; border-radius:6px; padding:4px 12px; font-size:0.82rem;">■ 2-axis joints</span>
<span style="background:#d6eaf8; border-radius:6px; padding:4px 12px; font-size:0.82rem;">■ 3-axis joints</span>
</div>
</div>
<div style="text-align:center; margin-top:28px; color:#888; font-size:0.82rem;">
Source: THIEME Atlas of Anatomy — General Anatomy & Musculoskeletal System • Sections 4.2–4.7 • pp. 60–71
</div>
</body>
</html>
joints flowcharts
HTML File · HTML
| # | Chart | What it covers |
|---|---|---|
| 1 | Master Classification | Full tree: False Joints (Synarthroses) vs True Joints (Diarthroses) with all subtypes and examples |
| 2 | True Joint Structure | All 8 components of a synovial joint (articular surfaces, capsule, synovial fluid, menisci, etc.) |
| 3 | Types of True Joints by Axes | Hinge, Pivot, Plane, Ellipsoidal, Saddle, Spheroidal - each with axes, degrees of freedom, movements, examples |
| 4 | Joint Stability & Mechanics | 4 types of constraints + key muscles for erect posture |
| 5 | Quick Reference Table | All joint types side by side with axes, DOF, movements, and examples |