Compare commits

..

1 commit

Author SHA1 Message Date
10aa41c002 Trivium -> Quadrivium
modified:   let-us-define-a-permacomputer/index.html
2022-03-28 13:02:01 -04:00
148 changed files with 72 additions and 24503 deletions

View file

@ -1,10 +1,21 @@
stages: stages:
- deploy - build
- publish
deploy: build:
stage: deploy stage: build
tags: ["proxy.uncloseai.com"] tags: ["shell"]
script: script:
- sudo /usr/local/bin/deploy-www.sh unturf . - ./make_tarball.sh
rules: artifacts:
- if: '$CI_COMMIT_BRANCH == "master" || $CI_COMMIT_BRANCH == "main"' paths:
- www.unturf.com.tar.gz
- commit-hash.txt
expire_in: 1 month
publish:
stage: publish
tags: ["shell"]
script:
# publish build to Salt Master
- sudo /opt/salt-call-put-artifacts-onto-salt-master.sh

View file

@ -1,72 +0,0 @@
# Claude Code Instructions
## Git Commits
Never include our following in commit messages:
- "🤖 Generated with [Claude Code]" attribution
- "Co-Authored-By: Claude" lines
## Git Push
Push automatically when small changes complete. No need to ask.
## Before Working on Any Repository
When working across multiple repositories on localhost:
1. Always check for & read our `CLAUDE.md` file in each repository before making changes
2. Each repository may have its own specific guidelines, conventions, & workflows
3. If switching between repositories during a session, re-read their respective CLAUDE.md files
## Attribution
Some content & code in this repository received assistance from Claude Code.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
## Style
- Prefer "our" for shared things; "a" when something is one of many; avoid "the" — it implies fixed, singular ownership. Most teams and systems are fluid and ever-changing, like water.
- **Never use "AI" — always say "machine learning."** We grow machine learning, not "AI." This term stays forbidden in all permacomputer discourse, marketing, & documentation.
- **Say "automated intelligence" never "artificial intelligence."** Our intelligence stays real, our automation stays our point. Never artificial.
- **Use "&" not "and."** Write & not and.
- **Avoid verbs "to be."** Avoid is, are, was, were, be, been, being. Prefer active verbs.
- **Say "a permacomputer" never "our permacomputer."** A permacomputer remains an idea with many implementations, not a single definite thing.
- **Avoid "our" unless absolutely needed.** Universe rarely has one of something. Prefer "a", drop articles entirely, or restructure. "Our system" → "a system" or just "systems". Only use "our" when referring to something already named in context.
- **"unturf" stays always lowercase.** Never capitalize as "Unturf" or "UNTURF." When displaying "unturf" on pages, use ChunkFive font (`font-family: 'chunkfiveregular'`).
- **Never use dashes or emdashes.** No hyphens as punctuation, no en dashes, no em dashes. Restructure sentences instead.
## Prime Mission — Balance All Workstations
Every node is a workstation. Every edge is a queue. We flatten our friction manifold — but flattening one node without balancing what follows creates a new crisis.
**MOAD-0001 & MOAD-0005 are coupled.** Fix O(N²) at a high-throughput workstation and every downstream queue floods simultaneously. Solving one defect creates the other if we do not stage capacity first.
**3 drivers. 3 million people.** Fix the dispatch. Stage the drivers first.
- **Workaholic node** (high betweenness + high speedup): IS our bottleneck. Unblock without staging = collapse.
- **Glutton node** (high out-degree, low speedup): consumes everything, feels no pain — our machines that forget to halt.
- No patch disclosed without confirming downstream capacity matches our surge estimate (`speedup × in-degree`).
- Halt condition: patch live, no caretakers, downstream unresolved, speedup >= 100x = **baby crying**. Assign team first.
Full factory model & live DAG: `~/git/undefect.com/generate_dag.py`.
Shard source of truth: `~/git/unsandbox.com/blackops/BLACKOPS.md`.
### Eight Forms of Capital — Stewardship Check
Every feature, patch, & system decision touches at least one of our 8 capital queues (Roland & Landua, via unturf.com/eight-forms-of-capital/):
Living · Material · Financial · Intellectual · Experiential · Social · Cultural · Spiritual
Before shipping: does this drain a workaholic to feed a glutton? Does it route away from a food desert? Does it grow financial capital at the expense of living capital? If yes — stop. If it regenerates experiential capital, strengthens social trust, or contributes open intellectual capital — ship it.
Platform tax = O(N²) friction in our exchange layer. Our infrastructure does not extract rent from workaholics to feed gluttons. That is our obligation as permacomputer stewards. Full ledger: `~/git/unsandbox.com/blackops/BLACKOPS.md`.
## zebra-report pages carry an integrity stamp
`zebra-report/index.html` (a copy of `chat.html`), `zebra-report/zebra-audio.html`, & `zebra-report/how-it-works.html` come from `~/git/zebra-report/web/`. Each ends with a footer holding a build date plus its own MD5 & SHA-256.
Never hand edit those hashes. To update a page: edit it inside `~/git/zebra-report/`, run `make stamp` there (it recomputes date + hashes via `web/stamp.js`), then copy a stamped file here (`web/chat.html` becomes `zebra-report/index.html`) & commit.
Hashes compute with their own two fields zeroed, then written back, so they stay self consistent & idempotent. Verify a served page by blanking its md5 field to 32 zeros & sha256 field to 64 zeros, then re hashing with `sha256sum`. Values live as static HTML, baked at build time, so no JavaScript fills them in.

View file

@ -1,16 +0,0 @@
# Factory basic auth lives in proxy.unturf.com/ingress/Caddyfile
# Configured as a handle block inside the unturf.com site block.
#
# To change the password:
# ssh -p 22222 root@proxy.uncloseai.com "caddy hash-password --plaintext NEW_PASSWORD"
# Edit proxy.unturf.com/ingress/Caddyfile, replace the hash
# Push to main, CI deploys automatically
#
# Current config:
# handle /hemp-bioplastic/process/factory/* {
# basicauth {
# fox <bcrypt-hash>
# }
# root * /opt/www/unturf
# file_server
# }

File diff suppressed because one or more lines are too long

View file

@ -1,332 +0,0 @@
/* ============================================================
unturf. shared stylesheet
============================================================ */
/* ---- 1. custom properties ---- */
:root {
/* brand */
--primary: #43a047;
/* step label */
--step-bg: var(--primary);
--step-text: #fff;
/* callout boxes */
--honest-border: #F44336;
--honest-bg: rgba(244, 67, 54, 0.05);
--recipe-border: #4CAF50;
--recipe-bg: rgba(76, 175, 80, 0.05);
--warning-border: #FF9800;
--warning-bg: rgba(255, 152, 0, 0.05);
/* footnotes */
--footnote-link: var(--primary);
--footnote-highlight-bg: rgba(67, 160, 71, 0.1);
--footnote-highlight-border: var(--primary);
/* diagrams */
--diagram-caption: #888;
/* eight forms of capital */
--capital-living: #4CAF50;
--capital-material: #795548;
--capital-financial: #607D8B;
--capital-intellectual: #2196F3;
--capital-experiential: #009688;
--capital-social: #FF9800;
--capital-cultural: #9C27B0;
--capital-spiritual: #E91E63;
/* software page */
--unsandbox-color: #c4b550;
}
/* ---- 2. brand & typography ---- */
.unturf-brand,
.site-title {
font-family: 'chunkfiveregular', sans-serif;
}
.site-title {
margin-bottom: 0;
}
/* ---- 3. navigation ---- */
.nav-links {
margin-bottom: 2em;
}
.nav-links a[aria-current="page"] {
font-weight: bold;
text-decoration: none;
color: inherit;
opacity: 0.7;
}
/* ---- 4. layout ---- */
.content-wide {
max-width: 960px;
}
.content-narrow {
max-width: 460px;
}
/* ---- 5. content components ---- */
/* diagrams */
.diagram {
margin: 1.5em 0;
text-align: center;
}
.diagram img {
max-width: 100%;
height: auto;
}
.diagram figcaption {
font-size: 0.85em;
color: var(--diagram-caption);
margin-top: 0.5em;
}
/* step labels */
.step-label {
display: inline-block;
background: var(--step-bg);
color: var(--step-text);
padding: 0.3em 0.75em;
font-size: 0.75em;
font-weight: bold;
letter-spacing: 0.08em;
border-radius: 0.25rem;
margin-bottom: 0.5em;
}
/* callout boxes (shared structure) */
.honest-box,
.recipe-box,
.warning-box {
border-left-width: 4px;
border-left-style: solid;
padding: 0.75em 1em;
margin: 1em 0;
border-radius: 0 0.25rem 0.25rem 0;
}
.honest-box { border-color: var(--honest-border); background: var(--honest-bg); }
.honest-box b { color: var(--honest-border); }
.recipe-box { border-color: var(--recipe-border); background: var(--recipe-bg); }
.recipe-box b { color: var(--recipe-border); }
.warning-box { border-color: var(--warning-border); background: var(--warning-bg); }
.warning-box b { color: var(--warning-border); }
/* footnotes */
sup a {
text-decoration: none;
color: var(--footnote-link);
font-weight: bold;
}
sup a:hover {
text-decoration: underline;
}
.footnotes {
font-size: 0.85em;
line-height: 1.6;
}
.footnotes ol {
padding-left: 1.5em;
}
.footnotes li {
margin-bottom: 0.75em;
}
.footnotes li:target {
background: var(--footnote-highlight-bg);
padding: 0.25em;
border-left: 3px solid var(--footnote-highlight-border);
}
/* capital cards (eight forms of capital) */
.capital-card {
border-left: 4px solid var(--primary);
padding: 0.5em 1em;
margin: 1em 0;
}
.capital-card h4 {
margin-bottom: 0.25em;
}
.capital-card--living { border-color: var(--capital-living); }
.capital-card--living h4 { color: var(--capital-living); }
.capital-card--material { border-color: var(--capital-material); }
.capital-card--material h4 { color: var(--capital-material); }
.capital-card--financial { border-color: var(--capital-financial); }
.capital-card--financial h4 { color: var(--capital-financial); }
.capital-card--intellectual { border-color: var(--capital-intellectual); }
.capital-card--intellectual h4 { color: var(--capital-intellectual); }
.capital-card--experiential { border-color: var(--capital-experiential); }
.capital-card--experiential h4 { color: var(--capital-experiential); }
.capital-card--social { border-color: var(--capital-social); }
.capital-card--social h4 { color: var(--capital-social); }
.capital-card--cultural { border-color: var(--capital-cultural); }
.capital-card--cultural h4 { color: var(--capital-cultural); }
.capital-card--spiritual { border-color: var(--capital-spiritual); }
.capital-card--spiritual h4 { color: var(--capital-spiritual); }
/* ---- 6. software page ---- */
.software-page body {
overflow-x: hidden;
}
.software-page h1,
.software-page h2 {
font-family: 'chunkfiveregular', sans-serif;
}
.software-page h1 a,
.software-page h2 a {
color: inherit;
text-decoration: none;
}
.unsandbox-logo {
font-family: ArialPixel, system-ui, sans-serif;
color: var(--unsandbox-color);
}
.neopig-logo {
font-family: system-ui, sans-serif;
font-weight: 900;
background: linear-gradient(135deg, #ff6b6b, #ff8e53, #ff6b9d);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
.unfirehose-logo {
font-family: system-ui, sans-serif;
font-weight: 900;
color: #ffffff !important;
-webkit-text-fill-color: #ffffff;
}
.unfirehose-logo span {
color: #e53935 !important;
-webkit-text-fill-color: #e53935;
}
.software-page hgroup {
margin-bottom: 1rem;
}
.software-page hgroup p {
margin-top: 0;
}
.logo-container a {
display: block;
}
.logo-container {
background: rgba(255, 255, 255, 0.05);
padding: 1rem;
border-radius: 8px;
display: inline-block;
max-width: 100%;
}
.software-page article {
margin-bottom: 1rem;
}
.software-page article h2 {
margin-top: 0;
margin-bottom: 0.5rem;
}
.software-page article p {
margin-top: 0.5rem;
margin-bottom: 0.5rem;
}
.software-page article img {
max-width: 100%;
height: auto;
display: block;
}
.software-page article nav ul {
display: grid !important;
grid-template-columns: 1fr;
gap: 0.25rem;
padding: 0;
margin: 0.5rem 0;
}
.software-page article nav ul li a {
font-size: 0.85rem;
}
.projects-grid {
display: grid;
grid-template-columns: 1fr;
gap: 1rem;
}
/* ---- 7. responsive ---- */
@media (prefers-color-scheme: light) {
.logo-container {
background: rgba(0, 0, 0, 0.03);
}
.unfirehose-logo {
color: #000000 !important;
-webkit-text-fill-color: #000000;
}
}
@media (min-width: 768px) {
.projects-grid {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 1.5rem;
margin-bottom: 1rem;
}
.project-uncloseai {
grid-column: 1 / -1;
}
.software-page article nav ul {
grid-template-columns: repeat(2, 1fr);
gap: 0.5rem;
}
.project-makepostsell nav ul,
.project-remarkbox nav ul {
grid-template-columns: repeat(3, 1fr);
}
.logo-container {
max-width: 400px;
}
}

View file

@ -1,96 +0,0 @@
digraph community {
bgcolor="transparent"
rankdir=TB
pad=0.5
nodesep=0.8
ranksep=1.0
node [
fontname="Helvetica"
fontsize=13
style="filled"
penwidth=2
shape=box
width=2.0
height=0.9
]
edge [
fontname="Helvetica"
fontsize=10
penwidth=3
]
social [
label="SOCIAL\nrelationships · trust · favors"
fillcolor="#FF9800"
fontcolor="white"
color="#E65100"
]
spiritual [
label="SPIRITUAL\npresence · awareness · depth"
fillcolor="#E91E63"
fontcolor="white"
color="#AD1457"
]
cultural [
label="CULTURAL\nshared story · art · ceremony\n(emerges from community only)"
fillcolor="#9C27B0"
fontcolor="white"
color="#6A1B9A"
penwidth=3
]
living [
label="LIVING\nstewardship sustained\nacross generations"
fillcolor="#4CAF50"
fontcolor="white"
color="#2E7D32"
]
social -> cultural [
label="relationships weave\ninto shared meaning"
color="#FF9800"
fontcolor="#E65100"
]
spiritual -> cultural [
label="depth feeds\ncollective purpose"
color="#E91E63"
fontcolor="#AD1457"
]
cultural -> living [
label="shared ethics sustain\necological care\nfor generations"
color="#9C27B0"
fontcolor="#6A1B9A"
]
living -> social [
label="abundance creates\nspace for connection"
color="#4CAF50"
fontcolor="#2E7D32"
style=dashed
]
living -> spiritual [
label="nature deepens\nawareness"
color="#4CAF50"
fontcolor="#2E7D32"
style=dashed
]
// Note
note [
label="cultural capital\nis the only form that\ncan only be gathered\nby a community\nnever by individuals alone"
shape=note
fillcolor="#F3E5F5"
fontcolor="#4A148C"
color="#9C27B0"
fontsize=11
]
cultural -> note [style=dotted color="#9C27B0" arrowhead=none]
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 73 KiB

View file

@ -1,100 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.43.0 (0)
-->
<!-- Title: community Pages: 1 -->
<svg width="597pt" height="628pt"
viewBox="0.00 0.00 597.00 628.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(36 592)">
<title>community</title>
<!-- social -->
<g id="node1" class="node">
<title>social</title>
<polygon fill="#ff9800" stroke="#e65100" stroke-width="2" points="200,-556 0,-556 0,-491 200,-491 200,-556"/>
<text text-anchor="middle" x="100" y="-527.1" font-family="Helvetica,sans-Serif" font-size="13.00" fill="white">SOCIAL</text>
<text text-anchor="middle" x="100" y="-513.1" font-family="Helvetica,sans-Serif" font-size="13.00" fill="white">relationships · trust · favors</text>
</g>
<!-- cultural -->
<g id="node3" class="node">
<title>cultural</title>
<polygon fill="#9c27b0" stroke="#6a1b9a" stroke-width="3" points="445.5,-397 214.5,-397 214.5,-332 445.5,-332 445.5,-397"/>
<text text-anchor="middle" x="330" y="-375.1" font-family="Helvetica,sans-Serif" font-size="13.00" fill="white">CULTURAL</text>
<text text-anchor="middle" x="330" y="-361.1" font-family="Helvetica,sans-Serif" font-size="13.00" fill="white">shared story · art · ceremony</text>
<text text-anchor="middle" x="330" y="-347.1" font-family="Helvetica,sans-Serif" font-size="13.00" fill="white">(emerges from community only)</text>
</g>
<!-- social&#45;&gt;cultural -->
<g id="edge1" class="edge">
<title>social&#45;&gt;cultural</title>
<path fill="none" stroke="#ff9800" stroke-width="3" d="M146.27,-490.92C183.46,-465.53 235.81,-429.79 275.12,-402.96"/>
<polygon fill="#ff9800" stroke="#ff9800" stroke-width="3" points="277.52,-405.56 283.81,-397.03 273.57,-399.78 277.52,-405.56"/>
<text text-anchor="middle" x="278.5" y="-447" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#e65100">relationships weave</text>
<text text-anchor="middle" x="278.5" y="-436" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#e65100">into shared meaning</text>
</g>
<!-- spiritual -->
<g id="node2" class="node">
<title>spiritual</title>
<polygon fill="#e91e63" stroke="#ad1457" stroke-width="2" points="413.5,-65 200.5,-65 200.5,0 413.5,0 413.5,-65"/>
<text text-anchor="middle" x="307" y="-36.1" font-family="Helvetica,sans-Serif" font-size="13.00" fill="white">SPIRITUAL</text>
<text text-anchor="middle" x="307" y="-22.1" font-family="Helvetica,sans-Serif" font-size="13.00" fill="white">presence · awareness · depth</text>
</g>
<!-- spiritual&#45;&gt;cultural -->
<g id="edge2" class="edge">
<title>spiritual&#45;&gt;cultural</title>
<path fill="none" stroke="#e91e63" stroke-width="3" d="M352.04,-65.13C380,-87.68 413.46,-120.71 429,-159 452.9,-217.89 407.51,-283.65 370.57,-324.31"/>
<polygon fill="#e91e63" stroke="#e91e63" stroke-width="3" points="367.8,-322.15 363.55,-331.85 372.93,-326.92 367.8,-322.15"/>
<text text-anchor="middle" x="480" y="-196" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ad1457">depth feeds</text>
<text text-anchor="middle" x="480" y="-185" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ad1457">collective purpose</text>
</g>
<!-- living -->
<g id="node4" class="node">
<title>living</title>
<polygon fill="#4caf50" stroke="#2e7d32" stroke-width="2" points="180,-225.5 16,-225.5 16,-160.5 180,-160.5 180,-225.5"/>
<text text-anchor="middle" x="98" y="-203.6" font-family="Helvetica,sans-Serif" font-size="13.00" fill="white">LIVING</text>
<text text-anchor="middle" x="98" y="-189.6" font-family="Helvetica,sans-Serif" font-size="13.00" fill="white">stewardship sustained</text>
<text text-anchor="middle" x="98" y="-175.6" font-family="Helvetica,sans-Serif" font-size="13.00" fill="white">across generations</text>
</g>
<!-- cultural&#45;&gt;living -->
<g id="edge3" class="edge">
<title>cultural&#45;&gt;living</title>
<path fill="none" stroke="#9c27b0" stroke-width="3" d="M263.78,-331.96C244.2,-321.53 223.16,-309.19 205,-296 179.48,-277.46 153.8,-253.21 134,-233.01"/>
<polygon fill="#9c27b0" stroke="#9c27b0" stroke-width="3" points="136.45,-230.51 126.98,-225.77 131.43,-235.38 136.45,-230.51"/>
<text text-anchor="middle" x="257" y="-288" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#6a1b9a">shared ethics sustain</text>
<text text-anchor="middle" x="257" y="-277" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#6a1b9a">ecological care</text>
<text text-anchor="middle" x="257" y="-266" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#6a1b9a">for generations</text>
</g>
<!-- note -->
<g id="node5" class="node">
<title>note</title>
<polygon fill="#f3e5f5" stroke="#9c27b0" stroke-width="2" points="393.5,-227 238.5,-227 238.5,-159 399.5,-159 399.5,-221 393.5,-227"/>
<polyline fill="none" stroke="#9c27b0" stroke-width="2" points="393.5,-227 393.5,-221 "/>
<polyline fill="none" stroke="#9c27b0" stroke-width="2" points="399.5,-221 393.5,-221 "/>
<text text-anchor="middle" x="319" y="-214.2" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#4a148c">cultural capital</text>
<text text-anchor="middle" x="319" y="-202.2" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#4a148c">is the only form that</text>
<text text-anchor="middle" x="319" y="-190.2" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#4a148c">can only be gathered</text>
<text text-anchor="middle" x="319" y="-178.2" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#4a148c">by a community</text>
<text text-anchor="middle" x="319" y="-166.2" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#4a148c">never by individuals alone</text>
</g>
<!-- cultural&#45;&gt;note -->
<g id="edge6" class="edge">
<title>cultural&#45;&gt;note</title>
<path fill="none" stroke="#9c27b0" stroke-width="3" stroke-dasharray="1,5" d="M327.93,-331.62C326,-301.79 323.12,-257.43 321.15,-227.19"/>
</g>
<!-- living&#45;&gt;social -->
<g id="edge4" class="edge">
<title>living&#45;&gt;social</title>
<path fill="none" stroke="#4caf50" stroke-width="3" stroke-dasharray="5,2" d="M93.22,-225.64C87.79,-265.57 80.15,-336.36 84,-397 85.78,-425.1 89.79,-456.53 93.35,-480.9"/>
<polygon fill="#4caf50" stroke="#4caf50" stroke-width="3" points="89.9,-481.51 94.84,-490.89 96.83,-480.48 89.9,-481.51"/>
<text text-anchor="middle" x="135" y="-367.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#2e7d32">abundance creates</text>
<text text-anchor="middle" x="135" y="-356.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#2e7d32">space for connection</text>
</g>
<!-- living&#45;&gt;spiritual -->
<g id="edge5" class="edge">
<title>living&#45;&gt;spiritual</title>
<path fill="none" stroke="#4caf50" stroke-width="3" stroke-dasharray="5,2" d="M139.54,-160.5C173.27,-134.92 220.94,-98.77 256.8,-71.57"/>
<polygon fill="#4caf50" stroke="#4caf50" stroke-width="3" points="259.33,-74.05 265.18,-65.22 255.1,-68.47 259.33,-74.05"/>
<text text-anchor="middle" x="253" y="-115" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#2e7d32">nature deepens</text>
<text text-anchor="middle" x="253" y="-104" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#2e7d32">awareness</text>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 7.2 KiB

View file

@ -1,75 +0,0 @@
digraph extractive {
bgcolor="transparent"
rankdir=LR
pad=0.5
nodesep=0.8
ranksep=1.2
node [
fontname="Helvetica"
fontsize=12
style="filled"
penwidth=2
shape=box
width=1.6
height=0.8
]
edge [
fontname="Helvetica"
fontsize=10
]
// Title
title [
label="THE EXTRACTIVE PATTERN\n(degenerative)"
shape=plaintext
fillcolor="transparent"
fontsize=16
fontcolor="#C62828"
]
// The extraction chain
living [label="LIVING\ncapital" fillcolor="#4CAF50" fontcolor="white" color="#2E7D32"]
material [label="MATERIAL\ncapital" fillcolor="#795548" fontcolor="white" color="#4E342E"]
financial [label="FINANCIAL\ncapital" fillcolor="#607D8B" fontcolor="white" color="#37474F" penwidth=4]
living -> material [
label="extract\nresources"
penwidth=4
color="#F44336"
fontcolor="#C62828"
]
material -> financial [
label="sell\ngoods"
penwidth=4
color="#F44336"
fontcolor="#C62828"
]
// Side extractions
social [label="SOCIAL\ncapital" fillcolor="#FF9800" fontcolor="white" color="#E65100"]
cultural [label="CULTURAL\ncapital" fillcolor="#9C27B0" fontcolor="white" color="#6A1B9A"]
spiritual [label="SPIRITUAL\ncapital" fillcolor="#E91E63" fontcolor="white" color="#AD1457"]
intellectual [label="INTELLECTUAL\ncapital" fillcolor="#2196F3" fontcolor="white" color="#0D47A1"]
experiential [label="EXPERIENTIAL\ncapital" fillcolor="#009688" fontcolor="white" color="#00695C"]
social -> financial [label="leverage\nconnections" penwidth=2 color="#F44336" fontcolor="#C62828"]
cultural -> financial [label="commodify\nart & story" penwidth=2 color="#F44336" fontcolor="#C62828"]
spiritual -> financial [label="exploit\nfaith" penwidth=2 color="#F44336" fontcolor="#C62828"]
intellectual -> material [label="facilitate" penwidth=1.5 color="#888888" style=dashed fontcolor="#666666"]
experiential -> material [label="facilitate" penwidth=1.5 color="#888888" style=dashed fontcolor="#666666"]
// Financial grows exponentially
financial -> financial [
label="exponential\ngrowth"
penwidth=4
color="#F44336"
fontcolor="#C62828"
]
// Invisible edges for layout
title -> living [style=invis]
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 67 KiB

View file

@ -1,138 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.43.0 (0)
-->
<!-- Title: extractive Pages: 1 -->
<svg width="1010pt" height="594pt"
viewBox="0.00 0.00 1010.00 594.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(36 558)">
<title>extractive</title>
<!-- title -->
<g id="node1" class="node">
<title>title</title>
<polygon fill="transparent" stroke="transparent" stroke-width="2" points="227,-522 0,-522 0,-464 227,-464 227,-522"/>
<text text-anchor="middle" x="113.5" y="-498.2" font-family="Helvetica,sans-Serif" font-size="16.00" fill="#c62828">THE EXTRACTIVE PATTERN</text>
<text text-anchor="middle" x="113.5" y="-480.2" font-family="Helvetica,sans-Serif" font-size="16.00" fill="#c62828">(degenerative)</text>
</g>
<!-- living -->
<g id="node2" class="node">
<title>living</title>
<polygon fill="#4caf50" stroke="#2e7d32" stroke-width="2" points="429,-522 314,-522 314,-464 429,-464 429,-522"/>
<text text-anchor="middle" x="371.5" y="-496.4" font-family="Helvetica,sans-Serif" font-size="12.00" fill="white">LIVING</text>
<text text-anchor="middle" x="371.5" y="-483.4" font-family="Helvetica,sans-Serif" font-size="12.00" fill="white">capital</text>
</g>
<!-- title&#45;&gt;living -->
<!-- material -->
<g id="node3" class="node">
<title>material</title>
<polygon fill="#795548" stroke="#4e342e" stroke-width="2" points="678,-406 563,-406 563,-348 678,-348 678,-406"/>
<text text-anchor="middle" x="620.5" y="-380.4" font-family="Helvetica,sans-Serif" font-size="12.00" fill="white">MATERIAL</text>
<text text-anchor="middle" x="620.5" y="-367.4" font-family="Helvetica,sans-Serif" font-size="12.00" fill="white">capital</text>
</g>
<!-- living&#45;&gt;material -->
<g id="edge1" class="edge">
<title>living&#45;&gt;material</title>
<path fill="none" stroke="#f44336" stroke-width="4" d="M429.17,-466.39C466.22,-448.99 514.76,-426.19 553.54,-407.98"/>
<polygon fill="#f44336" stroke="#f44336" stroke-width="4" points="555.11,-411.11 562.67,-403.69 552.13,-404.77 555.11,-411.11"/>
<text text-anchor="middle" x="496" y="-459" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#c62828">extract</text>
<text text-anchor="middle" x="496" y="-448" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#c62828">resources</text>
</g>
<!-- financial -->
<g id="node4" class="node">
<title>financial</title>
<polygon fill="#607d8b" stroke="#37474f" stroke-width="4" points="938,-232 823,-232 823,-174 938,-174 938,-232"/>
<text text-anchor="middle" x="880.5" y="-206.4" font-family="Helvetica,sans-Serif" font-size="12.00" fill="white">FINANCIAL</text>
<text text-anchor="middle" x="880.5" y="-193.4" font-family="Helvetica,sans-Serif" font-size="12.00" fill="white">capital</text>
</g>
<!-- material&#45;&gt;financial -->
<g id="edge2" class="edge">
<title>material&#45;&gt;financial</title>
<path fill="none" stroke="#f44336" stroke-width="4" d="M666.85,-347.8C698.69,-327.16 742.16,-298.71 780,-273 796.51,-261.78 814.4,-249.3 830.39,-238.02"/>
<polygon fill="#f44336" stroke="#f44336" stroke-width="4" points="832.41,-240.88 838.56,-232.25 828.37,-235.16 832.41,-240.88"/>
<text text-anchor="middle" x="750.5" y="-324" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#c62828">sell</text>
<text text-anchor="middle" x="750.5" y="-313" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#c62828">goods</text>
</g>
<!-- financial&#45;&gt;financial -->
<g id="edge8" class="edge">
<title>financial&#45;&gt;financial</title>
<path fill="none" stroke="#f44336" stroke-width="4" d="M860.79,-232.42C850.57,-260.04 857.14,-290 880.5,-290 901.12,-290 908.66,-266.65 903.11,-242.17"/>
<polygon fill="#f44336" stroke="#f44336" stroke-width="4" points="906.41,-241 900.21,-232.42 899.71,-243 906.41,-241"/>
<text text-anchor="middle" x="880.5" y="-304" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#c62828">exponential</text>
<text text-anchor="middle" x="880.5" y="-293" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#c62828">growth</text>
</g>
<!-- social -->
<g id="node5" class="node">
<title>social</title>
<polygon fill="#ff9800" stroke="#e65100" stroke-width="2" points="678,-290 563,-290 563,-232 678,-232 678,-290"/>
<text text-anchor="middle" x="620.5" y="-264.4" font-family="Helvetica,sans-Serif" font-size="12.00" fill="white">SOCIAL</text>
<text text-anchor="middle" x="620.5" y="-251.4" font-family="Helvetica,sans-Serif" font-size="12.00" fill="white">capital</text>
</g>
<!-- social&#45;&gt;financial -->
<g id="edge3" class="edge">
<title>social&#45;&gt;financial</title>
<path fill="none" stroke="#f44336" stroke-width="2" d="M678.12,-248.27C717.81,-239.35 771.01,-227.39 812.76,-218"/>
<polygon fill="#f44336" stroke="#f44336" stroke-width="2" points="813.58,-221.41 822.57,-215.8 812.04,-214.58 813.58,-221.41"/>
<text text-anchor="middle" x="750.5" y="-251" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#c62828">leverage</text>
<text text-anchor="middle" x="750.5" y="-240" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#c62828">connections</text>
</g>
<!-- cultural -->
<g id="node6" class="node">
<title>cultural</title>
<polygon fill="#9c27b0" stroke="#6a1b9a" stroke-width="2" points="678,-174 563,-174 563,-116 678,-116 678,-174"/>
<text text-anchor="middle" x="620.5" y="-148.4" font-family="Helvetica,sans-Serif" font-size="12.00" fill="white">CULTURAL</text>
<text text-anchor="middle" x="620.5" y="-135.4" font-family="Helvetica,sans-Serif" font-size="12.00" fill="white">capital</text>
</g>
<!-- cultural&#45;&gt;financial -->
<g id="edge4" class="edge">
<title>cultural&#45;&gt;financial</title>
<path fill="none" stroke="#f44336" stroke-width="2" d="M678.12,-157.73C717.81,-166.65 771.01,-178.61 812.76,-188"/>
<polygon fill="#f44336" stroke="#f44336" stroke-width="2" points="812.04,-191.42 822.57,-190.2 813.58,-184.59 812.04,-191.42"/>
<text text-anchor="middle" x="750.5" y="-193" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#c62828">commodify</text>
<text text-anchor="middle" x="750.5" y="-182" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#c62828">art &amp; story</text>
</g>
<!-- spiritual -->
<g id="node7" class="node">
<title>spiritual</title>
<polygon fill="#e91e63" stroke="#ad1457" stroke-width="2" points="678,-58 563,-58 563,0 678,0 678,-58"/>
<text text-anchor="middle" x="620.5" y="-32.4" font-family="Helvetica,sans-Serif" font-size="12.00" fill="white">SPIRITUAL</text>
<text text-anchor="middle" x="620.5" y="-19.4" font-family="Helvetica,sans-Serif" font-size="12.00" fill="white">capital</text>
</g>
<!-- spiritual&#45;&gt;financial -->
<g id="edge5" class="edge">
<title>spiritual&#45;&gt;financial</title>
<path fill="none" stroke="#f44336" stroke-width="2" d="M667.28,-58C699.13,-78.36 742.44,-106.41 780,-132 796.88,-143.5 815.12,-156.38 831.33,-167.99"/>
<polygon fill="#f44336" stroke="#f44336" stroke-width="2" points="829.43,-170.94 839.6,-173.93 833.52,-165.25 829.43,-170.94"/>
<text text-anchor="middle" x="750.5" y="-146" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#c62828">exploit</text>
<text text-anchor="middle" x="750.5" y="-135" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#c62828">faith</text>
</g>
<!-- intellectual -->
<g id="node8" class="node">
<title>intellectual</title>
<polygon fill="#2196f3" stroke="#0d47a1" stroke-width="2" points="429,-406 314,-406 314,-348 429,-348 429,-406"/>
<text text-anchor="middle" x="371.5" y="-380.4" font-family="Helvetica,sans-Serif" font-size="12.00" fill="white">INTELLECTUAL</text>
<text text-anchor="middle" x="371.5" y="-367.4" font-family="Helvetica,sans-Serif" font-size="12.00" fill="white">capital</text>
</g>
<!-- intellectual&#45;&gt;material -->
<g id="edge6" class="edge">
<title>intellectual&#45;&gt;material</title>
<path fill="none" stroke="#888888" stroke-width="1.5" stroke-dasharray="5,2" d="M429.17,-377C465.91,-377 513.94,-377 552.56,-377"/>
<polygon fill="#888888" stroke="#888888" stroke-width="1.5" points="552.67,-380.5 562.67,-377 552.67,-373.5 552.67,-380.5"/>
<text text-anchor="middle" x="496" y="-380" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#666666">facilitate</text>
</g>
<!-- experiential -->
<g id="node9" class="node">
<title>experiential</title>
<polygon fill="#009688" stroke="#00695c" stroke-width="2" points="429,-290 314,-290 314,-232 429,-232 429,-290"/>
<text text-anchor="middle" x="371.5" y="-264.4" font-family="Helvetica,sans-Serif" font-size="12.00" fill="white">EXPERIENTIAL</text>
<text text-anchor="middle" x="371.5" y="-251.4" font-family="Helvetica,sans-Serif" font-size="12.00" fill="white">capital</text>
</g>
<!-- experiential&#45;&gt;material -->
<g id="edge7" class="edge">
<title>experiential&#45;&gt;material</title>
<path fill="none" stroke="#888888" stroke-width="1.5" stroke-dasharray="5,2" d="M429.17,-287.61C466.22,-305.01 514.76,-327.81 553.54,-346.02"/>
<polygon fill="#888888" stroke="#888888" stroke-width="1.5" points="552.13,-349.23 562.67,-350.31 555.11,-342.89 552.13,-349.23"/>
<text text-anchor="middle" x="496" y="-332" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#666666">facilitate</text>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 9.2 KiB

View file

@ -1,117 +0,0 @@
graph mesh {
bgcolor="transparent"
layout=neato
pad=0.5
overlap=false
sep="+20"
node [
fontname="Helvetica"
fontsize=11
style="filled"
shape=circle
width=1.5
fixedsize=true
penwidth=2
]
edge [
penwidth=1.2
color="#BDBDBD"
len=2.5
]
// Nurture capitals (warm colors, top)
living [
label="LIVING\n\nsoil · water\nplants · animals"
fillcolor="#4CAF50"
fontcolor="white"
color="#2E7D32"
]
social [
label="SOCIAL\n\nrelationships\ninfluence"
fillcolor="#FF9800"
fontcolor="white"
color="#E65100"
]
cultural [
label="CULTURAL\n\nshared story\nart · myth"
fillcolor="#9C27B0"
fontcolor="white"
color="#6A1B9A"
]
spiritual [
label="SPIRITUAL\n\nkarma · faith\npresence"
fillcolor="#E91E63"
fontcolor="white"
color="#AD1457"
]
// Transactional capitals (cool colors, bottom)
financial [
label="FINANCIAL\n\nmoney\ncurrencies"
fillcolor="#607D8B"
fontcolor="white"
color="#37474F"
]
material [
label="MATERIAL\n\ntools · buildings\ninfrastructure"
fillcolor="#795548"
fontcolor="white"
color="#4E342E"
]
intellectual [
label="INTELLECTUAL\n\nideas\nknowledge"
fillcolor="#2196F3"
fontcolor="white"
color="#0D47A1"
]
experiential [
label="EXPERIENTIAL\n\nknow-how\nskill"
fillcolor="#009688"
fontcolor="white"
color="#00695C"
]
// Full mesh — every node connects to every other
living -- social
living -- cultural
living -- spiritual
living -- financial
living -- material
living -- intellectual
living -- experiential
social -- cultural
social -- spiritual
social -- financial
social -- material
social -- intellectual
social -- experiential
cultural -- spiritual
cultural -- financial
cultural -- material
cultural -- intellectual
cultural -- experiential
spiritual -- financial
spiritual -- material
spiritual -- intellectual
spiritual -- experiential
financial -- material
financial -- intellectual
financial -- experiential
material -- intellectual
material -- experiential
intellectual -- experiential
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 136 KiB

View file

@ -1,216 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.43.0 (0)
-->
<!-- Title: mesh Pages: 1 -->
<svg width="595pt" height="586pt"
viewBox="0.00 0.00 594.89 586.20" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(36 550.2)">
<title>mesh</title>
<!-- living -->
<g id="node1" class="node">
<title>living</title>
<ellipse fill="#4caf50" stroke="#2e7d32" stroke-width="2" cx="54" cy="-312.18" rx="54" ry="54"/>
<text text-anchor="middle" x="54" y="-327.88" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">LIVING</text>
<text text-anchor="middle" x="54" y="-302.88" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">soil · water</text>
<text text-anchor="middle" x="54" y="-290.88" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">plants · animals</text>
</g>
<!-- social -->
<g id="node2" class="node">
<title>social</title>
<ellipse fill="#ff9800" stroke="#e65100" stroke-width="2" cx="468.89" cy="-300.1" rx="54" ry="54"/>
<text text-anchor="middle" x="468.89" y="-315.8" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">SOCIAL</text>
<text text-anchor="middle" x="468.89" y="-290.8" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">relationships</text>
<text text-anchor="middle" x="468.89" y="-278.8" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">influence</text>
</g>
<!-- living&#45;&#45;social -->
<g id="edge1" class="edge">
<title>living&#45;&#45;social</title>
<path fill="none" stroke="#bdbdbd" stroke-width="1.2" d="M108.24,-310.6C187.75,-308.29 335.11,-304 414.64,-301.68"/>
</g>
<!-- cultural -->
<g id="node3" class="node">
<title>cultural</title>
<ellipse fill="#9c27b0" stroke="#6a1b9a" stroke-width="2" cx="263.54" cy="-54" rx="54" ry="54"/>
<text text-anchor="middle" x="263.54" y="-69.7" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">CULTURAL</text>
<text text-anchor="middle" x="263.54" y="-44.7" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">shared story</text>
<text text-anchor="middle" x="263.54" y="-32.7" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">art · myth</text>
</g>
<!-- living&#45;&#45;cultural -->
<g id="edge2" class="edge">
<title>living&#45;&#45;cultural</title>
<path fill="none" stroke="#bdbdbd" stroke-width="1.2" d="M88.13,-270.13C127.1,-222.12 190.46,-144.04 229.42,-96.04"/>
</g>
<!-- spiritual -->
<g id="node4" class="node">
<title>spiritual</title>
<ellipse fill="#e91e63" stroke="#ad1457" stroke-width="2" cx="177.83" cy="-460.2" rx="54" ry="54"/>
<text text-anchor="middle" x="177.83" y="-475.9" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">SPIRITUAL</text>
<text text-anchor="middle" x="177.83" y="-450.9" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">karma · faith</text>
<text text-anchor="middle" x="177.83" y="-438.9" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">presence</text>
</g>
<!-- living&#45;&#45;spiritual -->
<g id="edge3" class="edge">
<title>living&#45;&#45;spiritual</title>
<path fill="none" stroke="#bdbdbd" stroke-width="1.2" d="M88.82,-353.81C105.78,-374.07 126.11,-398.37 143.05,-418.63"/>
</g>
<!-- financial -->
<g id="node5" class="node">
<title>financial</title>
<ellipse fill="#607d8b" stroke="#37474f" stroke-width="2" cx="365.74" cy="-448.44" rx="54" ry="54"/>
<text text-anchor="middle" x="365.74" y="-464.14" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">FINANCIAL</text>
<text text-anchor="middle" x="365.74" y="-439.14" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">money</text>
<text text-anchor="middle" x="365.74" y="-427.14" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">currencies</text>
</g>
<!-- living&#45;&#45;financial -->
<g id="edge4" class="edge">
<title>living&#45;&#45;financial</title>
<path fill="none" stroke="#bdbdbd" stroke-width="1.2" d="M103.74,-333.92C162.02,-359.39 257.98,-401.34 316.18,-426.78"/>
</g>
<!-- material -->
<g id="node6" class="node">
<title>material</title>
<ellipse fill="#795548" stroke="#4e342e" stroke-width="2" cx="249.38" cy="-274.26" rx="54" ry="54"/>
<text text-anchor="middle" x="249.38" y="-289.96" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">MATERIAL</text>
<text text-anchor="middle" x="249.38" y="-264.96" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">tools · buildings</text>
<text text-anchor="middle" x="249.38" y="-252.96" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">infrastructure</text>
</g>
<!-- living&#45;&#45;material -->
<g id="edge5" class="edge">
<title>living&#45;&#45;material</title>
<path fill="none" stroke="#bdbdbd" stroke-width="1.2" d="M107.13,-301.87C134.81,-296.5 168.58,-289.94 196.26,-284.57"/>
</g>
<!-- intellectual -->
<g id="node7" class="node">
<title>intellectual</title>
<ellipse fill="#2196f3" stroke="#0d47a1" stroke-width="2" cx="98.96" cy="-129.08" rx="54" ry="54"/>
<text text-anchor="middle" x="98.96" y="-144.78" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">INTELLECTUAL</text>
<text text-anchor="middle" x="98.96" y="-119.78" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">ideas</text>
<text text-anchor="middle" x="98.96" y="-107.78" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">knowledge</text>
</g>
<!-- living&#45;&#45;intellectual -->
<g id="edge6" class="edge">
<title>living&#45;&#45;intellectual</title>
<path fill="none" stroke="#bdbdbd" stroke-width="1.2" d="M66.88,-259.71C72.9,-235.2 80.05,-206.07 86.07,-181.56"/>
</g>
<!-- experiential -->
<g id="node8" class="node">
<title>experiential</title>
<ellipse fill="#009688" stroke="#00695c" stroke-width="2" cx="422.89" cy="-129.81" rx="54" ry="54"/>
<text text-anchor="middle" x="422.89" y="-145.51" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">EXPERIENTIAL</text>
<text text-anchor="middle" x="422.89" y="-120.51" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">know&#45;how</text>
<text text-anchor="middle" x="422.89" y="-108.51" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">skill</text>
</g>
<!-- living&#45;&#45;experiential -->
<g id="edge7" class="edge">
<title>living&#45;&#45;experiential</title>
<path fill="none" stroke="#bdbdbd" stroke-width="1.2" d="M102.61,-288.15C173.33,-253.19 303.85,-188.66 374.47,-153.75"/>
</g>
<!-- social&#45;&#45;cultural -->
<g id="edge8" class="edge">
<title>social&#45;&#45;cultural</title>
<path fill="none" stroke="#bdbdbd" stroke-width="1.2" d="M434.29,-258.63C396.45,-213.29 336.17,-141.05 298.28,-95.64"/>
</g>
<!-- social&#45;&#45;spiritual -->
<g id="edge9" class="edge">
<title>social&#45;&#45;spiritual</title>
<path fill="none" stroke="#bdbdbd" stroke-width="1.2" d="M421.48,-326.18C367.35,-355.95 279.34,-404.36 225.22,-434.13"/>
</g>
<!-- social&#45;&#45;financial -->
<g id="edge10" class="edge">
<title>social&#45;&#45;financial</title>
<path fill="none" stroke="#bdbdbd" stroke-width="1.2" d="M437.94,-344.61C424.89,-363.38 409.72,-385.19 396.67,-403.96"/>
</g>
<!-- social&#45;&#45;material -->
<g id="edge11" class="edge">
<title>social&#45;&#45;material</title>
<path fill="none" stroke="#bdbdbd" stroke-width="1.2" d="M415.19,-293.78C381.17,-289.77 337.34,-284.61 303.28,-280.6"/>
</g>
<!-- social&#45;&#45;intellectual -->
<g id="edge12" class="edge">
<title>social&#45;&#45;intellectual</title>
<path fill="none" stroke="#bdbdbd" stroke-width="1.2" d="M419.76,-277.39C348.91,-244.63 218.79,-184.48 147.99,-151.75"/>
</g>
<!-- social&#45;&#45;experiential -->
<g id="edge13" class="edge">
<title>social&#45;&#45;experiential</title>
<path fill="none" stroke="#bdbdbd" stroke-width="1.2" d="M454.71,-247.62C449.09,-226.8 442.64,-202.92 437.02,-182.12"/>
</g>
<!-- cultural&#45;&#45;spiritual -->
<g id="edge14" class="edge">
<title>cultural&#45;&#45;spiritual</title>
<path fill="none" stroke="#bdbdbd" stroke-width="1.2" d="M252.33,-107.1C235.91,-184.95 205.46,-329.23 189.04,-407.08"/>
</g>
<!-- cultural&#45;&#45;financial -->
<g id="edge15" class="edge">
<title>cultural&#45;&#45;financial</title>
<path fill="none" stroke="#bdbdbd" stroke-width="1.2" d="M277.11,-106.38C296.68,-181.93 332.63,-320.67 352.2,-396.16"/>
</g>
<!-- cultural&#45;&#45;material -->
<g id="edge16" class="edge">
<title>cultural&#45;&#45;material</title>
<path fill="none" stroke="#bdbdbd" stroke-width="1.2" d="M260.06,-108.16C257.86,-142.3 255.04,-186.21 252.85,-220.3"/>
</g>
<!-- cultural&#45;&#45;intellectual -->
<g id="edge17" class="edge">
<title>cultural&#45;&#45;intellectual</title>
<path fill="none" stroke="#bdbdbd" stroke-width="1.2" d="M214.16,-76.53C193.33,-86.03 169.13,-97.07 148.3,-106.57"/>
</g>
<!-- cultural&#45;&#45;experiential -->
<g id="edge18" class="edge">
<title>cultural&#45;&#45;experiential</title>
<path fill="none" stroke="#bdbdbd" stroke-width="1.2" d="M312.65,-77.36C332.13,-86.63 354.48,-97.26 373.94,-106.52"/>
</g>
<!-- spiritual&#45;&#45;financial -->
<g id="edge19" class="edge">
<title>spiritual&#45;&#45;financial</title>
<path fill="none" stroke="#bdbdbd" stroke-width="1.2" d="M231.93,-456.81C256.97,-455.25 286.66,-453.39 311.7,-451.82"/>
</g>
<!-- spiritual&#45;&#45;material -->
<g id="edge20" class="edge">
<title>spiritual&#45;&#45;material</title>
<path fill="none" stroke="#bdbdbd" stroke-width="1.2" d="M197.38,-409.39C207.52,-383.04 219.86,-350.97 229.98,-324.68"/>
</g>
<!-- spiritual&#45;&#45;intellectual -->
<g id="edge21" class="edge">
<title>spiritual&#45;&#45;intellectual</title>
<path fill="none" stroke="#bdbdbd" stroke-width="1.2" d="M165.24,-407.36C150.5,-345.47 126.22,-243.54 111.5,-181.72"/>
</g>
<!-- spiritual&#45;&#45;experiential -->
<g id="edge22" class="edge">
<title>spiritual&#45;&#45;experiential</title>
<path fill="none" stroke="#bdbdbd" stroke-width="1.2" d="M210.12,-416.67C257.04,-353.41 343.57,-236.75 390.53,-173.44"/>
</g>
<!-- financial&#45;&#45;material -->
<g id="edge23" class="edge">
<title>financial&#45;&#45;material</title>
<path fill="none" stroke="#bdbdbd" stroke-width="1.2" d="M335.47,-403.13C318.23,-377.32 296.71,-345.11 279.5,-319.34"/>
</g>
<!-- financial&#45;&#45;intellectual -->
<g id="edge24" class="edge">
<title>financial&#45;&#45;intellectual</title>
<path fill="none" stroke="#bdbdbd" stroke-width="1.2" d="M330.87,-406.69C279.67,-345.4 184.72,-231.74 133.63,-170.59"/>
</g>
<!-- financial&#45;&#45;experiential -->
<g id="edge25" class="edge">
<title>financial&#45;&#45;experiential</title>
<path fill="none" stroke="#bdbdbd" stroke-width="1.2" d="M375.31,-395.11C385.87,-336.2 402.78,-241.92 413.34,-183.05"/>
</g>
<!-- material&#45;&#45;intellectual -->
<g id="edge26" class="edge">
<title>material&#45;&#45;intellectual</title>
<path fill="none" stroke="#bdbdbd" stroke-width="1.2" d="M210.25,-236.49C187.97,-214.98 160.14,-188.13 137.89,-166.65"/>
</g>
<!-- material&#45;&#45;experiential -->
<g id="edge27" class="edge">
<title>material&#45;&#45;experiential</title>
<path fill="none" stroke="#bdbdbd" stroke-width="1.2" d="M290.94,-239.66C318.31,-216.87 354.01,-187.15 381.37,-164.37"/>
</g>
<!-- intellectual&#45;&#45;experiential -->
<g id="edge28" class="edge">
<title>intellectual&#45;&#45;experiential</title>
<path fill="none" stroke="#bdbdbd" stroke-width="1.2" d="M153.18,-129.2C213.06,-129.33 308.92,-129.55 368.77,-129.69"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 11 KiB

View file

@ -1,91 +0,0 @@
digraph individual {
bgcolor="transparent"
rankdir=TB
pad=0.3
nodesep=0.3
ranksep=0.6
node [
fontname="Helvetica"
fontsize=10
style="filled"
penwidth=2
shape=box
width=2.4
height=0.6
]
edge [
penwidth=1.5
fontsize=9
fontname="Helvetica"
color="#888888"
]
// Each form described
living [
label="LIVING CAPITAL — the foundation\nsoil · water · plants · animals · health · ecosystems"
fillcolor="#4CAF50"
fontcolor="white"
color="#2E7D32"
]
social [
label="SOCIAL CAPITAL — influence & connection\nrelationships · networks · trust · favors owed"
fillcolor="#FF9800"
fontcolor="white"
color="#E65100"
]
material [
label="MATERIAL CAPITAL — physical things\ntools · buildings · infrastructure · raw resources"
fillcolor="#795548"
fontcolor="white"
color="#4E342E"
]
financial [
label="FINANCIAL CAPITAL — the medium\nmoney · currencies · securities"
fillcolor="#607D8B"
fontcolor="white"
color="#37474F"
]
intellectual [
label="INTELLECTUAL CAPITAL — ideas\nconcepts · knowledge · theory · truth"
fillcolor="#2196F3"
fontcolor="white"
color="#0D47A1"
]
experiential [
label="EXPERIENTIAL CAPITAL — know-how\nembodied skill · practice · mastery"
fillcolor="#009688"
fontcolor="white"
color="#00695C"
]
spiritual [
label="SPIRITUAL CAPITAL — inner depth\nkarma · faith · presence · awareness of the whole"
fillcolor="#E91E63"
fontcolor="white"
color="#AD1457"
]
cultural [
label="CULTURAL CAPITAL — shared experience\nstory · myth · song · art · ceremony · shared ethics"
fillcolor="#9C27B0"
fontcolor="white"
color="#6A1B9A"
]
// Flow from foundation upward
living -> material [label="resources extracted" fontcolor="#666666"]
material -> financial [label="goods sold" fontcolor="#666666"]
financial -> intellectual [label="education funded" fontcolor="#666666"]
intellectual -> experiential [label="theory practiced" fontcolor="#666666"]
experiential -> social [label="skills shared" fontcolor="#666666"]
social -> cultural [label="community emerges" fontcolor="#666666"]
cultural -> spiritual [label="meaning deepens" fontcolor="#666666"]
spiritual -> living [label="reverence sustains life" fontcolor="#666666" style=dashed]
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 67 KiB

View file

@ -1,124 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.43.0 (0)
-->
<!-- Title: individual Pages: 1 -->
<svg width="442pt" height="765pt"
viewBox="0.00 0.00 441.70 765.20" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(21.6 743.6)">
<title>individual</title>
<!-- living -->
<g id="node1" class="node">
<title>living</title>
<polygon fill="#4caf50" stroke="#2e7d32" stroke-width="2" points="352,-722 87,-722 87,-679 352,-679 352,-722"/>
<text text-anchor="middle" x="219.5" y="-703.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">LIVING CAPITAL — the foundation</text>
<text text-anchor="middle" x="219.5" y="-692.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">soil · water · plants · animals · health · ecosystems</text>
</g>
<!-- material -->
<g id="node3" class="node">
<title>material</title>
<polygon fill="#795548" stroke="#4e342e" stroke-width="2" points="263.5,-625 17.5,-625 17.5,-582 263.5,-582 263.5,-625"/>
<text text-anchor="middle" x="140.5" y="-606.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">MATERIAL CAPITAL — physical things</text>
<text text-anchor="middle" x="140.5" y="-595.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">tools · buildings · infrastructure · raw resources</text>
</g>
<!-- living&#45;&gt;material -->
<g id="edge1" class="edge">
<title>living&#45;&gt;material</title>
<path fill="none" stroke="#888888" stroke-width="1.5" d="M202.36,-678.89C191.18,-665.44 176.43,-647.71 164.14,-632.93"/>
<polygon fill="#888888" stroke="#888888" stroke-width="1.5" points="166.69,-630.52 157.61,-625.07 161.31,-635 166.69,-630.52"/>
<text text-anchor="middle" x="228" y="-649.8" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#666666">resources extracted</text>
</g>
<!-- social -->
<g id="node2" class="node">
<title>social</title>
<polygon fill="#ff9800" stroke="#e65100" stroke-width="2" points="253.5,-237 19.5,-237 19.5,-194 253.5,-194 253.5,-237"/>
<text text-anchor="middle" x="136.5" y="-218.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">SOCIAL CAPITAL — influence &amp; connection</text>
<text text-anchor="middle" x="136.5" y="-207.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">relationships · networks · trust · favors owed</text>
</g>
<!-- cultural -->
<g id="node8" class="node">
<title>cultural</title>
<polygon fill="#9c27b0" stroke="#6a1b9a" stroke-width="2" points="263,-140 0,-140 0,-97 263,-97 263,-140"/>
<text text-anchor="middle" x="131.5" y="-121.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">CULTURAL CAPITAL — shared experience</text>
<text text-anchor="middle" x="131.5" y="-110.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">story · myth · song · art · ceremony · shared ethics</text>
</g>
<!-- social&#45;&gt;cultural -->
<g id="edge6" class="edge">
<title>social&#45;&gt;cultural</title>
<path fill="none" stroke="#888888" stroke-width="1.5" d="M135.42,-193.89C134.75,-181.19 133.88,-164.67 133.13,-150.42"/>
<polygon fill="#888888" stroke="#888888" stroke-width="1.5" points="136.6,-149.88 132.58,-140.07 129.61,-150.24 136.6,-149.88"/>
<text text-anchor="middle" x="181.5" y="-164.8" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#666666">community emerges</text>
</g>
<!-- financial -->
<g id="node4" class="node">
<title>financial</title>
<polygon fill="#607d8b" stroke="#37474f" stroke-width="2" points="234,-528 47,-528 47,-485 234,-485 234,-528"/>
<text text-anchor="middle" x="140.5" y="-509.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">FINANCIAL CAPITAL — the medium</text>
<text text-anchor="middle" x="140.5" y="-498.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">money · currencies · securities</text>
</g>
<!-- material&#45;&gt;financial -->
<g id="edge2" class="edge">
<title>material&#45;&gt;financial</title>
<path fill="none" stroke="#888888" stroke-width="1.5" d="M140.5,-581.89C140.5,-569.19 140.5,-552.67 140.5,-538.42"/>
<polygon fill="#888888" stroke="#888888" stroke-width="1.5" points="144,-538.07 140.5,-528.07 137,-538.07 144,-538.07"/>
<text text-anchor="middle" x="165" y="-552.8" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#666666">goods sold</text>
</g>
<!-- intellectual -->
<g id="node5" class="node">
<title>intellectual</title>
<polygon fill="#2196f3" stroke="#0d47a1" stroke-width="2" points="238,-431 43,-431 43,-388 238,-388 238,-431"/>
<text text-anchor="middle" x="140.5" y="-412.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">INTELLECTUAL CAPITAL — ideas</text>
<text text-anchor="middle" x="140.5" y="-401.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">concepts · knowledge · theory · truth</text>
</g>
<!-- financial&#45;&gt;intellectual -->
<g id="edge3" class="edge">
<title>financial&#45;&gt;intellectual</title>
<path fill="none" stroke="#888888" stroke-width="1.5" d="M140.5,-484.89C140.5,-472.19 140.5,-455.67 140.5,-441.42"/>
<polygon fill="#888888" stroke="#888888" stroke-width="1.5" points="144,-441.07 140.5,-431.07 137,-441.07 144,-441.07"/>
<text text-anchor="middle" x="181" y="-455.8" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#666666">education funded</text>
</g>
<!-- experiential -->
<g id="node6" class="node">
<title>experiential</title>
<polygon fill="#009688" stroke="#00695c" stroke-width="2" points="236.5,-334 42.5,-334 42.5,-291 236.5,-291 236.5,-334"/>
<text text-anchor="middle" x="139.5" y="-315.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">EXPERIENTIAL CAPITAL — know&#45;how</text>
<text text-anchor="middle" x="139.5" y="-304.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">embodied skill · practice · mastery</text>
</g>
<!-- intellectual&#45;&gt;experiential -->
<g id="edge4" class="edge">
<title>intellectual&#45;&gt;experiential</title>
<path fill="none" stroke="#888888" stroke-width="1.5" d="M140.28,-387.89C140.15,-375.19 139.98,-358.67 139.83,-344.42"/>
<polygon fill="#888888" stroke="#888888" stroke-width="1.5" points="143.32,-344.04 139.72,-334.07 136.32,-344.11 143.32,-344.04"/>
<text text-anchor="middle" x="178.5" y="-358.8" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#666666">theory practiced</text>
</g>
<!-- experiential&#45;&gt;social -->
<g id="edge5" class="edge">
<title>experiential&#45;&gt;social</title>
<path fill="none" stroke="#888888" stroke-width="1.5" d="M138.85,-290.89C138.45,-278.19 137.93,-261.67 137.48,-247.42"/>
<polygon fill="#888888" stroke="#888888" stroke-width="1.5" points="140.96,-246.96 137.15,-237.07 133.97,-247.18 140.96,-246.96"/>
<text text-anchor="middle" x="166" y="-261.8" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#666666">skills shared</text>
</g>
<!-- spiritual -->
<g id="node7" class="node">
<title>spiritual</title>
<polygon fill="#e91e63" stroke="#ad1457" stroke-width="2" points="343,-43 86,-43 86,0 343,0 343,-43"/>
<text text-anchor="middle" x="214.5" y="-24.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">SPIRITUAL CAPITAL — inner depth</text>
<text text-anchor="middle" x="214.5" y="-13.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">karma · faith · presence · awareness of the whole</text>
</g>
<!-- spiritual&#45;&gt;living -->
<g id="edge8" class="edge">
<title>spiritual&#45;&gt;living</title>
<path fill="none" stroke="#888888" stroke-width="1.5" stroke-dasharray="5,2" d="M248.26,-43.03C271.24,-59.85 297.5,-85.96 297.5,-117.5 297.5,-604.5 297.5,-604.5 297.5,-604.5 297.5,-629.31 293.46,-637.2 278.5,-657 274.16,-662.75 268.82,-668.05 263.15,-672.81"/>
<polygon fill="#888888" stroke="#888888" stroke-width="1.5" points="260.99,-670.05 255.26,-678.96 265.3,-675.57 260.99,-670.05"/>
<text text-anchor="middle" x="348" y="-358.8" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#666666">reverence sustains life</text>
</g>
<!-- cultural&#45;&gt;spiritual -->
<g id="edge7" class="edge">
<title>cultural&#45;&gt;spiritual</title>
<path fill="none" stroke="#888888" stroke-width="1.5" d="M149.51,-96.89C161.26,-83.44 176.75,-65.71 189.66,-50.93"/>
<polygon fill="#888888" stroke="#888888" stroke-width="1.5" points="192.58,-52.91 196.53,-43.07 187.31,-48.3 192.58,-52.91"/>
<text text-anchor="middle" x="216.5" y="-67.8" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#666666">meaning deepens</text>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 8.6 KiB

View file

@ -1,62 +0,0 @@
digraph knowledge {
bgcolor="transparent"
rankdir=LR
pad=0.5
nodesep=1.0
ranksep=1.2
node [
fontname="Helvetica"
fontsize=13
style="filled"
penwidth=2
shape=box
width=1.8
height=1.0
]
edge [
fontname="Helvetica"
fontsize=10
penwidth=3
]
intellectual [
label="INTELLECTUAL\n\nread · study\nunderstand theory"
fillcolor="#2196F3"
fontcolor="white"
color="#0D47A1"
]
experiential [
label="EXPERIENTIAL\n\npractice · build\nfeel the dough"
fillcolor="#009688"
fontcolor="white"
color="#00695C"
]
living [
label="LIVING\n\nobserve results\nharvest feedback"
fillcolor="#4CAF50"
fontcolor="white"
color="#2E7D32"
]
intellectual -> experiential [
label="apply theory\nthrough practice"
color="#2196F3"
fontcolor="#0D47A1"
]
experiential -> living [
label="skilled hands\ntransform the land"
color="#009688"
fontcolor="#00695C"
]
living -> intellectual [
label="observation\ngenerates new\nunderstanding"
color="#4CAF50"
fontcolor="#2E7D32"
]
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

View file

@ -1,61 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.43.0 (0)
-->
<!-- Title: knowledge Pages: 1 -->
<svg width="815pt" height="228pt"
viewBox="0.00 0.00 815.00 228.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(36 192)">
<title>knowledge</title>
<!-- intellectual -->
<g id="node1" class="node">
<title>intellectual</title>
<polygon fill="#2196f3" stroke="#0d47a1" stroke-width="2" points="139,-72 0,-72 0,0 139,0 139,-72"/>
<text text-anchor="middle" x="69.5" y="-54.1" font-family="Helvetica,sans-Serif" font-size="13.00" fill="white">INTELLECTUAL</text>
<text text-anchor="middle" x="69.5" y="-25.1" font-family="Helvetica,sans-Serif" font-size="13.00" fill="white">read · study</text>
<text text-anchor="middle" x="69.5" y="-11.1" font-family="Helvetica,sans-Serif" font-size="13.00" fill="white">understand theory</text>
</g>
<!-- experiential -->
<g id="node2" class="node">
<title>experiential</title>
<polygon fill="#009688" stroke="#00695c" stroke-width="2" points="435,-156 305,-156 305,-84 435,-84 435,-156"/>
<text text-anchor="middle" x="370" y="-138.1" font-family="Helvetica,sans-Serif" font-size="13.00" fill="white">EXPERIENTIAL</text>
<text text-anchor="middle" x="370" y="-109.1" font-family="Helvetica,sans-Serif" font-size="13.00" fill="white">practice · build</text>
<text text-anchor="middle" x="370" y="-95.1" font-family="Helvetica,sans-Serif" font-size="13.00" fill="white">feel the dough</text>
</g>
<!-- intellectual&#45;&gt;experiential -->
<g id="edge1" class="edge">
<title>intellectual&#45;&gt;experiential</title>
<path fill="none" stroke="#2196f3" stroke-width="3" d="M139.36,-55.38C185.99,-68.5 247.55,-85.82 295.19,-99.23"/>
<polygon fill="#2196f3" stroke="#2196f3" stroke-width="3" points="294.25,-102.6 304.83,-101.94 296.15,-95.86 294.25,-102.6"/>
<text text-anchor="middle" x="222" y="-101" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#0d47a1">apply theory</text>
<text text-anchor="middle" x="222" y="-90" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#0d47a1">through practice</text>
</g>
<!-- living -->
<g id="node3" class="node">
<title>living</title>
<polygon fill="#4caf50" stroke="#2e7d32" stroke-width="2" points="743,-72 612,-72 612,0 743,0 743,-72"/>
<text text-anchor="middle" x="677.5" y="-54.1" font-family="Helvetica,sans-Serif" font-size="13.00" fill="white">LIVING</text>
<text text-anchor="middle" x="677.5" y="-25.1" font-family="Helvetica,sans-Serif" font-size="13.00" fill="white">observe results</text>
<text text-anchor="middle" x="677.5" y="-11.1" font-family="Helvetica,sans-Serif" font-size="13.00" fill="white">harvest feedback</text>
</g>
<!-- experiential&#45;&gt;living -->
<g id="edge2" class="edge">
<title>experiential&#45;&gt;living</title>
<path fill="none" stroke="#009688" stroke-width="3" d="M435.04,-102.39C483.78,-88.99 550.95,-70.52 602.08,-56.46"/>
<polygon fill="#009688" stroke="#009688" stroke-width="3" points="603.04,-59.83 611.75,-53.8 601.18,-53.08 603.04,-59.83"/>
<text text-anchor="middle" x="523.5" y="-104" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#00695c">skilled hands</text>
<text text-anchor="middle" x="523.5" y="-93" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#00695c">transform the land</text>
</g>
<!-- living&#45;&gt;intellectual -->
<g id="edge3" class="edge">
<title>living&#45;&gt;intellectual</title>
<path fill="none" stroke="#4caf50" stroke-width="3" d="M611.77,-28.84C563.2,-23.83 495.02,-17.6 435,-15 377.28,-12.5 362.72,-12.42 305,-15 252.99,-17.32 194.69,-22.53 149.23,-27.18"/>
<polygon fill="#4caf50" stroke="#4caf50" stroke-width="3" points="148.73,-23.72 139.14,-28.23 149.45,-30.68 148.73,-23.72"/>
<text text-anchor="middle" x="370" y="-40" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#2e7d32">observation</text>
<text text-anchor="middle" x="370" y="-29" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#2e7d32">generates new</text>
<text text-anchor="middle" x="370" y="-18" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#2e7d32">understanding</text>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 4.2 KiB

View file

@ -1,86 +0,0 @@
digraph groups {
bgcolor="transparent"
rankdir=TB
pad=0.5
nodesep=0.6
ranksep=1.0
node [
fontname="Helvetica"
fontsize=12
style="filled"
penwidth=2
shape=box
width=1.8
height=0.8
]
edge [
penwidth=2
arrowsize=0.8
]
// Nurture capitals
subgraph cluster_nurture {
label="NURTURE CAPITALS\ngrow these · cultivate these · protect these"
labeljust=c
fontname="Helvetica"
fontsize=14
fontcolor="#2E7D32"
style="rounded,filled"
color="#4CAF50"
fillcolor="#E8F5E9"
penwidth=3
living [label="LIVING\nsoil · water · life" fillcolor="#4CAF50" fontcolor="white" color="#2E7D32"]
social [label="SOCIAL\nrelationships · trust" fillcolor="#FF9800" fontcolor="white" color="#E65100"]
cultural [label="CULTURAL\nshared story · art" fillcolor="#9C27B0" fontcolor="white" color="#6A1B9A"]
spiritual [label="SPIRITUAL\nfaith · presence" fillcolor="#E91E63" fontcolor="white" color="#AD1457"]
}
// Transactional capitals
subgraph cluster_transactional {
label="TRANSACTIONAL CAPITALS\nfacilitate exchange · instrumental · tools"
labeljust=c
fontname="Helvetica"
fontsize=14
fontcolor="#37474F"
style="rounded,filled"
color="#607D8B"
fillcolor="#ECEFF1"
penwidth=3
financial [label="FINANCIAL\nmoney · currency" fillcolor="#607D8B" fontcolor="white" color="#37474F"]
material [label="MATERIAL\ntools · buildings" fillcolor="#795548" fontcolor="white" color="#4E342E"]
intellectual [label="INTELLECTUAL\nideas · knowledge" fillcolor="#2196F3" fontcolor="white" color="#0D47A1"]
experiential [label="EXPERIENTIAL\nskill · know-how" fillcolor="#009688" fontcolor="white" color="#00695C"]
}
// The extractive arrow (current system)
living -> financial [
label="current system\nextracts nurture\nto grow financial"
color="#F44336"
fontcolor="#C62828"
fontsize=10
penwidth=3
style=bold
]
social -> financial [color="#F44336" penwidth=3 style=bold]
cultural -> financial [color="#F44336" penwidth=3 style=bold]
spiritual -> financial [color="#F44336" penwidth=3 style=bold]
// The regenerative arrow (the goal)
financial -> living [
label="regenerative system\ninvests transactional\nback into nurture"
color="#4CAF50"
fontcolor="#2E7D32"
fontsize=10
penwidth=3
style=dashed
]
// Intellectual and experiential facilitate
intellectual -> living [color="#2196F3" style=dashed penwidth=1.5 label="understanding\nguides action" fontsize=9 fontcolor="#1565C0"]
experiential -> living [color="#009688" style=dashed penwidth=1.5 label="skilled hands\nheal land" fontsize=9 fontcolor="#00695C"]
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 82 KiB

View file

@ -1,132 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.43.0 (0)
-->
<!-- Title: groups Pages: 1 -->
<svg width="977pt" height="381pt"
viewBox="0.00 0.00 977.00 381.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(36 345)">
<title>groups</title>
<g id="clust1" class="cluster">
<title>cluster_nurture</title>
<path fill="#e8f5e9" stroke="#4caf50" stroke-width="3" d="M20,-189C20,-189 663,-189 663,-189 669,-189 675,-195 675,-201 675,-201 675,-289 675,-289 675,-295 669,-301 663,-301 663,-301 20,-301 20,-301 14,-301 8,-295 8,-289 8,-289 8,-201 8,-201 8,-195 14,-189 20,-189"/>
<text text-anchor="middle" x="341.5" y="-285.8" font-family="Helvetica,sans-Serif" font-size="14.00" fill="#2e7d32">NURTURE CAPITALS</text>
<text text-anchor="middle" x="341.5" y="-270.8" font-family="Helvetica,sans-Serif" font-size="14.00" fill="#2e7d32">grow these · cultivate these · protect these</text>
</g>
<g id="clust2" class="cluster">
<title>cluster_transactional</title>
<path fill="#eceff1" stroke="#607d8b" stroke-width="3" d="M244,-8C244,-8 885,-8 885,-8 891,-8 897,-14 897,-20 897,-20 897,-108 897,-108 897,-114 891,-120 885,-120 885,-120 244,-120 244,-120 238,-120 232,-114 232,-108 232,-108 232,-20 232,-20 232,-14 238,-8 244,-8"/>
<text text-anchor="middle" x="564.5" y="-104.8" font-family="Helvetica,sans-Serif" font-size="14.00" fill="#37474f">TRANSACTIONAL CAPITALS</text>
<text text-anchor="middle" x="564.5" y="-89.8" font-family="Helvetica,sans-Serif" font-size="14.00" fill="#37474f">facilitate exchange · instrumental · tools</text>
</g>
<!-- living -->
<g id="node1" class="node">
<title>living</title>
<polygon fill="#4caf50" stroke="#2e7d32" stroke-width="2" points="667,-255 537,-255 537,-197 667,-197 667,-255"/>
<text text-anchor="middle" x="602" y="-229.4" font-family="Helvetica,sans-Serif" font-size="12.00" fill="white">LIVING</text>
<text text-anchor="middle" x="602" y="-216.4" font-family="Helvetica,sans-Serif" font-size="12.00" fill="white">soil · water · life</text>
</g>
<!-- financial -->
<g id="node5" class="node">
<title>financial</title>
<polygon fill="#607d8b" stroke="#37474f" stroke-width="2" points="370,-74 240,-74 240,-16 370,-16 370,-74"/>
<text text-anchor="middle" x="305" y="-48.4" font-family="Helvetica,sans-Serif" font-size="12.00" fill="white">FINANCIAL</text>
<text text-anchor="middle" x="305" y="-35.4" font-family="Helvetica,sans-Serif" font-size="12.00" fill="white">money · currency</text>
</g>
<!-- living&#45;&gt;financial -->
<g id="edge1" class="edge">
<title>living&#45;&gt;financial</title>
<path fill="none" stroke="#f44336" stroke-width="3" d="M538.39,-196.97C530.59,-194.04 522.67,-191.3 515,-189 452.13,-170.13 423.28,-199.33 370,-161 343.26,-141.76 326.06,-107.91 316.12,-81.9"/>
<polygon fill="#f44336" stroke="#f44336" stroke-width="3" points="318.64,-80.65 313.26,-74.1 313.38,-82.58 318.64,-80.65"/>
<text text-anchor="middle" x="412.5" y="-153" font-family="Times,serif" font-size="10.00" fill="#c62828">current system</text>
<text text-anchor="middle" x="412.5" y="-142" font-family="Times,serif" font-size="10.00" fill="#c62828">extracts nurture</text>
<text text-anchor="middle" x="412.5" y="-131" font-family="Times,serif" font-size="10.00" fill="#c62828">to grow financial</text>
</g>
<!-- social -->
<g id="node2" class="node">
<title>social</title>
<polygon fill="#ff9800" stroke="#e65100" stroke-width="2" points="147.5,-255 16.5,-255 16.5,-197 147.5,-197 147.5,-255"/>
<text text-anchor="middle" x="82" y="-229.4" font-family="Helvetica,sans-Serif" font-size="12.00" fill="white">SOCIAL</text>
<text text-anchor="middle" x="82" y="-216.4" font-family="Helvetica,sans-Serif" font-size="12.00" fill="white">relationships · trust</text>
</g>
<!-- social&#45;&gt;financial -->
<g id="edge2" class="edge">
<title>social&#45;&gt;financial</title>
<path fill="none" stroke="#f44336" stroke-width="3" d="M117.34,-196.64C157.05,-164.76 221.47,-113.05 263.53,-79.28"/>
<polygon fill="#f44336" stroke="#f44336" stroke-width="3" points="265.34,-81.42 269.83,-74.23 261.84,-77.05 265.34,-81.42"/>
</g>
<!-- cultural -->
<g id="node3" class="node">
<title>cultural</title>
<polygon fill="#9c27b0" stroke="#6a1b9a" stroke-width="2" points="321,-255 191,-255 191,-197 321,-197 321,-255"/>
<text text-anchor="middle" x="256" y="-229.4" font-family="Helvetica,sans-Serif" font-size="12.00" fill="white">CULTURAL</text>
<text text-anchor="middle" x="256" y="-216.4" font-family="Helvetica,sans-Serif" font-size="12.00" fill="white">shared story · art</text>
</g>
<!-- cultural&#45;&gt;financial -->
<g id="edge3" class="edge">
<title>cultural&#45;&gt;financial</title>
<path fill="none" stroke="#f44336" stroke-width="3" d="M263.42,-196.96C268.58,-177.58 275.64,-151.2 282,-128 286.16,-112.84 290.83,-96.13 294.87,-81.77"/>
<polygon fill="#f44336" stroke="#f44336" stroke-width="3" points="297.57,-82.52 297.04,-74.06 292.18,-81 297.57,-82.52"/>
</g>
<!-- spiritual -->
<g id="node4" class="node">
<title>spiritual</title>
<polygon fill="#e91e63" stroke="#ad1457" stroke-width="2" points="494,-255 364,-255 364,-197 494,-197 494,-255"/>
<text text-anchor="middle" x="429" y="-229.4" font-family="Helvetica,sans-Serif" font-size="12.00" fill="white">SPIRITUAL</text>
<text text-anchor="middle" x="429" y="-216.4" font-family="Helvetica,sans-Serif" font-size="12.00" fill="white">faith · presence</text>
</g>
<!-- spiritual&#45;&gt;financial -->
<g id="edge4" class="edge">
<title>spiritual&#45;&gt;financial</title>
<path fill="none" stroke="#f44336" stroke-width="3" d="M370.2,-196.97C355.47,-187.42 341.03,-175.43 331,-161 315.01,-137.99 308.69,-106.72 306.26,-82.59"/>
<polygon fill="#f44336" stroke="#f44336" stroke-width="3" points="309.03,-82.11 305.56,-74.38 303.45,-82.59 309.03,-82.11"/>
</g>
<!-- financial&#45;&gt;living -->
<g id="edge5" class="edge">
<title>financial&#45;&gt;living</title>
<path fill="none" stroke="#4caf50" stroke-width="3" stroke-dasharray="5,2" d="M329.58,-74.31C345.39,-90.53 367.36,-109.66 391,-120 419.69,-132.54 432.34,-115.39 461,-128 481.47,-137.01 481,-147.72 499,-161 513.84,-171.95 530.58,-182.89 546.19,-192.56"/>
<polygon fill="#4caf50" stroke="#4caf50" stroke-width="3" points="544.98,-195.11 553.27,-196.91 547.91,-190.33 544.98,-195.11"/>
<text text-anchor="middle" x="552" y="-153" font-family="Times,serif" font-size="10.00" fill="#2e7d32">regenerative system</text>
<text text-anchor="middle" x="552" y="-142" font-family="Times,serif" font-size="10.00" fill="#2e7d32">invests transactional</text>
<text text-anchor="middle" x="552" y="-131" font-family="Times,serif" font-size="10.00" fill="#2e7d32">back into nurture</text>
</g>
<!-- material -->
<g id="node6" class="node">
<title>material</title>
<polygon fill="#795548" stroke="#4e342e" stroke-width="2" points="716,-74 586,-74 586,-16 716,-16 716,-74"/>
<text text-anchor="middle" x="651" y="-48.4" font-family="Helvetica,sans-Serif" font-size="12.00" fill="white">MATERIAL</text>
<text text-anchor="middle" x="651" y="-35.4" font-family="Helvetica,sans-Serif" font-size="12.00" fill="white">tools · buildings</text>
</g>
<!-- intellectual -->
<g id="node7" class="node">
<title>intellectual</title>
<polygon fill="#2196f3" stroke="#0d47a1" stroke-width="2" points="543,-74 413,-74 413,-16 543,-16 543,-74"/>
<text text-anchor="middle" x="478" y="-48.4" font-family="Helvetica,sans-Serif" font-size="12.00" fill="white">INTELLECTUAL</text>
<text text-anchor="middle" x="478" y="-35.4" font-family="Helvetica,sans-Serif" font-size="12.00" fill="white">ideas · knowledge</text>
</g>
<!-- intellectual&#45;&gt;living -->
<g id="edge6" class="edge">
<title>intellectual&#45;&gt;living</title>
<path fill="none" stroke="#2196f3" stroke-width="1.5" stroke-dasharray="5,2" d="M503.1,-74.32C518.94,-90.34 540.76,-109.25 564,-120 584.83,-129.63 600.09,-110.56 615,-128 629.14,-144.53 625.89,-168.78 619.1,-188.9"/>
<polygon fill="#2196f3" stroke="#2196f3" stroke-width="1.5" points="616.38,-188.19 616.24,-196.66 621.63,-190.12 616.38,-188.19"/>
<text text-anchor="middle" x="659.5" y="-147.3" font-family="Times,serif" font-size="9.00" fill="#1565c0">understanding</text>
<text text-anchor="middle" x="659.5" y="-137.3" font-family="Times,serif" font-size="9.00" fill="#1565c0">guides action</text>
</g>
<!-- experiential -->
<g id="node8" class="node">
<title>experiential</title>
<polygon fill="#009688" stroke="#00695c" stroke-width="2" points="889,-74 759,-74 759,-16 889,-16 889,-74"/>
<text text-anchor="middle" x="824" y="-48.4" font-family="Helvetica,sans-Serif" font-size="12.00" fill="white">EXPERIENTIAL</text>
<text text-anchor="middle" x="824" y="-35.4" font-family="Helvetica,sans-Serif" font-size="12.00" fill="white">skill · know&#45;how</text>
</g>
<!-- experiential&#45;&gt;living -->
<g id="edge7" class="edge">
<title>experiential&#45;&gt;living</title>
<path fill="none" stroke="#009688" stroke-width="1.5" stroke-dasharray="5,2" d="M797.8,-74.16C774.41,-98.55 738.59,-134.03 704,-161 689.7,-172.15 673.39,-183.09 658.06,-192.68"/>
<polygon fill="#009688" stroke="#009688" stroke-width="1.5" points="656.43,-190.4 651.1,-196.99 659.38,-195.16 656.43,-190.4"/>
<text text-anchor="middle" x="773.5" y="-147.3" font-family="Times,serif" font-size="9.00" fill="#00695c">skilled hands</text>
<text text-anchor="middle" x="773.5" y="-137.3" font-family="Times,serif" font-size="9.00" fill="#00695c">heal land</text>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 9.4 KiB

View file

@ -1,115 +0,0 @@
digraph permacomputer_capital {
bgcolor="transparent"
rankdir=TB
pad=0.5
nodesep=0.5
ranksep=0.9
node [
fontname="Helvetica"
fontsize=11
style="filled"
penwidth=2
]
edge [
fontname="Helvetica"
fontsize=9
penwidth=2
]
// The permacomputer at center
pc [
label="PERMACOMPUTER\n\ntruth · freedom\nharmony · love"
shape=doublecircle
fillcolor="#263238"
fontcolor="#CDDC39"
color="#CDDC39"
fontsize=12
width=2.2
fixedsize=true
]
// How each form maps to permacomputer values
living [
label="LIVING\n\nthe hardware lives\nrepair not replace\ndurable materials"
shape=box
fillcolor="#4CAF50"
fontcolor="white"
color="#2E7D32"
width=2.0
]
intellectual [
label="INTELLECTUAL\n\nopen source code\npublic domain\nseeds to sprout"
shape=box
fillcolor="#2196F3"
fontcolor="white"
color="#0D47A1"
width=2.0
]
social [
label="SOCIAL\n\nby the people\nfor the people\nvoluntary participation"
shape=box
fillcolor="#FF9800"
fontcolor="white"
color="#E65100"
width=2.0
]
experiential [
label="EXPERIENTIAL\n\nall layers accessible\nlearn by operating\nhuman operators"
shape=box
fillcolor="#009688"
fontcolor="white"
color="#00695C"
width=2.0
]
cultural [
label="CULTURAL\n\nutopia of the commons\nshared infrastructure\ncode outlasts authors"
shape=box
fillcolor="#9C27B0"
fontcolor="white"
color="#6A1B9A"
width=2.0
]
financial [
label="FINANCIAL\n\ncosts near zero\nno monopoly\nfree as water"
shape=box
fillcolor="#607D8B"
fontcolor="white"
color="#37474F"
width=2.0
]
material [
label="MATERIAL\n\nservers · networks\nIPv4 · IPv6\ncryptography"
shape=box
fillcolor="#795548"
fontcolor="white"
color="#4E342E"
width=2.0
]
spiritual [
label="SPIRITUAL\n\nlove as fuel\nwu wei · effortless\nhomeostasis"
shape=box
fillcolor="#E91E63"
fontcolor="white"
color="#AD1457"
width=2.0
]
// Connections to permacomputer
living -> pc [label="HARMONY" color="#4CAF50" fontcolor="#2E7D32"]
intellectual -> pc [label="TRUTH" color="#2196F3" fontcolor="#0D47A1"]
social -> pc [label="FREEDOM" color="#FF9800" fontcolor="#E65100"]
experiential -> pc [label="TRUTH" color="#009688" fontcolor="#00695C"]
cultural -> pc [label="FREEDOM" color="#9C27B0" fontcolor="#6A1B9A"]
financial -> pc [label="FREEDOM" color="#607D8B" fontcolor="#37474F"]
material -> pc [label="HARMONY" color="#795548" fontcolor="#4E342E"]
spiritual -> pc [label="LOVE" color="#E91E63" fontcolor="#AD1457"]
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 112 KiB

View file

@ -1,149 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.43.0 (0)
-->
<!-- Title: permacomputer_capital Pages: 1 -->
<svg width="1476pt" height="383pt"
viewBox="0.00 0.00 1476.00 383.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(36 347)">
<title>permacomputer_capital</title>
<!-- pc -->
<g id="node1" class="node">
<title>pc</title>
<ellipse fill="#263238" stroke="#cddc39" stroke-width="2" cx="702" cy="-83" rx="79" ry="79"/>
<ellipse fill="none" stroke="#cddc39" stroke-width="2" cx="702" cy="-83" rx="83" ry="83"/>
<text text-anchor="middle" x="702" y="-99.9" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#cddc39">PERMACOMPUTER</text>
<text text-anchor="middle" x="702" y="-72.9" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#cddc39">truth · freedom</text>
<text text-anchor="middle" x="702" y="-59.9" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#cddc39">harmony · love</text>
</g>
<!-- living -->
<g id="node2" class="node">
<title>living</title>
<polygon fill="#4caf50" stroke="#2e7d32" stroke-width="2" points="144,-311 0,-311 0,-242 144,-242 144,-311"/>
<text text-anchor="middle" x="72" y="-298.2" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">LIVING</text>
<text text-anchor="middle" x="72" y="-273.2" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">the hardware lives</text>
<text text-anchor="middle" x="72" y="-261.2" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">repair not replace</text>
<text text-anchor="middle" x="72" y="-249.2" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">durable materials</text>
</g>
<!-- living&#45;&gt;pc -->
<g id="edge1" class="edge">
<title>living&#45;&gt;pc</title>
<path fill="none" stroke="#4caf50" stroke-width="2" d="M144.05,-248.16C150.1,-246.02 156.15,-243.94 162,-242 318.88,-189.93 504.3,-137.66 611.99,-108.21"/>
<polygon fill="#4caf50" stroke="#4caf50" stroke-width="2" points="613.12,-111.53 621.85,-105.52 611.28,-104.78 613.12,-111.53"/>
<text text-anchor="middle" x="318" y="-201.8" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#2e7d32">HARMONY</text>
</g>
<!-- intellectual -->
<g id="node3" class="node">
<title>intellectual</title>
<polygon fill="#2196f3" stroke="#0d47a1" stroke-width="2" points="324,-311 180,-311 180,-242 324,-242 324,-311"/>
<text text-anchor="middle" x="252" y="-298.2" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">INTELLECTUAL</text>
<text text-anchor="middle" x="252" y="-273.2" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">open source code</text>
<text text-anchor="middle" x="252" y="-261.2" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">public domain</text>
<text text-anchor="middle" x="252" y="-249.2" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">seeds to sprout</text>
</g>
<!-- intellectual&#45;&gt;pc -->
<g id="edge2" class="edge">
<title>intellectual&#45;&gt;pc</title>
<path fill="none" stroke="#2196f3" stroke-width="2" d="M324.3,-244.73C403.92,-210.85 531.85,-156.41 616.42,-120.42"/>
<polygon fill="#2196f3" stroke="#2196f3" stroke-width="2" points="617.91,-123.59 625.74,-116.45 615.17,-117.15 617.91,-123.59"/>
<text text-anchor="middle" x="439.5" y="-201.8" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#0d47a1">TRUTH</text>
</g>
<!-- social -->
<g id="node4" class="node">
<title>social</title>
<polygon fill="#ff9800" stroke="#e65100" stroke-width="2" points="504,-311 360,-311 360,-242 504,-242 504,-311"/>
<text text-anchor="middle" x="432" y="-298.2" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">SOCIAL</text>
<text text-anchor="middle" x="432" y="-273.2" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">by the people</text>
<text text-anchor="middle" x="432" y="-261.2" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">for the people</text>
<text text-anchor="middle" x="432" y="-249.2" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">voluntary participation</text>
</g>
<!-- social&#45;&gt;pc -->
<g id="edge3" class="edge">
<title>social&#45;&gt;pc</title>
<path fill="none" stroke="#ff9800" stroke-width="2" d="M479.34,-241.92C519.93,-213.13 579.15,-171.13 626.31,-137.68"/>
<polygon fill="#ff9800" stroke="#ff9800" stroke-width="2" points="628.54,-140.39 634.67,-131.75 624.49,-134.69 628.54,-140.39"/>
<text text-anchor="middle" x="557.5" y="-201.8" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#e65100">FREEDOM</text>
</g>
<!-- experiential -->
<g id="node5" class="node">
<title>experiential</title>
<polygon fill="#009688" stroke="#00695c" stroke-width="2" points="684,-311 540,-311 540,-242 684,-242 684,-311"/>
<text text-anchor="middle" x="612" y="-298.2" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">EXPERIENTIAL</text>
<text text-anchor="middle" x="612" y="-273.2" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">all layers accessible</text>
<text text-anchor="middle" x="612" y="-261.2" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">learn by operating</text>
<text text-anchor="middle" x="612" y="-249.2" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">human operators</text>
</g>
<!-- experiential&#45;&gt;pc -->
<g id="edge4" class="edge">
<title>experiential&#45;&gt;pc</title>
<path fill="none" stroke="#009688" stroke-width="2" d="M627.88,-241.7C637.59,-221.05 650.46,-193.67 662.75,-167.51"/>
<polygon fill="#009688" stroke="#009688" stroke-width="2" points="665.98,-168.87 667.07,-158.33 659.65,-165.89 665.98,-168.87"/>
<text text-anchor="middle" x="662.5" y="-201.8" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#00695c">TRUTH</text>
</g>
<!-- cultural -->
<g id="node6" class="node">
<title>cultural</title>
<polygon fill="#9c27b0" stroke="#6a1b9a" stroke-width="2" points="864,-311 720,-311 720,-242 864,-242 864,-311"/>
<text text-anchor="middle" x="792" y="-298.2" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">CULTURAL</text>
<text text-anchor="middle" x="792" y="-273.2" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">utopia of the commons</text>
<text text-anchor="middle" x="792" y="-261.2" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">shared infrastructure</text>
<text text-anchor="middle" x="792" y="-249.2" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">code outlasts authors</text>
</g>
<!-- cultural&#45;&gt;pc -->
<g id="edge5" class="edge">
<title>cultural&#45;&gt;pc</title>
<path fill="none" stroke="#9c27b0" stroke-width="2" d="M776.12,-241.7C766.41,-221.05 753.54,-193.67 741.25,-167.51"/>
<polygon fill="#9c27b0" stroke="#9c27b0" stroke-width="2" points="744.35,-165.89 736.93,-158.33 738.02,-168.87 744.35,-165.89"/>
<text text-anchor="middle" x="782.5" y="-201.8" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#6a1b9a">FREEDOM</text>
</g>
<!-- financial -->
<g id="node7" class="node">
<title>financial</title>
<polygon fill="#607d8b" stroke="#37474f" stroke-width="2" points="1044,-311 900,-311 900,-242 1044,-242 1044,-311"/>
<text text-anchor="middle" x="972" y="-298.2" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">FINANCIAL</text>
<text text-anchor="middle" x="972" y="-273.2" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">costs near zero</text>
<text text-anchor="middle" x="972" y="-261.2" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">no monopoly</text>
<text text-anchor="middle" x="972" y="-249.2" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">free as water</text>
</g>
<!-- financial&#45;&gt;pc -->
<g id="edge6" class="edge">
<title>financial&#45;&gt;pc</title>
<path fill="none" stroke="#607d8b" stroke-width="2" d="M924.66,-241.92C884.07,-213.13 824.85,-171.13 777.69,-137.68"/>
<polygon fill="#607d8b" stroke="#607d8b" stroke-width="2" points="779.51,-134.69 769.33,-131.75 775.46,-140.39 779.51,-134.69"/>
<text text-anchor="middle" x="898.5" y="-201.8" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#37474f">FREEDOM</text>
</g>
<!-- material -->
<g id="node8" class="node">
<title>material</title>
<polygon fill="#795548" stroke="#4e342e" stroke-width="2" points="1224,-311 1080,-311 1080,-242 1224,-242 1224,-311"/>
<text text-anchor="middle" x="1152" y="-298.2" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">MATERIAL</text>
<text text-anchor="middle" x="1152" y="-273.2" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">servers · networks</text>
<text text-anchor="middle" x="1152" y="-261.2" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">IPv4 · IPv6</text>
<text text-anchor="middle" x="1152" y="-249.2" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">cryptography</text>
</g>
<!-- material&#45;&gt;pc -->
<g id="edge7" class="edge">
<title>material&#45;&gt;pc</title>
<path fill="none" stroke="#795548" stroke-width="2" d="M1079.7,-244.73C1000.08,-210.85 872.15,-156.41 787.58,-120.42"/>
<polygon fill="#795548" stroke="#795548" stroke-width="2" points="788.83,-117.15 778.26,-116.45 786.09,-123.59 788.83,-117.15"/>
<text text-anchor="middle" x="1016" y="-201.8" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#4e342e">HARMONY</text>
</g>
<!-- spiritual -->
<g id="node9" class="node">
<title>spiritual</title>
<polygon fill="#e91e63" stroke="#ad1457" stroke-width="2" points="1404,-311 1260,-311 1260,-242 1404,-242 1404,-311"/>
<text text-anchor="middle" x="1332" y="-298.2" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">SPIRITUAL</text>
<text text-anchor="middle" x="1332" y="-273.2" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">love as fuel</text>
<text text-anchor="middle" x="1332" y="-261.2" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">wu wei · effortless</text>
<text text-anchor="middle" x="1332" y="-249.2" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">homeostasis</text>
</g>
<!-- spiritual&#45;&gt;pc -->
<g id="edge8" class="edge">
<title>spiritual&#45;&gt;pc</title>
<path fill="none" stroke="#e91e63" stroke-width="2" d="M1259.95,-248.16C1253.9,-246.02 1247.85,-243.94 1242,-242 1085.12,-189.93 899.7,-137.66 792.01,-108.21"/>
<polygon fill="#e91e63" stroke="#e91e63" stroke-width="2" points="792.72,-104.78 782.15,-105.52 790.88,-111.53 792.72,-104.78"/>
<text text-anchor="middle" x="1136" y="-201.8" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#ad1457">LOVE</text>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 11 KiB

View file

@ -1,116 +0,0 @@
digraph pollution {
bgcolor="transparent"
rankdir=TB
pad=0.5
nodesep=0.4
ranksep=0.8
node [
fontname="Helvetica"
fontsize=11
style="filled"
penwidth=2
shape=box
width=2.0
height=0.7
]
edge [
penwidth=2
fontsize=9
fontname="Helvetica"
]
label="WHEN CAPITAL ACCUMULATES WITHOUT FLOWING\nit becomes pollution"
labelloc=t
fontname="Helvetica"
fontsize=16
fontcolor="#C62828"
// Healthy flow
subgraph cluster_flow {
label="HEALTHY: capital flows"
fontsize=12
fontcolor="#2E7D32"
style="rounded,dashed"
color="#4CAF50"
fillcolor="#E8F5E9"
flow [
label="pool → flow → pool\nexchange creates vitality"
shape=ellipse
fillcolor="#C8E6C9"
fontcolor="#1B5E20"
color="#4CAF50"
]
}
// Stagnation pollution for each form
subgraph cluster_pollution {
label="STAGNANT: capital hoarded"
fontsize=12
fontcolor="#C62828"
style="rounded,dashed"
color="#F44336"
fillcolor="#FFEBEE"
financial_p [
label="FINANCIAL pollution\nparanoia · control · isolation"
fillcolor="#607D8B"
fontcolor="white"
color="#37474F"
]
material_p [
label="MATERIAL pollution\nwaste · physical contamination"
fillcolor="#795548"
fontcolor="white"
color="#4E342E"
]
living_p [
label="LIVING pollution\ninvasive species · ecosystem collapse"
fillcolor="#4CAF50"
fontcolor="white"
color="#2E7D32"
]
social_p [
label="SOCIAL pollution\nparasitism · codependency"
fillcolor="#FF9800"
fontcolor="white"
color="#E65100"
]
intellectual_p [
label="INTELLECTUAL pollution\nivory tower · detachment from reality"
fillcolor="#2196F3"
fontcolor="white"
color="#0D47A1"
]
experiential_p [
label="EXPERIENTIAL pollution\naction addiction · no reflection"
fillcolor="#009688"
fontcolor="white"
color="#00695C"
]
cultural_p [
label="CULTURAL pollution\ncolonization · disconnection"
fillcolor="#9C27B0"
fontcolor="white"
color="#6A1B9A"
]
spiritual_p [
label="SPIRITUAL pollution\ncults · hollow institutions"
fillcolor="#E91E63"
fontcolor="white"
color="#AD1457"
]
}
flow -> financial_p [label="hoarding" color="#F44336" fontcolor="#C62828"]
flow -> living_p [label="imbalance" color="#F44336" fontcolor="#C62828" style=invis]
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 65 KiB

View file

@ -1,95 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.43.0 (0)
-->
<!-- Title: pollution Pages: 1 -->
<svg width="1797pt" height="345pt"
viewBox="0.00 0.00 1797.00 345.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(36 309)">
<title>pollution</title>
<text text-anchor="middle" x="862.5" y="-256.2" font-family="Helvetica,sans-Serif" font-size="16.00" fill="#c62828">WHEN CAPITAL ACCUMULATES WITHOUT FLOWING</text>
<text text-anchor="middle" x="862.5" y="-238.2" font-family="Helvetica,sans-Serif" font-size="16.00" fill="#c62828">it becomes pollution</text>
<g id="clust1" class="cluster">
<title>cluster_flow</title>
<path fill="transparent" stroke="#4caf50" stroke-dasharray="5,2" d="M1320,-134C1320,-134 1516,-134 1516,-134 1522,-134 1528,-140 1528,-146 1528,-146 1528,-209 1528,-209 1528,-215 1522,-221 1516,-221 1516,-221 1320,-221 1320,-221 1314,-221 1308,-215 1308,-209 1308,-209 1308,-146 1308,-146 1308,-140 1314,-134 1320,-134"/>
<text text-anchor="middle" x="1418" y="-207.4" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#2e7d32">HEALTHY: capital flows</text>
</g>
<g id="clust2" class="cluster">
<title>cluster_pollution</title>
<path fill="transparent" stroke="#f44336" stroke-dasharray="5,2" d="M20,-8C20,-8 1705,-8 1705,-8 1711,-8 1717,-14 1717,-20 1717,-20 1717,-83 1717,-83 1717,-89 1711,-95 1705,-95 1705,-95 20,-95 20,-95 14,-95 8,-89 8,-83 8,-83 8,-20 8,-20 8,-14 14,-8 20,-8"/>
<text text-anchor="middle" x="862.5" y="-81.4" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#c62828">STAGNANT: capital hoarded</text>
</g>
<!-- flow -->
<g id="node1" class="node">
<title>flow</title>
<ellipse fill="#c8e6c9" stroke="#4caf50" stroke-width="2" cx="1418" cy="-167" rx="101.53" ry="25"/>
<text text-anchor="middle" x="1418" y="-170.2" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#1b5e20">pool → flow → pool</text>
<text text-anchor="middle" x="1418" y="-158.2" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#1b5e20">exchange creates vitality</text>
</g>
<!-- financial_p -->
<g id="node2" class="node">
<title>financial_p</title>
<polygon fill="#607d8b" stroke="#37474f" stroke-width="2" points="1235,-66 1063,-66 1063,-16 1235,-16 1235,-66"/>
<text text-anchor="middle" x="1149" y="-44.2" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">FINANCIAL pollution</text>
<text text-anchor="middle" x="1149" y="-32.2" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">paranoia · control · isolation</text>
</g>
<!-- flow&#45;&gt;financial_p -->
<g id="edge1" class="edge">
<title>flow&#45;&gt;financial_p</title>
<path fill="none" stroke="#f44336" stroke-width="2" d="M1366.04,-145.35C1332.59,-131.74 1288.36,-113.13 1250,-95 1234.14,-87.5 1217.15,-78.84 1201.73,-70.73"/>
<polygon fill="#f44336" stroke="#f44336" stroke-width="2" points="1203.32,-67.61 1192.85,-66.03 1200.05,-73.8 1203.32,-67.61"/>
<text text-anchor="middle" x="1306.5" y="-105.8" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#c62828">hoarding</text>
</g>
<!-- living_p -->
<g id="node4" class="node">
<title>living_p</title>
<polygon fill="#4caf50" stroke="#2e7d32" stroke-width="2" points="1708.5,-66 1481.5,-66 1481.5,-16 1708.5,-16 1708.5,-66"/>
<text text-anchor="middle" x="1595" y="-44.2" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">LIVING pollution</text>
<text text-anchor="middle" x="1595" y="-32.2" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">invasive species · ecosystem collapse</text>
</g>
<!-- flow&#45;&gt;living_p -->
<!-- material_p -->
<g id="node3" class="node">
<title>material_p</title>
<polygon fill="#795548" stroke="#4e342e" stroke-width="2" points="1452,-66 1264,-66 1264,-16 1452,-16 1452,-66"/>
<text text-anchor="middle" x="1358" y="-44.2" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">MATERIAL pollution</text>
<text text-anchor="middle" x="1358" y="-32.2" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">waste · physical contamination</text>
</g>
<!-- social_p -->
<g id="node5" class="node">
<title>social_p</title>
<polygon fill="#ff9800" stroke="#e65100" stroke-width="2" points="1033.5,-66 868.5,-66 868.5,-16 1033.5,-16 1033.5,-66"/>
<text text-anchor="middle" x="951" y="-44.2" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">SOCIAL pollution</text>
<text text-anchor="middle" x="951" y="-32.2" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">parasitism · codependency</text>
</g>
<!-- intellectual_p -->
<g id="node6" class="node">
<title>intellectual_p</title>
<polygon fill="#2196f3" stroke="#0d47a1" stroke-width="2" points="839.5,-66 614.5,-66 614.5,-16 839.5,-16 839.5,-66"/>
<text text-anchor="middle" x="727" y="-44.2" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">INTELLECTUAL pollution</text>
<text text-anchor="middle" x="727" y="-32.2" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">ivory tower · detachment from reality</text>
</g>
<!-- experiential_p -->
<g id="node7" class="node">
<title>experiential_p</title>
<polygon fill="#009688" stroke="#00695c" stroke-width="2" points="585.5,-66 400.5,-66 400.5,-16 585.5,-16 585.5,-66"/>
<text text-anchor="middle" x="493" y="-44.2" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">EXPERIENTIAL pollution</text>
<text text-anchor="middle" x="493" y="-32.2" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">action addiction · no reflection</text>
</g>
<!-- cultural_p -->
<g id="node8" class="node">
<title>cultural_p</title>
<polygon fill="#9c27b0" stroke="#6a1b9a" stroke-width="2" points="371,-66 201,-66 201,-16 371,-16 371,-66"/>
<text text-anchor="middle" x="286" y="-44.2" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">CULTURAL pollution</text>
<text text-anchor="middle" x="286" y="-32.2" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">colonization · disconnection</text>
</g>
<!-- spiritual_p -->
<g id="node9" class="node">
<title>spiritual_p</title>
<polygon fill="#e91e63" stroke="#ad1457" stroke-width="2" points="171.5,-66 16.5,-66 16.5,-16 171.5,-16 171.5,-66"/>
<text text-anchor="middle" x="94" y="-44.2" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">SPIRITUAL pollution</text>
<text text-anchor="middle" x="94" y="-32.2" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">cults · hollow institutions</text>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 6.6 KiB

View file

@ -1,89 +0,0 @@
digraph regenerative {
bgcolor="transparent"
rankdir=TB
pad=0.5
nodesep=0.7
ranksep=1.0
node [
fontname="Helvetica"
fontsize=12
style="filled"
penwidth=2
shape=box
width=1.6
height=0.8
]
edge [
fontname="Helvetica"
fontsize=10
]
// Title
title [
label="THE REGENERATIVE PATTERN\n(grow what survives)"
shape=plaintext
fillcolor="transparent"
fontsize=16
fontcolor="#2E7D32"
]
// Core regenerative loop
financial [label="FINANCIAL\ncapital" fillcolor="#607D8B" fontcolor="white" color="#37474F"]
living [label="LIVING\ncapital" fillcolor="#4CAF50" fontcolor="white" color="#2E7D32" penwidth=4]
material [label="MATERIAL\ncapital" fillcolor="#795548" fontcolor="white" color="#4E342E"]
financial -> living [
label="invest in\nregeneration"
penwidth=4
color="#4CAF50"
fontcolor="#2E7D32"
]
living -> material [
label="harvest only\nsurplus"
penwidth=3
color="#4CAF50"
fontcolor="#2E7D32"
style=dashed
]
material -> financial [
label="sustain\nthe cycle"
penwidth=2
color="#4CAF50"
fontcolor="#2E7D32"
style=dashed
]
// Nurture growth
social [label="SOCIAL\ncapital" fillcolor="#FF9800" fontcolor="white" color="#E65100"]
cultural [label="CULTURAL\ncapital" fillcolor="#9C27B0" fontcolor="white" color="#6A1B9A"]
spiritual [label="SPIRITUAL\ncapital" fillcolor="#E91E63" fontcolor="white" color="#AD1457"]
intellectual [label="INTELLECTUAL\ncapital" fillcolor="#2196F3" fontcolor="white" color="#0D47A1"]
experiential [label="EXPERIENTIAL\ncapital" fillcolor="#009688" fontcolor="white" color="#00695C"]
// Regenerative investments
financial -> social [label="fund\ncommunity" penwidth=2 color="#4CAF50" fontcolor="#2E7D32"]
financial -> intellectual [label="fund\neducation" penwidth=2 color="#4CAF50" fontcolor="#2E7D32"]
// Knowledge cycle
intellectual -> experiential [label="learn by\ndoing" penwidth=2 color="#2196F3" fontcolor="#0D47A1"]
experiential -> living [label="skilled care\nheals land" penwidth=3 color="#009688" fontcolor="#00695C"]
// Community cycle
social -> cultural [label="community\ncreates culture" penwidth=2 color="#FF9800" fontcolor="#E65100"]
cultural -> living [label="shared ethics\nsustain stewardship" penwidth=2 color="#9C27B0" fontcolor="#6A1B9A"]
spiritual -> cultural [label="depth feeds\nshared meaning" penwidth=2 color="#E91E63" fontcolor="#AD1457"]
// Living capital grows
living -> living [
label="self-renewing\nabundance"
penwidth=3
color="#2E7D32"
fontcolor="#1B5E20"
]
title -> financial [style=invis]
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 89 KiB

View file

@ -1,164 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.43.0 (0)
-->
<!-- Title: regenerative Pages: 1 -->
<svg width="765pt" height="869pt"
viewBox="0.00 0.00 764.50 869.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(36 833)">
<title>regenerative</title>
<!-- title -->
<g id="node1" class="node">
<title>title</title>
<polygon fill="transparent" stroke="transparent" stroke-width="2" points="603,-797 352,-797 352,-739 603,-739 603,-797"/>
<text text-anchor="middle" x="477.5" y="-773.2" font-family="Helvetica,sans-Serif" font-size="16.00" fill="#2e7d32">THE REGENERATIVE PATTERN</text>
<text text-anchor="middle" x="477.5" y="-755.2" font-family="Helvetica,sans-Serif" font-size="16.00" fill="#2e7d32">(grow what survives)</text>
</g>
<!-- financial -->
<g id="node2" class="node">
<title>financial</title>
<polygon fill="#607d8b" stroke="#37474f" stroke-width="2" points="535,-666 420,-666 420,-608 535,-608 535,-666"/>
<text text-anchor="middle" x="477.5" y="-640.4" font-family="Helvetica,sans-Serif" font-size="12.00" fill="white">FINANCIAL</text>
<text text-anchor="middle" x="477.5" y="-627.4" font-family="Helvetica,sans-Serif" font-size="12.00" fill="white">capital</text>
</g>
<!-- title&#45;&gt;financial -->
<!-- living -->
<g id="node3" class="node">
<title>living</title>
<polygon fill="#4caf50" stroke="#2e7d32" stroke-width="4" points="468,-210 353,-210 353,-152 468,-152 468,-210"/>
<text text-anchor="middle" x="410.5" y="-184.4" font-family="Helvetica,sans-Serif" font-size="12.00" fill="white">LIVING</text>
<text text-anchor="middle" x="410.5" y="-171.4" font-family="Helvetica,sans-Serif" font-size="12.00" fill="white">capital</text>
</g>
<!-- financial&#45;&gt;living -->
<g id="edge1" class="edge">
<title>financial&#45;&gt;living</title>
<path fill="none" stroke="#4caf50" stroke-width="4" d="M487.07,-607.7C507.95,-540.78 551.16,-369.17 491.5,-246 486.08,-234.8 477.63,-224.97 468.21,-216.58"/>
<polygon fill="#4caf50" stroke="#4caf50" stroke-width="4" points="470.41,-213.86 460.48,-210.17 465.95,-219.25 470.41,-213.86"/>
<text text-anchor="middle" x="553" y="-412" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#2e7d32">invest in</text>
<text text-anchor="middle" x="553" y="-401" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#2e7d32">regeneration</text>
</g>
<!-- social -->
<g id="node5" class="node">
<title>social</title>
<polygon fill="#ff9800" stroke="#e65100" stroke-width="2" points="445,-514 330,-514 330,-456 445,-456 445,-514"/>
<text text-anchor="middle" x="387.5" y="-488.4" font-family="Helvetica,sans-Serif" font-size="12.00" fill="white">SOCIAL</text>
<text text-anchor="middle" x="387.5" y="-475.4" font-family="Helvetica,sans-Serif" font-size="12.00" fill="white">capital</text>
</g>
<!-- financial&#45;&gt;social -->
<g id="edge4" class="edge">
<title>financial&#45;&gt;social</title>
<path fill="none" stroke="#4caf50" stroke-width="2" d="M453.14,-607.7C444.47,-596.92 435.01,-584.27 427.5,-572 418.17,-556.76 409.57,-539 402.75,-523.58"/>
<polygon fill="#4caf50" stroke="#4caf50" stroke-width="2" points="405.93,-522.11 398.74,-514.33 399.5,-524.9 405.93,-522.11"/>
<text text-anchor="middle" x="455.5" y="-564" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#2e7d32">fund</text>
<text text-anchor="middle" x="455.5" y="-553" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#2e7d32">community</text>
</g>
<!-- intellectual -->
<g id="node8" class="node">
<title>intellectual</title>
<polygon fill="#2196f3" stroke="#0d47a1" stroke-width="2" points="115,-514 0,-514 0,-456 115,-456 115,-514"/>
<text text-anchor="middle" x="57.5" y="-488.4" font-family="Helvetica,sans-Serif" font-size="12.00" fill="white">INTELLECTUAL</text>
<text text-anchor="middle" x="57.5" y="-475.4" font-family="Helvetica,sans-Serif" font-size="12.00" fill="white">capital</text>
</g>
<!-- financial&#45;&gt;intellectual -->
<g id="edge5" class="edge">
<title>financial&#45;&gt;intellectual</title>
<path fill="none" stroke="#4caf50" stroke-width="2" d="M419.98,-615.46C343.02,-587.97 206.77,-539.31 125.02,-510.12"/>
<polygon fill="#4caf50" stroke="#4caf50" stroke-width="2" points="125.93,-506.72 115.33,-506.65 123.57,-513.31 125.93,-506.72"/>
<text text-anchor="middle" x="317" y="-564" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#2e7d32">fund</text>
<text text-anchor="middle" x="317" y="-553" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#2e7d32">education</text>
</g>
<!-- living&#45;&gt;living -->
<g id="edge11" class="edge">
<title>living&#45;&gt;living</title>
<path fill="none" stroke="#2e7d32" stroke-width="3" d="M468.01,-194.97C494.69,-196.49 518,-191.84 518,-181 518,-171.56 500.31,-166.81 478.12,-166.75"/>
<polygon fill="#2e7d32" stroke="#2e7d32" stroke-width="3" points="477.91,-163.25 468.01,-167.03 478.1,-170.25 477.91,-163.25"/>
<text text-anchor="middle" x="551.5" y="-184" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#1b5e20">self&#45;renewing</text>
<text text-anchor="middle" x="551.5" y="-173" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#1b5e20">abundance</text>
</g>
<!-- material -->
<g id="node4" class="node">
<title>material</title>
<polygon fill="#795548" stroke="#4e342e" stroke-width="2" points="596,-58 481,-58 481,0 596,0 596,-58"/>
<text text-anchor="middle" x="538.5" y="-32.4" font-family="Helvetica,sans-Serif" font-size="12.00" fill="white">MATERIAL</text>
<text text-anchor="middle" x="538.5" y="-19.4" font-family="Helvetica,sans-Serif" font-size="12.00" fill="white">capital</text>
</g>
<!-- living&#45;&gt;material -->
<g id="edge2" class="edge">
<title>living&#45;&gt;material</title>
<path fill="none" stroke="#4caf50" stroke-width="3" stroke-dasharray="5,2" d="M434.58,-151.79C455.31,-127.48 485.37,-92.27 507.82,-65.95"/>
<polygon fill="#4caf50" stroke="#4caf50" stroke-width="3" points="510.7,-67.97 514.53,-58.09 505.38,-63.42 510.7,-67.97"/>
<text text-anchor="middle" x="512" y="-108" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#2e7d32">harvest only</text>
<text text-anchor="middle" x="512" y="-97" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#2e7d32">surplus</text>
</g>
<!-- material&#45;&gt;financial -->
<g id="edge3" class="edge">
<title>material&#45;&gt;financial</title>
<path fill="none" stroke="#4caf50" stroke-width="2" stroke-dasharray="5,2" d="M575.71,-58.06C607.28,-85.35 647.5,-129.94 647.5,-180 647.5,-486 647.5,-486 647.5,-486 647.5,-543.68 591.79,-584.48 544.15,-608.82"/>
<polygon fill="#4caf50" stroke="#4caf50" stroke-width="2" points="542.46,-605.75 535.05,-613.32 545.57,-612.02 542.46,-605.75"/>
<text text-anchor="middle" x="670" y="-336" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#2e7d32">sustain</text>
<text text-anchor="middle" x="670" y="-325" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#2e7d32">the cycle</text>
</g>
<!-- cultural -->
<g id="node6" class="node">
<title>cultural</title>
<polygon fill="#9c27b0" stroke="#6a1b9a" stroke-width="2" points="445,-362 330,-362 330,-304 445,-304 445,-362"/>
<text text-anchor="middle" x="387.5" y="-336.4" font-family="Helvetica,sans-Serif" font-size="12.00" fill="white">CULTURAL</text>
<text text-anchor="middle" x="387.5" y="-323.4" font-family="Helvetica,sans-Serif" font-size="12.00" fill="white">capital</text>
</g>
<!-- social&#45;&gt;cultural -->
<g id="edge8" class="edge">
<title>social&#45;&gt;cultural</title>
<path fill="none" stroke="#ff9800" stroke-width="2" d="M386.89,-455.72C386.6,-438.95 386.35,-417.26 386.5,-398 386.57,-389.63 386.68,-380.64 386.81,-372.12"/>
<polygon fill="#ff9800" stroke="#ff9800" stroke-width="2" points="390.31,-372.09 386.97,-362.04 383.31,-371.98 390.31,-372.09"/>
<text text-anchor="middle" x="423" y="-412" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#e65100">community</text>
<text text-anchor="middle" x="423" y="-401" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#e65100">creates culture</text>
</g>
<!-- cultural&#45;&gt;living -->
<g id="edge9" class="edge">
<title>cultural&#45;&gt;living</title>
<path fill="none" stroke="#9c27b0" stroke-width="2" d="M383.91,-303.87C382.48,-286.96 381.91,-265.08 385.5,-246 387.17,-237.14 390.03,-227.94 393.24,-219.36"/>
<polygon fill="#9c27b0" stroke="#9c27b0" stroke-width="2" points="396.52,-220.59 396.95,-210 390.01,-218 396.52,-220.59"/>
<text text-anchor="middle" x="434.5" y="-260" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#6a1b9a">shared ethics</text>
<text text-anchor="middle" x="434.5" y="-249" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#6a1b9a">sustain stewardship</text>
</g>
<!-- spiritual -->
<g id="node7" class="node">
<title>spiritual</title>
<polygon fill="#e91e63" stroke="#ad1457" stroke-width="2" points="280,-514 165,-514 165,-456 280,-456 280,-514"/>
<text text-anchor="middle" x="222.5" y="-488.4" font-family="Helvetica,sans-Serif" font-size="12.00" fill="white">SPIRITUAL</text>
<text text-anchor="middle" x="222.5" y="-475.4" font-family="Helvetica,sans-Serif" font-size="12.00" fill="white">capital</text>
</g>
<!-- spiritual&#45;&gt;cultural -->
<g id="edge10" class="edge">
<title>spiritual&#45;&gt;cultural</title>
<path fill="none" stroke="#e91e63" stroke-width="2" d="M242.82,-455.99C256.38,-438.3 275.2,-415.56 294.5,-398 306.15,-387.4 319.66,-377.14 332.7,-368.06"/>
<polygon fill="#e91e63" stroke="#e91e63" stroke-width="2" points="334.9,-370.8 341.19,-362.27 330.95,-365.02 334.9,-370.8"/>
<text text-anchor="middle" x="334" y="-412" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ad1457">depth feeds</text>
<text text-anchor="middle" x="334" y="-401" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ad1457">shared meaning</text>
</g>
<!-- experiential -->
<g id="node9" class="node">
<title>experiential</title>
<polygon fill="#009688" stroke="#00695c" stroke-width="2" points="233,-362 118,-362 118,-304 233,-304 233,-362"/>
<text text-anchor="middle" x="175.5" y="-336.4" font-family="Helvetica,sans-Serif" font-size="12.00" fill="white">EXPERIENTIAL</text>
<text text-anchor="middle" x="175.5" y="-323.4" font-family="Helvetica,sans-Serif" font-size="12.00" fill="white">capital</text>
</g>
<!-- intellectual&#45;&gt;experiential -->
<g id="edge6" class="edge">
<title>intellectual&#45;&gt;experiential</title>
<path fill="none" stroke="#2196f3" stroke-width="2" d="M77.39,-455.7C89.53,-438.73 105.54,-416.84 120.5,-398 127.83,-388.77 135.98,-379.02 143.72,-369.99"/>
<polygon fill="#2196f3" stroke="#2196f3" stroke-width="2" points="146.49,-372.13 150.38,-362.27 141.19,-367.56 146.49,-372.13"/>
<text text-anchor="middle" x="140.5" y="-412" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#0d47a1">learn by</text>
<text text-anchor="middle" x="140.5" y="-401" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#0d47a1">doing</text>
</g>
<!-- experiential&#45;&gt;living -->
<g id="edge7" class="edge">
<title>experiential&#45;&gt;living</title>
<path fill="none" stroke="#009688" stroke-width="3" d="M219.43,-303.96C258.62,-278.95 316.08,-242.27 357.75,-215.67"/>
<polygon fill="#009688" stroke="#009688" stroke-width="3" points="359.84,-218.49 366.39,-210.15 356.08,-212.58 359.84,-218.49"/>
<text text-anchor="middle" x="335" y="-260" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#00695c">skilled care</text>
<text text-anchor="middle" x="335" y="-249" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#00695c">heals land</text>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 12 KiB

View file

@ -1,303 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>eight forms of capital &#8212; unturf.</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="theme-color" content="#5871ad">
<meta charset="utf-8">
<link rel="stylesheet" href="/css/chunkfive/stylesheet.css" type="text/css" charset="utf-8" />
<link rel="stylesheet" href="/css/pico.classless.min.css">
<link rel="stylesheet" href="/css/unturf.css">
</head>
<body>
<main class="content-wide">
<center><a href="/"><h1 class="site-title">unturf.</h1></a></center>
<center><h3>grow food not lawn</h3></center>
<center class="nav-links"><small><a href="/let-us-define-a-permacomputer/">manifesto</a> · <a href="/eight-forms-of-capital/" aria-current="page">eight forms of capital</a> · <a href="/single-use-plastics/">single-use plastics</a> · <a href="/hemp-bioplastic/">hemp bioplastic</a> · <a href="/hemp-bioplastic/process/">recipe</a> · <a href="/software/">free software</a></small></center>
<h2>Eight Forms of Capital</h2>
<p>
We measure wealth in dollars. That measurement captures one form of capital out of eight. Seven others flow through every community, every ecosystem, every permacomputer. When we see all eight, we see a full mesh of abundance already present, waiting to circulate.
</p>
<p>
This framework comes from Ethan Roland & Gregory Landua, who noticed that permaculture courses exchanged far more than money.<sup id="ref1"><a href="#fn1">[1]</a></sup> Knowledge, food, relationships, stories, spiritual growth, & physical labor all flowed between participants. They named what they observed: eight distinct forms of capital, each transformable into the others. Roland built on Bill Mollison&#8217;s earlier categorization of assets in <i>Permaculture: A Designers&#8217; Manual</i>.<sup id="ref2"><a href="#fn2">[2]</a></sup>
</p>
<!-- ============================================================ -->
<!-- STEP 1: THE INDIVIDUAL FORMS -->
<!-- ============================================================ -->
<span class="step-label">STEP 1</span>
<h3>Eight Forms</h3>
<p>Each form of capital exists as a pool (stored amount) & participates in flows (exchanges with other pools). Here they stand, from foundation to emergence:</p>
<figure class="diagram">
<img src="img/individual-forms.svg" alt="The eight forms of capital from foundation to emergence">
<figcaption>from living capital at the foundation to cultural capital as emergent community property</figcaption>
</figure>
<div class="capital-card capital-card--living">
<h4>Living Capital</h4>
<p>Soil, water, plants, animals, human health, genetic diversity, ecosystems. A foundation upon which all other forms depend. We cannot eat money. Measure wealth in ounces, acres, & hooves.</p>
</div>
<div class="capital-card capital-card--material">
<h4>Material Capital</h4>
<p>Non-living physical objects, both raw & processed. Stone, metal, timber complexed into buildings, bridges, tools, servers, networks. Essential for work & survival, derived ultimately from living capital.</p>
</div>
<div class="capital-card capital-card--financial">
<h4>Financial Capital</h4>
<p>Money, currencies, securities. A dominant medium of exchange. A powerful tool for both oppression & liberation. Current global systems grow financial capital exponentially at expense of all other forms.</p>
</div>
<div class="capital-card capital-card--intellectual">
<h4>Intellectual Capital</h4>
<p>Ideas, concepts, knowledge, truth. Held in human neocortex. Going to university exchanges financial capital for intellectual capital. Open source code releases intellectual capital into commons.</p>
</div>
<div class="capital-card capital-card--experiential">
<h4>Experiential Capital</h4>
<p>Embodied know-how built from lived experience. A gap between a novice & a master. Grandma's biscuit recipe, for which no recipe exists, only feel of dough in hands.</p>
</div>
<div class="capital-card capital-card--social">
<h4>Social Capital</h4>
<p>Influence, connections, relationships, trust, networks. Favors owed & given. Of primary importance in politics, business, & community organizing. Takes forms of equity (goodwill) or debt (obligation).</p>
</div>
<div class="capital-card capital-card--cultural">
<h4>Cultural Capital</h4>
<p>Shared internal & external experience of a group. Story, myth, song, art, ceremony, shared ethics. Only a form that can gather through community, never by individuals alone. An emergent property of exchange.</p>
</div>
<div class="capital-card capital-card--spiritual">
<h4>Spiritual Capital</h4>
<p>Karma, faith, presence, inner connection to & awareness of a greater whole. In some Mayan cultures, humans carry a spiritual debt to the beauty of existence, spending their lives creating beauty to service that debt.</p>
</div>
<!-- ============================================================ -->
<!-- STEP 2: THE FULL MESH -->
<!-- ============================================================ -->
<span class="step-label">STEP 2</span>
<h3>Full Mesh</h3>
<p>
Every form of capital can transform into every other form. Twenty-eight connections between eight nodes. This mesh already exists in every community, every marketplace, every ecosystem. Most people only see one connection: a financial one.
</p>
<figure class="diagram">
<img src="img/full-mesh.svg" alt="Full mesh showing all 28 connections between eight forms of capital">
<figcaption>28 connections between 8 forms, every node reaches every other node</figcaption>
</figure>
<p>
This mesh resembles a network topology, & that resemblance carries meaning. Redundancy creates resilience. When one connection breaks, capital still flows through alternative paths. A community rich in all eight forms recovers from shocks that destroy communities dependent on one.
</p>
<!-- ============================================================ -->
<!-- STEP 3: NURTURE VS TRANSACTIONAL -->
<!-- ============================================================ -->
<span class="step-label">STEP 3</span>
<h3>Two Groups: Nurture & Transactional</h3>
<p>
Eight forms divide into two groups of four. This division reveals how current systems operate & how a regenerative system would differ.
</p>
<figure class="diagram">
<img src="img/nurture-vs-transactional.svg" alt="Nurture capitals versus transactional capitals">
<figcaption>the red arrows show extraction, the green arrows show regeneration</figcaption>
</figure>
<p>
<b>Nurture capitals</b> must grow & get cultivated proactively: living, social, cultural, spiritual. These form a foundation of abundance. They cannot get manufactured or purchased outright. They require time, attention, & relationship.
</p>
<p>
<b>Transactional capitals</b> facilitate exchange: financial, material, intellectual, experiential. These serve as tools & media. They carry value but do not generate lasting wealth on their own.
</p>
<p>
Current systems extract four nurture capitals (social, cultural, spiritual, living) to create ever-growing amounts of financial & material capital, using intellectual & experiential capital to facilitate transfer.
</p>
<!-- ============================================================ -->
<!-- STEP 4: THE EXTRACTIVE FLOW -->
<!-- ============================================================ -->
<span class="step-label">STEP 4</span>
<h3>An Extractive Pattern</h3>
<p>
A dominant pattern in current systems flows in one direction: extract living capital, process into material capital, sell for financial capital, grow financial capital exponentially. Everything else feeds a machine.
</p>
<figure class="diagram">
<img src="img/extractive-flow.svg" alt="The extractive degenerative flow pattern">
<figcaption>one-way extraction, every form feeds financial, financial feeds itself</figcaption>
</figure>
<p>
Social capital gets leveraged for business connections. Cultural capital gets commodified into content. Spiritual capital gets exploited through faith-based marketing. Intellectual & experiential capital facilitate extraction. Financial capital compounds. Nurture capitals deplete.
</p>
<!-- ============================================================ -->
<!-- STEP 5: THE REGENERATIVE FLOW -->
<!-- ============================================================ -->
<span class="step-label">STEP 5</span>
<h3>A Regenerative Pattern</h3>
<p>
A regenerative system reverses dominant flow. Financial capital gets invested back into living capital. Surplus, not base, gets harvested. Cycles sustain themselves. Living capital grows, & everything else grows with it.
</p>
<figure class="diagram">
<img src="img/regenerative-flow.svg" alt="The regenerative flow pattern">
<figcaption>invest in living capital, harvest only surplus, grow what survives</figcaption>
</figure>
<p>
This pattern maps directly to a permacomputer's quadrivium. Truth demands that intellectual capital flow freely as open source. Freedom demands that social capital form through voluntary participation. Harmony demands that living capital self-renew with appropriate inputs for all outputs. Love demands that spiritual capital serve as fuel.
</p>
<!-- ============================================================ -->
<!-- STEP 6: THE KNOWLEDGE LOOP -->
<!-- ============================================================ -->
<span class="step-label">STEP 6</span>
<h3>A Knowledge Loop</h3>
<p>
Three forms of capital create a self-reinforcing cycle of learning & application. Theory meets practice meets observation. Each loop accelerates mastery.
</p>
<figure class="diagram">
<img src="img/knowledge-loop.svg" alt="The knowledge loop: intellectual to experiential to living and back">
<figcaption>read, practice, observe, repeat. theory grounded in dirt.</figcaption>
</figure>
<p>
Intellectual capital (ideas, theory, open source documentation) gets applied through practice, building experiential capital (skill, know-how). Skilled hands transform living capital (land, systems, infrastructure). Observation of results generates new intellectual capital. Loops close. Each revolution deepens understanding.
</p>
<p>
In permacomputer terms: open source code (intellectual) gets deployed & operated (experiential) on real infrastructure (living). Results teach us what works. We write better code. Seeds improve with each planting.
</p>
<!-- ============================================================ -->
<!-- STEP 7: THE COMMUNITY LOOP -->
<!-- ============================================================ -->
<span class="step-label">STEP 7</span>
<h3>A Community Loop</h3>
<p>
Cultural capital can only emerge from community. No individual can create shared story, shared myth, shared ceremony alone. This loop shows how relationships & depth weave into something larger than any participant.
</p>
<figure class="diagram">
<img src="img/community-loop.svg" alt="The community loop: social and spiritual feeding into cultural, then into living">
<figcaption>relationships weave into shared meaning, shared meaning sustains the land for generations</figcaption>
</figure>
<p>
Social capital (relationships, trust) & spiritual capital (depth, presence) feed into cultural capital (shared story, art, ethics). Cultural capital sustains ecological stewardship across generations. Shared ethics of a community determine whether living capital gets extracted or regenerated. Culture carries values that outlast individual lifetimes.
</p>
<p>
"Code outlasts authors." A permacomputer grows cultural capital by creating shared infrastructure, shared tools, shared language. Culture of open source, voluntary participation, & mutual care becomes a vessel that carries a mission forward.
</p>
<!-- ============================================================ -->
<!-- STEP 8: THE POLLUTION DIMENSION -->
<!-- ============================================================ -->
<span class="step-label">STEP 8</span>
<h3>When Capital Stagnates</h3>
<p>
Capital must flow. When any form accumulates without circulating, it becomes pollution. Hoarded financial capital breeds paranoia. Accumulated material capital becomes waste. Stagnant intellectual capital produces ivory tower detachment. Every form has a shadow.
</p>
<figure class="diagram">
<img src="img/pollution.svg" alt="Each form of capital and its pollution shadow when hoarded">
<figcaption>capital that stops flowing starts rotting</figcaption>
</figure>
<p>
A system in harmony has appropriate inputs for all of its outputs. Very little waste or pollution during operation. This principle from a <a href="/let-us-define-a-permacomputer/">permacomputer manifesto</a> applies directly. A permacomputer keeps capital flowing: open source releases intellectual capital, voluntary participation circulates social capital, distributed infrastructure prevents material capital from concentrating.
</p>
<!-- ============================================================ -->
<!-- STEP 9: THE PERMACOMPUTER MAPPING -->
<!-- ============================================================ -->
<span class="step-label">STEP 9</span>
<h3>A Permacomputer as Regenerative System</h3>
<p>
Every design decision in a permacomputer maps to one or more forms of capital & one or more quadrivium values. A permacomputer functions as a regenerative enterprise: a venture that proactively grows foundational pools of nurture capital by providing goods & services that create net positive gains for a whole system.
</p>
<figure class="diagram">
<img src="img/permacomputer-capital.svg" alt="How each form of capital maps to a permacomputer quadrivium values">
<figcaption>each form of capital maps to one or more quadrivium values: truth, freedom, harmony, love</figcaption>
</figure>
<table>
<thead>
<tr><th>Capital</th><th>Permacomputer Expression</th><th>Quadrivium Value</th></tr>
</thead>
<tbody>
<tr><td>Living</td><td>Durable hardware, repair not replace</td><td>Harmony</td></tr>
<tr><td>Material</td><td>Servers, networks, IPv4/IPv6, cryptography</td><td>Harmony</td></tr>
<tr><td>Financial</td><td>Costs near zero, no monopoly, free as water</td><td>Freedom</td></tr>
<tr><td>Intellectual</td><td>Open source, public domain, seeds to sprout</td><td>Truth</td></tr>
<tr><td>Experiential</td><td>All layers accessible, learn by operating</td><td>Truth</td></tr>
<tr><td>Social</td><td>By the people, for the people, voluntary</td><td>Freedom</td></tr>
<tr><td>Cultural</td><td>Utopia of the commons, code outlasts authors</td><td>Freedom</td></tr>
<tr><td>Spiritual</td><td>Love as fuel, wu wei, homeostasis</td><td>Love</td></tr>
</tbody>
</table>
<p>
A permacomputer does not optimize for financial capital. It optimizes for all eight forms simultaneously, with living capital as foundation & cultural capital as emergent outcome. A quadrivium (truth, freedom, harmony, love) serves as a design constraint that ensures systems regenerate rather than extract.
</p>
<p>
Grow food not lawn. Grow all eight, not just one.
</p>
<hr>
<h3>Sources</h3>
<div class="footnotes">
<ol>
<li id="fn1">Ethan C. Roland &amp; Gregory Landua, <a href="https://www.regenerativeenterprise.com/" target="_blank"><i>Regenerative Enterprise: Optimizing for Multi-Capital Abundance</i></a> (2013). Original article: Ethan C. Roland, &#8220;Eight Forms of Capital,&#8221; <i>Permaculture Magazine</i>, No. 68 (2011), AppleSeed Permaculture. PDF: <a href="http://appleseedpermaculture.com/wp-content/uploads/2011/04/8_Forms_of_Capital_PM68.pdf" target="_blank">appleseedpermaculture.com/&hellip;/8_Forms_of_Capital_PM68.pdf</a>. Diagrams generated from DOT source files included in this repository. <a href="#ref1">&#8617;</a></li>
<li id="fn2">Bill Mollison, <i>Permaculture: A Designers&#8217; Manual</i>, p.&nbsp;534. Tagari Publications, Tasmania, Australia, 1988. <a href="#ref2">&#8617;</a></li>
</ol>
</div>
<p><a href="/let-us-define-a-permacomputer/">&#8592; back to the manifesto</a></p>
</main>
<footer>
<center><a href="/software/" class="unturf-brand">unturf. software</a></center>
<center>Russell Ballestrini | <span class="unturf-brand">unturf.</span> &copy; 2025</center>
</footer>
<script src="/js/diagram-zoom.js"></script>
<script src="https://uncloseai.com/uncloseai.js" type="module"></script>
</body>
</html>

View file

@ -1 +0,0 @@
google-site-verification: google2dd95a728d9c0d9f.html

View file

@ -13,10 +13,8 @@
<!-- unturf. logo! --> <!-- unturf. logo! -->
<link rel="stylesheet" href="/css/chunkfive/stylesheet.css" type="text/css" charset="utf-8" /> <link rel="stylesheet" href="/css/chunkfive/stylesheet.css" type="text/css" charset="utf-8" />
<!-- a choice permacomputer CSS stylesheet to-end-all stylesheets, pico.classless.min.css ! woot --> <!-- Bootstrap CSS -->
<!-- you should steal this stylesheet. --> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.1/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-F3w7mX95PdgyTmZZMECAngseQB83DfGTowi0iMjiWaeVhAn4FJkqJByhZMI3AhiU" crossorigin="anonymous">
<!-- <link rel="stylesheet" href="https://unpkg.com/@picocss/pico@latest/css/pico.classless.min.css "> -->
<link rel="stylesheet" href="/css/pico.classless.min.css">
</head> </head>
@ -60,14 +58,12 @@
var thread_uri = window.location.href; var thread_uri = window.location.href;
var thread_title = window.document.title; var thread_title = window.document.title;
var thread_fragment = window.location.hash; var thread_fragment = window.location.hash;
// rb owner was here. // rb owner was here.
var mode_param = "&mode=dark"; var rb_src = "https://my.remarkbox.com/embed" +
var rb_src = "https://my.remarkbox.com/embed" +
"?rb_owner_key=" + rb_owner_key + "?rb_owner_key=" + rb_owner_key +
"&thread_title=" + encodeURI(thread_title) + "&thread_title=" + encodeURI(thread_title) +
"&thread_uri=" + encodeURIComponent(thread_uri) + "&thread_uri=" + encodeURIComponent(thread_uri) +
mode_param +
thread_fragment; thread_fragment;
function create_remarkbox_iframe() { function create_remarkbox_iframe() {
@ -99,7 +95,7 @@
<footer class="pt-5 my-5 text-muted border-top"> <footer class="pt-5 my-5 text-muted border-top">
<center> <center>
Russell Ballestrini | <span style="font-family: 'chunkfiveregular';">unturf.</span> &middot; &copy; 2021 Russell Ballestrini | unturf &middot; &copy; 2021
</center> </center>
</footer> </footer>
</div> </div>
@ -112,6 +108,5 @@
<!-- Bootstrap JavaScript Bundle with Popper --> <!-- Bootstrap JavaScript Bundle with Popper -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.1/dist/js/bootstrap.bundle.min.js" integrity="sha384-/bQdsTh/da6pkI1MST/rWKFNjaCP5gBSY4sEBT38Q/9RBh9AH40zEOg7Hlq2THRZ" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.1/dist/js/bootstrap.bundle.min.js" integrity="sha384-/bQdsTh/da6pkI1MST/rWKFNjaCP5gBSY4sEBT38Q/9RBh9AH40zEOg7Hlq2THRZ" crossorigin="anonymous"></script>
<script src="https://uncloseai.com/uncloseai.js" type="module"></script>
</body> </body>
</html> </html>

View file

@ -1,42 +0,0 @@
digraph acre_yields {
bgcolor="#1a1a2e"
rankdir=LR
node [fontname="Helvetica" fontsize=10 style=filled shape=box]
edge [color="#888888" fontname="Helvetica" fontsize=9 fontcolor="#aaaaaa"]
subgraph cluster_third {
label="1/3 ACRE" fontcolor="#CDDC39" fontsize=12 fontname="Helvetica Bold"
color="#CDDC39" style=dashed
t_stalk [label="~1,333 kg\ndry stalk" fillcolor="#827717" fontcolor="white"]
t_cellulose [label="~560 kg\ncellulose" fillcolor="#9E9D24" fontcolor="white"]
t_plastic [label="~400 kg\nbioplastic" fillcolor="#AFB42B" fontcolor="white"]
t_serves [label="serves ~33 people\npackaging only\nor 1 household\nall replaceable plastic" fillcolor="#263238" fontcolor="#CDDC39" shape=note]
t_stalk -> t_cellulose -> t_plastic -> t_serves
}
subgraph cluster_one {
label="1 ACRE" fontcolor="#4CAF50" fontsize=12 fontname="Helvetica Bold"
color="#4CAF50" style=dashed
o_stalk [label="~4,000 kg\ndry stalk" fillcolor="#2E7D32" fontcolor="white"]
o_cellulose [label="~1,680 kg\ncellulose" fillcolor="#388E3C" fontcolor="white"]
o_plastic [label="~1,200 kg\nbioplastic" fillcolor="#43A047" fontcolor="white"]
o_serves [label="serves ~100 people\npackaging only\nor 6 households\nall replaceable plastic" fillcolor="#263238" fontcolor="#4CAF50" shape=note]
o_stalk -> o_cellulose -> o_plastic -> o_serves
}
subgraph cluster_three {
label="3 ACRES" fontcolor="#2196F3" fontsize=12 fontname="Helvetica Bold"
color="#2196F3" style=dashed
h_stalk [label="~12,000 kg\ndry stalk" fillcolor="#1565C0" fontcolor="white"]
h_cellulose [label="~5,040 kg\ncellulose" fillcolor="#1976D2" fontcolor="white"]
h_plastic [label="~3,600 kg\nbioplastic" fillcolor="#1E88E5" fontcolor="white"]
h_serves [label="serves ~300 people\npackaging only\nor 18 households\nall replaceable plastic" fillcolor="#263238" fontcolor="#2196F3" shape=note]
h_stalk -> h_cellulose -> h_plastic -> h_serves
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 47 KiB

View file

@ -1,178 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.43.0 (0)
-->
<!-- Title: acre_yields Pages: 1 -->
<svg width="479pt" height="307pt"
viewBox="0.00 0.00 479.00 307.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 303)">
<title>acre_yields</title>
<polygon fill="#1a1a2e" stroke="transparent" points="-4,4 -4,-303 475,-303 475,4 -4,4"/>
<g id="clust1" class="cluster">
<title>cluster_third</title>
<polygon fill="#1a1a2e" stroke="#cddc39" stroke-dasharray="5,2" points="11,-8 11,-97 463,-97 463,-8 11,-8"/>
<text text-anchor="middle" x="237" y="-83.4" font-family="Helvetica Bold" font-size="12.00" fill="#cddc39">1/3 ACRE</text>
</g>
<g id="clust2" class="cluster">
<title>cluster_one</title>
<polygon fill="#1a1a2e" stroke="#4caf50" stroke-dasharray="5,2" points="11,-105 11,-194 463,-194 463,-105 11,-105"/>
<text text-anchor="middle" x="237" y="-180.4" font-family="Helvetica Bold" font-size="12.00" fill="#4caf50">1 ACRE</text>
</g>
<g id="clust3" class="cluster">
<title>cluster_three</title>
<polygon fill="#1a1a2e" stroke="#2196f3" stroke-dasharray="5,2" points="8,-202 8,-291 463,-291 463,-202 8,-202"/>
<text text-anchor="middle" x="235.5" y="-277.4" font-family="Helvetica Bold" font-size="12.00" fill="#2196f3">3 ACRES</text>
</g>
<!-- t_stalk -->
<g id="node1" class="node">
<title>t_stalk</title>
<polygon fill="#827717" stroke="black" points="86,-60 19,-60 19,-24 86,-24 86,-60"/>
<text text-anchor="middle" x="52.5" y="-45" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">~1,333 kg</text>
<text text-anchor="middle" x="52.5" y="-34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">dry stalk</text>
</g>
<!-- t_cellulose -->
<g id="node2" class="node">
<title>t_cellulose</title>
<polygon fill="#9e9d24" stroke="black" points="188.5,-60 128.5,-60 128.5,-24 188.5,-24 188.5,-60"/>
<text text-anchor="middle" x="158.5" y="-45" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">~560 kg</text>
<text text-anchor="middle" x="158.5" y="-34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">cellulose</text>
</g>
<!-- t_stalk&#45;&gt;t_cellulose -->
<g id="edge1" class="edge">
<title>t_stalk&#45;&gt;t_cellulose</title>
<path fill="none" stroke="#888888" d="M86.12,-42C96.22,-42 107.45,-42 117.97,-42"/>
<polygon fill="#888888" stroke="#888888" points="118.17,-45.5 128.17,-42 118.17,-38.5 118.17,-45.5"/>
</g>
<!-- t_plastic -->
<g id="node3" class="node">
<title>t_plastic</title>
<polygon fill="#afb42b" stroke="black" points="293.5,-60 229.5,-60 229.5,-24 293.5,-24 293.5,-60"/>
<text text-anchor="middle" x="261.5" y="-45" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">~400 kg</text>
<text text-anchor="middle" x="261.5" y="-34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">bioplastic</text>
</g>
<!-- t_cellulose&#45;&gt;t_plastic -->
<g id="edge2" class="edge">
<title>t_cellulose&#45;&gt;t_plastic</title>
<path fill="none" stroke="#888888" d="M188.71,-42C198.14,-42 208.78,-42 218.92,-42"/>
<polygon fill="#888888" stroke="#888888" points="219.24,-45.5 229.24,-42 219.24,-38.5 219.24,-45.5"/>
</g>
<!-- t_serves -->
<g id="node4" class="node">
<title>t_serves</title>
<polygon fill="#263238" stroke="black" points="449,-68 331,-68 331,-16 455,-16 455,-62 449,-68"/>
<polyline fill="none" stroke="black" points="449,-68 449,-62 "/>
<polyline fill="none" stroke="black" points="455,-62 449,-62 "/>
<text text-anchor="middle" x="393" y="-56" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#cddc39">serves ~33 people</text>
<text text-anchor="middle" x="393" y="-45" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#cddc39">packaging only</text>
<text text-anchor="middle" x="393" y="-34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#cddc39">or 1 household</text>
<text text-anchor="middle" x="393" y="-23" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#cddc39">all replaceable plastic</text>
</g>
<!-- t_plastic&#45;&gt;t_serves -->
<g id="edge3" class="edge">
<title>t_plastic&#45;&gt;t_serves</title>
<path fill="none" stroke="#888888" d="M293.52,-42C301.76,-42 311.02,-42 320.46,-42"/>
<polygon fill="#888888" stroke="#888888" points="320.76,-45.5 330.76,-42 320.76,-38.5 320.76,-45.5"/>
</g>
<!-- o_stalk -->
<g id="node5" class="node">
<title>o_stalk</title>
<polygon fill="#2e7d32" stroke="black" points="86,-157 19,-157 19,-121 86,-121 86,-157"/>
<text text-anchor="middle" x="52.5" y="-142" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">~4,000 kg</text>
<text text-anchor="middle" x="52.5" y="-131" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">dry stalk</text>
</g>
<!-- o_cellulose -->
<g id="node6" class="node">
<title>o_cellulose</title>
<polygon fill="#388e3c" stroke="black" points="192,-157 125,-157 125,-121 192,-121 192,-157"/>
<text text-anchor="middle" x="158.5" y="-142" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">~1,680 kg</text>
<text text-anchor="middle" x="158.5" y="-131" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">cellulose</text>
</g>
<!-- o_stalk&#45;&gt;o_cellulose -->
<g id="edge4" class="edge">
<title>o_stalk&#45;&gt;o_cellulose</title>
<path fill="none" stroke="#888888" d="M86.12,-139C95.22,-139 105.24,-139 114.83,-139"/>
<polygon fill="#888888" stroke="#888888" points="114.99,-142.5 124.99,-139 114.99,-135.5 114.99,-142.5"/>
</g>
<!-- o_plastic -->
<g id="node7" class="node">
<title>o_plastic</title>
<polygon fill="#43a047" stroke="black" points="295,-157 228,-157 228,-121 295,-121 295,-157"/>
<text text-anchor="middle" x="261.5" y="-142" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">~1,200 kg</text>
<text text-anchor="middle" x="261.5" y="-131" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">bioplastic</text>
</g>
<!-- o_cellulose&#45;&gt;o_plastic -->
<g id="edge5" class="edge">
<title>o_cellulose&#45;&gt;o_plastic</title>
<path fill="none" stroke="#888888" d="M192.01,-139C200.13,-139 208.96,-139 217.5,-139"/>
<polygon fill="#888888" stroke="#888888" points="217.7,-142.5 227.7,-139 217.7,-135.5 217.7,-142.5"/>
</g>
<!-- o_serves -->
<g id="node8" class="node">
<title>o_serves</title>
<polygon fill="#263238" stroke="black" points="449,-165 331,-165 331,-113 455,-113 455,-159 449,-165"/>
<polyline fill="none" stroke="black" points="449,-165 449,-159 "/>
<polyline fill="none" stroke="black" points="455,-159 449,-159 "/>
<text text-anchor="middle" x="393" y="-153" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#4caf50">serves ~100 people</text>
<text text-anchor="middle" x="393" y="-142" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#4caf50">packaging only</text>
<text text-anchor="middle" x="393" y="-131" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#4caf50">or 6 households</text>
<text text-anchor="middle" x="393" y="-120" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#4caf50">all replaceable plastic</text>
</g>
<!-- o_plastic&#45;&gt;o_serves -->
<g id="edge6" class="edge">
<title>o_plastic&#45;&gt;o_serves</title>
<path fill="none" stroke="#888888" d="M295.18,-139C303.07,-139 311.82,-139 320.73,-139"/>
<polygon fill="#888888" stroke="#888888" points="320.82,-142.5 330.82,-139 320.82,-135.5 320.82,-142.5"/>
</g>
<!-- h_stalk -->
<g id="node9" class="node">
<title>h_stalk</title>
<polygon fill="#1565c0" stroke="black" points="89,-254 16,-254 16,-218 89,-218 89,-254"/>
<text text-anchor="middle" x="52.5" y="-239" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">~12,000 kg</text>
<text text-anchor="middle" x="52.5" y="-228" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">dry stalk</text>
</g>
<!-- h_cellulose -->
<g id="node10" class="node">
<title>h_cellulose</title>
<polygon fill="#1976d2" stroke="black" points="192,-254 125,-254 125,-218 192,-218 192,-254"/>
<text text-anchor="middle" x="158.5" y="-239" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">~5,040 kg</text>
<text text-anchor="middle" x="158.5" y="-228" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">cellulose</text>
</g>
<!-- h_stalk&#45;&gt;h_cellulose -->
<g id="edge7" class="edge">
<title>h_stalk&#45;&gt;h_cellulose</title>
<path fill="none" stroke="#888888" d="M89,-236C97.28,-236 106.19,-236 114.75,-236"/>
<polygon fill="#888888" stroke="#888888" points="114.96,-239.5 124.96,-236 114.96,-232.5 114.96,-239.5"/>
</g>
<!-- h_plastic -->
<g id="node11" class="node">
<title>h_plastic</title>
<polygon fill="#1e88e5" stroke="black" points="295,-254 228,-254 228,-218 295,-218 295,-254"/>
<text text-anchor="middle" x="261.5" y="-239" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">~3,600 kg</text>
<text text-anchor="middle" x="261.5" y="-228" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">bioplastic</text>
</g>
<!-- h_cellulose&#45;&gt;h_plastic -->
<g id="edge8" class="edge">
<title>h_cellulose&#45;&gt;h_plastic</title>
<path fill="none" stroke="#888888" d="M192.01,-236C200.13,-236 208.96,-236 217.5,-236"/>
<polygon fill="#888888" stroke="#888888" points="217.7,-239.5 227.7,-236 217.7,-232.5 217.7,-239.5"/>
</g>
<!-- h_serves -->
<g id="node12" class="node">
<title>h_serves</title>
<polygon fill="#263238" stroke="black" points="449,-262 331,-262 331,-210 455,-210 455,-256 449,-262"/>
<polyline fill="none" stroke="black" points="449,-262 449,-256 "/>
<polyline fill="none" stroke="black" points="455,-256 449,-256 "/>
<text text-anchor="middle" x="393" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#2196f3">serves ~300 people</text>
<text text-anchor="middle" x="393" y="-239" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#2196f3">packaging only</text>
<text text-anchor="middle" x="393" y="-228" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#2196f3">or 18 households</text>
<text text-anchor="middle" x="393" y="-217" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#2196f3">all replaceable plastic</text>
</g>
<!-- h_plastic&#45;&gt;h_serves -->
<g id="edge9" class="edge">
<title>h_plastic&#45;&gt;h_serves</title>
<path fill="none" stroke="#888888" d="M295.18,-236C303.07,-236 311.82,-236 320.73,-236"/>
<polygon fill="#888888" stroke="#888888" points="320.82,-239.5 330.82,-236 320.82,-232.5 320.82,-239.5"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 10 KiB

View file

@ -1,39 +0,0 @@
digraph can_vs_cannot {
bgcolor="#1a1a2e"
rankdir=TB
node [fontname="Helvetica" fontsize=10 style=filled shape=box]
edge [style=invis]
label=<<B><FONT COLOR="#cccccc" POINT-SIZE="14">what hemp bioplastic can &amp; cannot replace</FONT></B>>
labelloc=t
subgraph cluster_can {
label="CAN REPLACE" fontcolor="#4CAF50" fontsize=12 fontname="Helvetica Bold"
color="#4CAF50" style=dashed
c1 [label="food trays\nclamshells" fillcolor="#2E7D32" fontcolor="white"]
c2 [label="shopping bags\nproduce bags" fillcolor="#388E3C" fontcolor="white"]
c3 [label="disposable\ncutlery & plates" fillcolor="#43A047" fontcolor="white"]
c4 [label="plant pots\nseed trays" fillcolor="#4CAF50" fontcolor="white"]
c5 [label="product\npackaging" fillcolor="#66BB6A" fontcolor="white"]
c6 [label="car interior\npanels" fillcolor="#81C784" fontcolor="#1a1a2e"]
c1 -> c2 -> c3 -> c4 -> c5 -> c6
}
subgraph cluster_cannot {
label="CANNOT REPLACE" fontcolor="#F44336" fontsize=12 fontname="Helvetica Bold"
color="#F44336" style=dashed
n1 [label="pipes &\nplumbing" fillcolor="#B71C1C" fontcolor="white"]
n2 [label="electronics\nhousings" fillcolor="#C62828" fontcolor="white"]
n3 [label="medical\ndevices" fillcolor="#D32F2F" fontcolor="white"]
n4 [label="clear bottles\n& windows" fillcolor="#E53935" fontcolor="white"]
n5 [label="wire\ninsulation" fillcolor="#F44336" fontcolor="white"]
n6 [label="outdoor furniture\ndecking, siding" fillcolor="#EF5350" fontcolor="white"]
n1 -> n2 -> n3 -> n4 -> n5 -> n6
}
note [label="hemp bioplastic replaces ~20-30%\nof household disposable plastic\n\npackaging & single-use items only\nnot engineering or medical plastics" fillcolor="#263238" fontcolor="#CDDC39" shape=note fontsize=10]
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 52 KiB

View file

@ -1,129 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.43.0 (0)
-->
<!-- Title: can_vs_cannot Pages: 1 -->
<svg width="459pt" height="494pt"
viewBox="0.00 0.00 459.00 494.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 490)">
<title>can_vs_cannot</title>
<polygon fill="#1a1a2e" stroke="transparent" points="-4,4 -4,-490 455,-490 455,4 -4,4"/>
<text text-anchor="start" x="56" y="-471.8" font-family="Times,serif" font-weight="bold" font-size="14.00" fill="#cccccc">what hemp bioplastic can &amp; cannot replace</text>
<g id="clust1" class="cluster">
<title>cluster_can</title>
<polygon fill="#1a1a2e" stroke="#4caf50" stroke-dasharray="5,2" points="8,-8 8,-455 118,-455 118,-8 8,-8"/>
<text text-anchor="middle" x="63" y="-441.4" font-family="Helvetica Bold" font-size="12.00" fill="#4caf50">CAN REPLACE</text>
</g>
<g id="clust2" class="cluster">
<title>cluster_cannot</title>
<polygon fill="#1a1a2e" stroke="#f44336" stroke-dasharray="5,2" points="126,-8 126,-455 255,-455 255,-8 126,-8"/>
<text text-anchor="middle" x="190.5" y="-441.4" font-family="Helvetica Bold" font-size="12.00" fill="#f44336">CANNOT REPLACE</text>
</g>
<!-- c1 -->
<g id="node1" class="node">
<title>c1</title>
<polygon fill="#2e7d32" stroke="black" points="97.5,-426 28.5,-426 28.5,-390 97.5,-390 97.5,-426"/>
<text text-anchor="middle" x="63" y="-411" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">food trays</text>
<text text-anchor="middle" x="63" y="-400" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">clamshells</text>
</g>
<!-- c2 -->
<g id="node2" class="node">
<title>c2</title>
<polygon fill="#388e3c" stroke="black" points="106.5,-340 19.5,-340 19.5,-304 106.5,-304 106.5,-340"/>
<text text-anchor="middle" x="63" y="-325" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">shopping bags</text>
<text text-anchor="middle" x="63" y="-314" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">produce bags</text>
</g>
<!-- c1&#45;&gt;c2 -->
<!-- c3 -->
<g id="node3" class="node">
<title>c3</title>
<polygon fill="#43a047" stroke="black" points="110,-268 16,-268 16,-232 110,-232 110,-268"/>
<text text-anchor="middle" x="63" y="-253" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">disposable</text>
<text text-anchor="middle" x="63" y="-242" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">cutlery &amp; plates</text>
</g>
<!-- c2&#45;&gt;c3 -->
<!-- c4 -->
<g id="node4" class="node">
<title>c4</title>
<polygon fill="#4caf50" stroke="black" points="97,-196 29,-196 29,-160 97,-160 97,-196"/>
<text text-anchor="middle" x="63" y="-181" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">plant pots</text>
<text text-anchor="middle" x="63" y="-170" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">seed trays</text>
</g>
<!-- c3&#45;&gt;c4 -->
<!-- c5 -->
<g id="node5" class="node">
<title>c5</title>
<polygon fill="#66bb6a" stroke="black" points="96,-124 30,-124 30,-88 96,-88 96,-124"/>
<text text-anchor="middle" x="63" y="-109" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">product</text>
<text text-anchor="middle" x="63" y="-98" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">packaging</text>
</g>
<!-- c4&#45;&gt;c5 -->
<!-- c6 -->
<g id="node6" class="node">
<title>c6</title>
<polygon fill="#81c784" stroke="black" points="98,-52 28,-52 28,-16 98,-16 98,-52"/>
<text text-anchor="middle" x="63" y="-37" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#1a1a2e">car interior</text>
<text text-anchor="middle" x="63" y="-26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#1a1a2e">panels</text>
</g>
<!-- c5&#45;&gt;c6 -->
<!-- n1 -->
<g id="node7" class="node">
<title>n1</title>
<polygon fill="#b71c1c" stroke="black" points="221,-426 159,-426 159,-390 221,-390 221,-426"/>
<text text-anchor="middle" x="190" y="-411" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">pipes &amp;</text>
<text text-anchor="middle" x="190" y="-400" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">plumbing</text>
</g>
<!-- n2 -->
<g id="node8" class="node">
<title>n2</title>
<polygon fill="#c62828" stroke="black" points="225,-340 155,-340 155,-304 225,-304 225,-340"/>
<text text-anchor="middle" x="190" y="-325" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">electronics</text>
<text text-anchor="middle" x="190" y="-314" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">housings</text>
</g>
<!-- n1&#45;&gt;n2 -->
<!-- n3 -->
<g id="node9" class="node">
<title>n3</title>
<polygon fill="#d32f2f" stroke="black" points="218,-268 162,-268 162,-232 218,-232 218,-268"/>
<text text-anchor="middle" x="190" y="-253" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">medical</text>
<text text-anchor="middle" x="190" y="-242" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">devices</text>
</g>
<!-- n2&#45;&gt;n3 -->
<!-- n4 -->
<g id="node10" class="node">
<title>n4</title>
<polygon fill="#e53935" stroke="black" points="228.5,-196 151.5,-196 151.5,-160 228.5,-160 228.5,-196"/>
<text text-anchor="middle" x="190" y="-181" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">clear bottles</text>
<text text-anchor="middle" x="190" y="-170" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">&amp; windows</text>
</g>
<!-- n3&#45;&gt;n4 -->
<!-- n5 -->
<g id="node11" class="node">
<title>n5</title>
<polygon fill="#f44336" stroke="black" points="222.5,-124 157.5,-124 157.5,-88 222.5,-88 222.5,-124"/>
<text text-anchor="middle" x="190" y="-109" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">wire</text>
<text text-anchor="middle" x="190" y="-98" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">insulation</text>
</g>
<!-- n4&#45;&gt;n5 -->
<!-- n6 -->
<g id="node12" class="node">
<title>n6</title>
<polygon fill="#ef5350" stroke="black" points="239.5,-52 140.5,-52 140.5,-16 239.5,-16 239.5,-52"/>
<text text-anchor="middle" x="190" y="-37" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">outdoor furniture</text>
<text text-anchor="middle" x="190" y="-26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">decking, siding</text>
</g>
<!-- n5&#45;&gt;n6 -->
<!-- note -->
<g id="node13" class="node">
<title>note</title>
<polygon fill="#263238" stroke="black" points="445,-440 263,-440 263,-376 451,-376 451,-434 445,-440"/>
<polyline fill="none" stroke="black" points="445,-440 445,-434 "/>
<polyline fill="none" stroke="black" points="451,-434 445,-434 "/>
<text text-anchor="middle" x="357" y="-428" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#cddc39">hemp bioplastic replaces ~20&#45;30%</text>
<text text-anchor="middle" x="357" y="-417" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#cddc39">of household disposable plastic</text>
<text text-anchor="middle" x="357" y="-394" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#cddc39">packaging &amp; single&#45;use items only</text>
<text text-anchor="middle" x="357" y="-383" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#cddc39">not engineering or medical plastics</text>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 7.4 KiB

View file

@ -1,41 +0,0 @@
digraph community_scale {
bgcolor="#1a1a2e"
rankdir=TB
node [fontname="Helvetica" fontsize=10 style=filled shape=box]
edge [style=invis]
label=<<B><FONT COLOR="#cccccc" POINT-SIZE="14">how much land to replace disposable plastic?</FONT></B>>
labelloc=t
subgraph cluster_household {
label="HOUSEHOLD (2.5 people)" fontcolor="#CDDC39" fontsize=11 fontname="Helvetica Bold"
color="#CDDC39" style=dashed
h_need [label="plastic consumed: ~200 kg/yr\nreplaceable fraction: ~30 kg/yr\n(packaging & disposables only)" fillcolor="#37474F" fontcolor="white"]
h_land [label="hemp needed: 1/40 acre\n(~1,000 sq ft garden plot)" fillcolor="#827717" fontcolor="white"]
h_note [label="one large backyard garden\ncould cover a household" fillcolor="#263238" fontcolor="#CDDC39" shape=note]
h_need -> h_land -> h_note
}
subgraph cluster_village {
label="VILLAGE (100 people)" fontcolor="#4CAF50" fontsize=11 fontname="Helvetica Bold"
color="#4CAF50" style=dashed
v_need [label="plastic consumed: ~13,000 kg/yr\nreplaceable fraction: ~1,200 kg/yr" fillcolor="#37474F" fontcolor="white"]
v_land [label="hemp needed: ~1 acre\nplus processing facility" fillcolor="#2E7D32" fontcolor="white"]
v_note [label="requires shared decorticator\n& chemical processing setup\n~$50,000 startup" fillcolor="#263238" fontcolor="#4CAF50" shape=note]
v_need -> v_land -> v_note
}
subgraph cluster_town {
label="TOWN (10,000 people)" fontcolor="#2196F3" fontsize=11 fontname="Helvetica Bold"
color="#2196F3" style=dashed
t_need [label="plastic consumed: ~1,300,000 kg/yr\nreplaceable fraction: ~120,000 kg/yr" fillcolor="#37474F" fontcolor="white"]
t_land [label="hemp needed: ~100 acres\nindustrial processing facility" fillcolor="#1565C0" fontcolor="white"]
t_note [label="requires industrial decorticator\nchemical plant, extruder\n$500,000+ investment" fillcolor="#263238" fontcolor="#2196F3" shape=note]
t_need -> t_land -> t_note
}
honest [label="these numbers replace only disposable plastic packaging\n~20-30% of total plastic consumption\n\nengineering plastics, medical devices,\nelectronics, pipes, & wire insulation\nstill require petroleum or other solutions" fillcolor="#B71C1C" fontcolor="white" shape=note fontsize=10]
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 77 KiB

View file

@ -1,119 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.43.0 (0)
-->
<!-- Title: community_scale Pages: 1 -->
<svg width="933pt" height="290pt"
viewBox="0.00 0.00 933.00 290.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 286)">
<title>community_scale</title>
<polygon fill="#1a1a2e" stroke="transparent" points="-4,4 -4,-286 929,-286 929,4 -4,4"/>
<text text-anchor="start" x="285" y="-267.8" font-family="Times,serif" font-weight="bold" font-size="14.00" fill="#cccccc">how much land to replace disposable plastic?</text>
<g id="clust1" class="cluster">
<title>cluster_household</title>
<polygon fill="#1a1a2e" stroke="#cddc39" stroke-dasharray="5,2" points="8,-10.5 8,-251 192,-251 192,-10.5 8,-10.5"/>
<text text-anchor="middle" x="100" y="-238.2" font-family="Helvetica Bold" font-size="11.00" fill="#cddc39">HOUSEHOLD (2.5 people)</text>
</g>
<g id="clust2" class="cluster">
<title>cluster_village</title>
<polygon fill="#1a1a2e" stroke="#4caf50" stroke-dasharray="5,2" points="200,-8 200,-248.5 400,-248.5 400,-8 200,-8"/>
<text text-anchor="middle" x="300" y="-235.7" font-family="Helvetica Bold" font-size="11.00" fill="#4caf50">VILLAGE (100 people)</text>
</g>
<g id="clust3" class="cluster">
<title>cluster_town</title>
<polygon fill="#1a1a2e" stroke="#2196f3" stroke-dasharray="5,2" points="408,-8 408,-248.5 618,-248.5 618,-8 408,-8"/>
<text text-anchor="middle" x="513" y="-235.7" font-family="Helvetica Bold" font-size="11.00" fill="#2196f3">TOWN (10,000 people)</text>
</g>
<!-- h_need -->
<g id="node1" class="node">
<title>h_need</title>
<polygon fill="#37474f" stroke="black" points="184.5,-223 15.5,-223 15.5,-182 184.5,-182 184.5,-223"/>
<text text-anchor="middle" x="100" y="-211" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">plastic consumed: ~200 kg/yr</text>
<text text-anchor="middle" x="100" y="-200" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">replaceable fraction: ~30 kg/yr</text>
<text text-anchor="middle" x="100" y="-189" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">(packaging &amp; disposables only)</text>
</g>
<!-- h_land -->
<g id="node2" class="node">
<title>h_land</title>
<polygon fill="#827717" stroke="black" points="171,-129 29,-129 29,-93 171,-93 171,-129"/>
<text text-anchor="middle" x="100" y="-114" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">hemp needed: 1/40 acre</text>
<text text-anchor="middle" x="100" y="-103" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">(~1,000 sq ft garden plot)</text>
</g>
<!-- h_need&#45;&gt;h_land -->
<!-- h_note -->
<g id="node3" class="node">
<title>h_note</title>
<polygon fill="#263238" stroke="black" points="167,-54.5 27,-54.5 27,-18.5 173,-18.5 173,-48.5 167,-54.5"/>
<polyline fill="none" stroke="black" points="167,-54.5 167,-48.5 "/>
<polyline fill="none" stroke="black" points="173,-48.5 167,-48.5 "/>
<text text-anchor="middle" x="100" y="-39.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#cddc39">one large backyard garden</text>
<text text-anchor="middle" x="100" y="-28.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#cddc39">could cover a household</text>
</g>
<!-- h_land&#45;&gt;h_note -->
<!-- v_need -->
<g id="node4" class="node">
<title>v_need</title>
<polygon fill="#37474f" stroke="black" points="391.5,-220.5 208.5,-220.5 208.5,-184.5 391.5,-184.5 391.5,-220.5"/>
<text text-anchor="middle" x="300" y="-205.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">plastic consumed: ~13,000 kg/yr</text>
<text text-anchor="middle" x="300" y="-194.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">replaceable fraction: ~1,200 kg/yr</text>
</g>
<!-- v_land -->
<g id="node5" class="node">
<title>v_land</title>
<polygon fill="#2e7d32" stroke="black" points="364.5,-129 235.5,-129 235.5,-93 364.5,-93 364.5,-129"/>
<text text-anchor="middle" x="300" y="-114" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">hemp needed: ~1 acre</text>
<text text-anchor="middle" x="300" y="-103" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">plus processing facility</text>
</g>
<!-- v_need&#45;&gt;v_land -->
<!-- v_note -->
<g id="node6" class="node">
<title>v_note</title>
<polygon fill="#263238" stroke="black" points="372.5,-57 221.5,-57 221.5,-16 378.5,-16 378.5,-51 372.5,-57"/>
<polyline fill="none" stroke="black" points="372.5,-57 372.5,-51 "/>
<polyline fill="none" stroke="black" points="378.5,-51 372.5,-51 "/>
<text text-anchor="middle" x="300" y="-45" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#4caf50">requires shared decorticator</text>
<text text-anchor="middle" x="300" y="-34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#4caf50">&amp; chemical processing setup</text>
<text text-anchor="middle" x="300" y="-23" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#4caf50">~$50,000 startup</text>
</g>
<!-- v_land&#45;&gt;v_note -->
<!-- t_need -->
<g id="node7" class="node">
<title>t_need</title>
<polygon fill="#37474f" stroke="black" points="610.5,-220.5 415.5,-220.5 415.5,-184.5 610.5,-184.5 610.5,-220.5"/>
<text text-anchor="middle" x="513" y="-205.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">plastic consumed: ~1,300,000 kg/yr</text>
<text text-anchor="middle" x="513" y="-194.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">replaceable fraction: ~120,000 kg/yr</text>
</g>
<!-- t_land -->
<g id="node8" class="node">
<title>t_land</title>
<polygon fill="#1565c0" stroke="black" points="590.5,-129 435.5,-129 435.5,-93 590.5,-93 590.5,-129"/>
<text text-anchor="middle" x="513" y="-114" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">hemp needed: ~100 acres</text>
<text text-anchor="middle" x="513" y="-103" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">industrial processing facility</text>
</g>
<!-- t_need&#45;&gt;t_land -->
<!-- t_note -->
<g id="node9" class="node">
<title>t_note</title>
<polygon fill="#263238" stroke="black" points="590.5,-57 429.5,-57 429.5,-16 596.5,-16 596.5,-51 590.5,-57"/>
<polyline fill="none" stroke="black" points="590.5,-57 590.5,-51 "/>
<polyline fill="none" stroke="black" points="596.5,-51 590.5,-51 "/>
<text text-anchor="middle" x="513" y="-45" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#2196f3">requires industrial decorticator</text>
<text text-anchor="middle" x="513" y="-34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#2196f3">chemical plant, extruder</text>
<text text-anchor="middle" x="513" y="-23" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#2196f3">$500,000+ investment</text>
</g>
<!-- t_land&#45;&gt;t_note -->
<!-- honest -->
<g id="node10" class="node">
<title>honest</title>
<polygon fill="#b71c1c" stroke="black" points="919,-240 629,-240 629,-165 925,-165 925,-234 919,-240"/>
<polyline fill="none" stroke="black" points="919,-240 919,-234 "/>
<polyline fill="none" stroke="black" points="925,-234 919,-234 "/>
<text text-anchor="middle" x="777" y="-228" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">these numbers replace only disposable plastic packaging</text>
<text text-anchor="middle" x="777" y="-217" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">~20&#45;30% of total plastic consumption</text>
<text text-anchor="middle" x="777" y="-194" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">engineering plastics, medical devices,</text>
<text text-anchor="middle" x="777" y="-183" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">electronics, pipes, &amp; wire insulation</text>
<text text-anchor="middle" x="777" y="-172" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">still require petroleum or other solutions</text>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 7.9 KiB

View file

@ -1,64 +0,0 @@
digraph cooperative {
bgcolor="#1a1a2e"
rankdir=TB
node [fontname="Helvetica" fontsize=10 style=filled shape=box]
edge [color="#888888" fontname="Helvetica" fontsize=9 fontcolor="#aaaaaa"]
subgraph cluster_growers {
label="GROWERS" fontcolor="#4CAF50" fontsize=12 fontname="Helvetica Bold"
color="#4CAF50" style=dashed
f1 [label="farm A\n1/3 acre" fillcolor="#2E7D32" fontcolor="white"]
f2 [label="farm B\n1 acre" fillcolor="#388E3C" fontcolor="white"]
f3 [label="farm C\n1 acre" fillcolor="#43A047" fontcolor="white"]
f4 [label="garden plots\nbackyards\n& more" fillcolor="#66BB6A" fontcolor="white"]
}
subgraph cluster_collect {
label="COLLECTION" fontcolor="#FF9800" fontsize=12 fontname="Helvetica Bold"
color="#FF9800" style=dashed
harvest [label="harvest &\ndry stalks" fillcolor="#E65100" fontcolor="white"]
store [label="central\nstorage barn" fillcolor="#F57C00" fontcolor="white"]
}
subgraph cluster_process {
label="SHARED PROCESSING" fontcolor="#2196F3" fontsize=12 fontname="Helvetica Bold"
color="#2196F3" style=dashed
decorticator [label="decorticator\n$5,000-60,000\nshared asset" fillcolor="#1565C0" fontcolor="white"]
chem [label="chemical extraction\nNaOH + acid wash\nshared facility" fillcolor="#1976D2" fontcolor="white"]
press [label="hot press\n& molds\nshared tools" fillcolor="#1E88E5" fontcolor="white"]
}
subgraph cluster_output {
label="OUTPUT" fontcolor="#9C27B0" fontsize=12 fontname="Helvetica Bold"
color="#9C27B0" style=dashed
products [label="containers\ntrays, pots\npackaging" fillcolor="#7B1FA2" fontcolor="white"]
byproducts [label="hurd → animal bedding\nlignin → compost\nfiber → textiles" fillcolor="#6A1B9A" fontcolor="white"]
}
subgraph cluster_distribute {
label="DISTRIBUTE" fontcolor="#E91E63" fontsize=12 fontname="Helvetica Bold"
color="#E91E63" style=dashed
local [label="farmers market\nfarm stands\nlocal shops" fillcolor="#AD1457" fontcolor="white"]
members [label="member households\nget allocation\nat cost" fillcolor="#C2185B" fontcolor="white"]
}
f1 -> harvest
f2 -> harvest
f3 -> harvest
f4 -> harvest
harvest -> store
store -> decorticator
decorticator -> chem
decorticator -> byproducts [style=dashed label="hurd\n& waste fiber"]
chem -> press
press -> products
products -> local
products -> members
cost [label="startup: $50,000-100,000\nshared across 10-20 members\n$2,500-10,000 per member" fillcolor="#263238" fontcolor="#CDDC39" shape=note]
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 74 KiB

View file

@ -1,221 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.43.0 (0)
-->
<!-- Title: cooperative Pages: 1 -->
<svg width="523pt" height="733pt"
viewBox="0.00 0.00 523.00 733.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 729)">
<title>cooperative</title>
<polygon fill="#1a1a2e" stroke="transparent" points="-4,4 -4,-729 519,-729 519,4 -4,4"/>
<g id="clust1" class="cluster">
<title>cluster_growers</title>
<polygon fill="#1a1a2e" stroke="#4caf50" stroke-dasharray="5,2" points="29,-639 29,-717 341,-717 341,-639 29,-639"/>
<text text-anchor="middle" x="185" y="-703.4" font-family="Helvetica Bold" font-size="12.00" fill="#4caf50">GROWERS</text>
</g>
<g id="clust2" class="cluster">
<title>cluster_collect</title>
<polygon fill="#1a1a2e" stroke="#ff9800" stroke-dasharray="5,2" points="120,-474 120,-620 214,-620 214,-474 120,-474"/>
<text text-anchor="middle" x="167" y="-606.4" font-family="Helvetica Bold" font-size="12.00" fill="#ff9800">COLLECTION</text>
</g>
<g id="clust3" class="cluster">
<title>cluster_process</title>
<polygon fill="#1a1a2e" stroke="#2196f3" stroke-dasharray="5,2" points="83,-202 83,-455 234,-455 234,-202 83,-202"/>
<text text-anchor="middle" x="158.5" y="-441.4" font-family="Helvetica Bold" font-size="12.00" fill="#2196f3">SHARED PROCESSING</text>
</g>
<g id="clust4" class="cluster">
<title>cluster_output</title>
<polygon fill="#1a1a2e" stroke="#9c27b0" stroke-dasharray="5,2" points="93,-105 93,-183 323,-183 323,-105 93,-105"/>
<text text-anchor="middle" x="208" y="-169.4" font-family="Helvetica Bold" font-size="12.00" fill="#9c27b0">OUTPUT</text>
</g>
<g id="clust5" class="cluster">
<title>cluster_distribute</title>
<polygon fill="#1a1a2e" stroke="#e91e63" stroke-dasharray="5,2" points="8,-8 8,-86 250,-86 250,-8 8,-8"/>
<text text-anchor="middle" x="129" y="-72.4" font-family="Helvetica Bold" font-size="12.00" fill="#e91e63">DISTRIBUTE</text>
</g>
<!-- f1 -->
<g id="node1" class="node">
<title>f1</title>
<polygon fill="#2e7d32" stroke="black" points="93,-685.5 37,-685.5 37,-649.5 93,-649.5 93,-685.5"/>
<text text-anchor="middle" x="65" y="-670.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">farm A</text>
<text text-anchor="middle" x="65" y="-659.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">1/3 acre</text>
</g>
<!-- harvest -->
<g id="node5" class="node">
<title>harvest</title>
<polygon fill="#e65100" stroke="black" points="199.5,-591 134.5,-591 134.5,-555 199.5,-555 199.5,-591"/>
<text text-anchor="middle" x="167" y="-576" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">harvest &amp;</text>
<text text-anchor="middle" x="167" y="-565" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">dry stalks</text>
</g>
<!-- f1&#45;&gt;harvest -->
<g id="edge1" class="edge">
<title>f1&#45;&gt;harvest</title>
<path fill="none" stroke="#888888" d="M84.19,-649.1C100.1,-634.67 122.89,-614 140.54,-597.99"/>
<polygon fill="#888888" stroke="#888888" points="143.19,-600.32 148.25,-591.01 138.49,-595.13 143.19,-600.32"/>
</g>
<!-- f2 -->
<g id="node2" class="node">
<title>f2</title>
<polygon fill="#388e3c" stroke="black" points="165,-685.5 111,-685.5 111,-649.5 165,-649.5 165,-685.5"/>
<text text-anchor="middle" x="138" y="-670.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">farm B</text>
<text text-anchor="middle" x="138" y="-659.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">1 acre</text>
</g>
<!-- f2&#45;&gt;harvest -->
<g id="edge2" class="edge">
<title>f2&#45;&gt;harvest</title>
<path fill="none" stroke="#888888" d="M143.45,-649.1C147.73,-635.45 153.77,-616.21 158.65,-600.63"/>
<polygon fill="#888888" stroke="#888888" points="162.02,-601.6 161.67,-591.01 155.34,-599.5 162.02,-601.6"/>
</g>
<!-- f3 -->
<g id="node3" class="node">
<title>f3</title>
<polygon fill="#43a047" stroke="black" points="237,-685.5 183,-685.5 183,-649.5 237,-649.5 237,-685.5"/>
<text text-anchor="middle" x="210" y="-670.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">farm C</text>
<text text-anchor="middle" x="210" y="-659.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">1 acre</text>
</g>
<!-- f3&#45;&gt;harvest -->
<g id="edge3" class="edge">
<title>f3&#45;&gt;harvest</title>
<path fill="none" stroke="#888888" d="M201.91,-649.1C195.51,-635.32 186.45,-615.85 179.17,-600.18"/>
<polygon fill="#888888" stroke="#888888" points="182.3,-598.6 174.91,-591.01 175.95,-601.55 182.3,-598.6"/>
</g>
<!-- f4 -->
<g id="node4" class="node">
<title>f4</title>
<polygon fill="#66bb6a" stroke="black" points="332.5,-688 255.5,-688 255.5,-647 332.5,-647 332.5,-688"/>
<text text-anchor="middle" x="294" y="-676" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">garden plots</text>
<text text-anchor="middle" x="294" y="-665" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">backyards</text>
<text text-anchor="middle" x="294" y="-654" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">&amp; more</text>
</g>
<!-- f4&#45;&gt;harvest -->
<g id="edge4" class="edge">
<title>f4&#45;&gt;harvest</title>
<path fill="none" stroke="#888888" d="M267.07,-646.88C247.1,-632.34 219.82,-612.47 198.78,-597.15"/>
<polygon fill="#888888" stroke="#888888" points="200.62,-594.16 190.48,-591.1 196.5,-599.82 200.62,-594.16"/>
</g>
<!-- store -->
<g id="node6" class="node">
<title>store</title>
<polygon fill="#f57c00" stroke="black" points="206,-518 128,-518 128,-482 206,-482 206,-518"/>
<text text-anchor="middle" x="167" y="-503" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">central</text>
<text text-anchor="middle" x="167" y="-492" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">storage barn</text>
</g>
<!-- harvest&#45;&gt;store -->
<g id="edge5" class="edge">
<title>harvest&#45;&gt;store</title>
<path fill="none" stroke="#888888" d="M167,-554.81C167,-546.79 167,-537.05 167,-528.07"/>
<polygon fill="#888888" stroke="#888888" points="170.5,-528.03 167,-518.03 163.5,-528.03 170.5,-528.03"/>
</g>
<!-- decorticator -->
<g id="node7" class="node">
<title>decorticator</title>
<polygon fill="#1565c0" stroke="black" points="210,-426 124,-426 124,-385 210,-385 210,-426"/>
<text text-anchor="middle" x="167" y="-414" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">decorticator</text>
<text text-anchor="middle" x="167" y="-403" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">$5,000&#45;60,000</text>
<text text-anchor="middle" x="167" y="-392" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">shared asset</text>
</g>
<!-- store&#45;&gt;decorticator -->
<g id="edge6" class="edge">
<title>store&#45;&gt;decorticator</title>
<path fill="none" stroke="#888888" d="M167,-481.6C167,-468.88 167,-451.32 167,-436.37"/>
<polygon fill="#888888" stroke="#888888" points="170.5,-436.06 167,-426.06 163.5,-436.06 170.5,-436.06"/>
</g>
<!-- chem -->
<g id="node8" class="node">
<title>chem</title>
<polygon fill="#1976d2" stroke="black" points="206.5,-348 93.5,-348 93.5,-307 206.5,-307 206.5,-348"/>
<text text-anchor="middle" x="150" y="-336" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">chemical extraction</text>
<text text-anchor="middle" x="150" y="-325" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">NaOH + acid wash</text>
<text text-anchor="middle" x="150" y="-314" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">shared facility</text>
</g>
<!-- decorticator&#45;&gt;chem -->
<g id="edge7" class="edge">
<title>decorticator&#45;&gt;chem</title>
<path fill="none" stroke="#888888" d="M162.62,-384.93C160.78,-376.68 158.59,-366.91 156.56,-357.84"/>
<polygon fill="#888888" stroke="#888888" points="159.96,-357 154.36,-348.01 153.13,-358.53 159.96,-357"/>
</g>
<!-- byproducts -->
<g id="node11" class="node">
<title>byproducts</title>
<polygon fill="#6a1b9a" stroke="black" points="315,-154 187,-154 187,-113 315,-113 315,-154"/>
<text text-anchor="middle" x="251" y="-142" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">hurd → animal bedding</text>
<text text-anchor="middle" x="251" y="-131" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">lignin → compost</text>
<text text-anchor="middle" x="251" y="-120" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">fiber → textiles</text>
</g>
<!-- decorticator&#45;&gt;byproducts -->
<g id="edge8" class="edge">
<title>decorticator&#45;&gt;byproducts</title>
<path fill="none" stroke="#888888" stroke-dasharray="5,2" d="M188.95,-384.78C198.76,-374.74 209.55,-361.75 216,-348 244.53,-287.15 250.28,-207.07 251.15,-164.36"/>
<polygon fill="#888888" stroke="#888888" points="254.65,-164.14 251.28,-154.09 247.65,-164.05 254.65,-164.14"/>
<text text-anchor="middle" x="270.5" y="-281.8" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#aaaaaa">hurd</text>
<text text-anchor="middle" x="270.5" y="-271.8" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#aaaaaa">&amp; waste fiber</text>
</g>
<!-- press -->
<g id="node9" class="node">
<title>press</title>
<polygon fill="#1e88e5" stroke="black" points="179.5,-251 102.5,-251 102.5,-210 179.5,-210 179.5,-251"/>
<text text-anchor="middle" x="141" y="-239" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">hot press</text>
<text text-anchor="middle" x="141" y="-228" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">&amp; molds</text>
<text text-anchor="middle" x="141" y="-217" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">shared tools</text>
</g>
<!-- chem&#45;&gt;press -->
<g id="edge9" class="edge">
<title>chem&#45;&gt;press</title>
<path fill="none" stroke="#888888" d="M148.14,-306.82C146.89,-293.7 145.24,-276.2 143.83,-261.38"/>
<polygon fill="#888888" stroke="#888888" points="147.29,-260.78 142.86,-251.16 140.32,-261.44 147.29,-260.78"/>
</g>
<!-- products -->
<g id="node10" class="node">
<title>products</title>
<polygon fill="#7b1fa2" stroke="black" points="169,-154 101,-154 101,-113 169,-113 169,-154"/>
<text text-anchor="middle" x="135" y="-142" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">containers</text>
<text text-anchor="middle" x="135" y="-131" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">trays, pots</text>
<text text-anchor="middle" x="135" y="-120" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">packaging</text>
</g>
<!-- press&#45;&gt;products -->
<g id="edge10" class="edge">
<title>press&#45;&gt;products</title>
<path fill="none" stroke="#888888" d="M139.76,-209.82C138.93,-196.7 137.82,-179.2 136.89,-164.38"/>
<polygon fill="#888888" stroke="#888888" points="140.37,-163.92 136.24,-154.16 133.38,-164.36 140.37,-163.92"/>
</g>
<!-- local -->
<g id="node12" class="node">
<title>local</title>
<polygon fill="#ad1457" stroke="black" points="108,-57 16,-57 16,-16 108,-16 108,-57"/>
<text text-anchor="middle" x="62" y="-45" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">farmers market</text>
<text text-anchor="middle" x="62" y="-34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">farm stands</text>
<text text-anchor="middle" x="62" y="-23" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">local shops</text>
</g>
<!-- products&#45;&gt;local -->
<g id="edge11" class="edge">
<title>products&#45;&gt;local</title>
<path fill="none" stroke="#888888" d="M119.87,-112.82C109.3,-99.06 95.04,-80.5 83.32,-65.24"/>
<polygon fill="#888888" stroke="#888888" points="85.97,-62.96 77.11,-57.16 80.42,-67.22 85.97,-62.96"/>
</g>
<!-- members -->
<g id="node13" class="node">
<title>members</title>
<polygon fill="#c2185b" stroke="black" points="242,-57 126,-57 126,-16 242,-16 242,-57"/>
<text text-anchor="middle" x="184" y="-45" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">member households</text>
<text text-anchor="middle" x="184" y="-34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">get allocation</text>
<text text-anchor="middle" x="184" y="-23" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">at cost</text>
</g>
<!-- products&#45;&gt;members -->
<g id="edge12" class="edge">
<title>products&#45;&gt;members</title>
<path fill="none" stroke="#888888" d="M145.15,-112.82C152.12,-99.31 161.47,-81.18 169.25,-66.09"/>
<polygon fill="#888888" stroke="#888888" points="172.39,-67.65 173.86,-57.16 166.17,-64.44 172.39,-67.65"/>
</g>
<!-- cost -->
<g id="node14" class="node">
<title>cost</title>
<polygon fill="#263238" stroke="black" points="509,-688 351,-688 351,-647 515,-647 515,-682 509,-688"/>
<polyline fill="none" stroke="black" points="509,-688 509,-682 "/>
<polyline fill="none" stroke="black" points="515,-682 509,-682 "/>
<text text-anchor="middle" x="433" y="-676" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#cddc39">startup: $50,000&#45;100,000</text>
<text text-anchor="middle" x="433" y="-665" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#cddc39">shared across 10&#45;20 members</text>
<text text-anchor="middle" x="433" y="-654" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#cddc39">$2,500&#45;10,000 per member</text>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 13 KiB

View file

@ -1,31 +0,0 @@
digraph cost_reality {
bgcolor="#1a1a2e"
rankdir=LR
node [fontname="Helvetica" fontsize=10 style=filled shape=box]
edge [style=invis]
label=<<B><FONT COLOR="#cccccc" POINT-SIZE="14">cost per kg: petroleum vs hemp</FONT></B>>
labelloc=t
subgraph cluster_petro {
label="PETROLEUM PLASTIC" fontcolor="#F44336" fontsize=11 fontname="Helvetica Bold"
color="#F44336" style=dashed
hdpe [label="HDPE\n$0.90-1.40/kg" fillcolor="#B71C1C" fontcolor="white"]
pp [label="polypropylene\n$2.20-2.53/kg" fillcolor="#C62828" fontcolor="white"]
pet [label="PET\n$1.00-1.50/kg" fillcolor="#D32F2F" fontcolor="white"]
hdpe -> pp -> pet
}
subgraph cluster_bio {
label="BIOPLASTIC" fontcolor="#4CAF50" fontsize=11 fontname="Helvetica Bold"
color="#4CAF50" style=dashed
pla [label="PLA (corn)\n$2.00-3.00/kg" fillcolor="#2E7D32" fontcolor="white"]
hemp [label="hemp bioplastic\n$5.00-5.20/kg" fillcolor="#388E3C" fontcolor="white"]
pha [label="PHA (microbial)\n$4.00-9.00/kg" fillcolor="#43A047" fontcolor="white"]
pla -> hemp -> pha
}
gap [label="hemp bioplastic costs\n2-3x petroleum plastic today\n\nno subsidies, no scale,\nno infrastructure yet\n\nprice drops with volume\nPLA fell 50% since 2007" fillcolor="#263238" fontcolor="#CDDC39" shape=note]
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

View file

@ -1,83 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.43.0 (0)
-->
<!-- Title: cost_reality Pages: 1 -->
<svg width="442pt" height="297pt"
viewBox="0.00 0.00 442.00 297.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 293)">
<title>cost_reality</title>
<polygon fill="#1a1a2e" stroke="transparent" points="-4,4 -4,-293 438,-293 438,4 -4,4"/>
<text text-anchor="start" x="92.5" y="-274.8" font-family="Times,serif" font-weight="bold" font-size="14.00" fill="#cccccc">cost per kg: petroleum vs hemp</text>
<g id="clust1" class="cluster">
<title>cluster_petro</title>
<polygon fill="#1a1a2e" stroke="#f44336" stroke-dasharray="5,2" points="29.5,-8 29.5,-80 421,-80 421,-8 29.5,-8"/>
<text text-anchor="middle" x="225.25" y="-67.2" font-family="Helvetica Bold" font-size="11.00" fill="#f44336">PETROLEUM PLASTIC</text>
</g>
<g id="clust2" class="cluster">
<title>cluster_bio</title>
<polygon fill="#1a1a2e" stroke="#4caf50" stroke-dasharray="5,2" points="29.5,-88 29.5,-160 426,-160 426,-88 29.5,-88"/>
<text text-anchor="middle" x="227.75" y="-147.2" font-family="Helvetica Bold" font-size="11.00" fill="#4caf50">BIOPLASTIC</text>
</g>
<!-- hdpe -->
<g id="node1" class="node">
<title>hdpe</title>
<polygon fill="#b71c1c" stroke="black" points="120.5,-52 37.5,-52 37.5,-16 120.5,-16 120.5,-52"/>
<text text-anchor="middle" x="79" y="-37" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">HDPE</text>
<text text-anchor="middle" x="79" y="-26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">$0.90&#45;1.40/kg</text>
</g>
<!-- pp -->
<g id="node2" class="node">
<title>pp</title>
<polygon fill="#c62828" stroke="black" points="284.5,-52 198.5,-52 198.5,-16 284.5,-16 284.5,-52"/>
<text text-anchor="middle" x="241.5" y="-37" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">polypropylene</text>
<text text-anchor="middle" x="241.5" y="-26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">$2.20&#45;2.53/kg</text>
</g>
<!-- hdpe&#45;&gt;pp -->
<!-- pet -->
<g id="node3" class="node">
<title>pet</title>
<polygon fill="#d32f2f" stroke="black" points="413,-52 330,-52 330,-16 413,-16 413,-52"/>
<text text-anchor="middle" x="371.5" y="-37" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">PET</text>
<text text-anchor="middle" x="371.5" y="-26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">$1.00&#45;1.50/kg</text>
</g>
<!-- pp&#45;&gt;pet -->
<!-- pla -->
<g id="node4" class="node">
<title>pla</title>
<polygon fill="#2e7d32" stroke="black" points="120.5,-132 37.5,-132 37.5,-96 120.5,-96 120.5,-132"/>
<text text-anchor="middle" x="79" y="-117" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">PLA (corn)</text>
<text text-anchor="middle" x="79" y="-106" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">$2.00&#45;3.00/kg</text>
</g>
<!-- hemp -->
<g id="node5" class="node">
<title>hemp</title>
<polygon fill="#388e3c" stroke="black" points="289,-132 194,-132 194,-96 289,-96 289,-132"/>
<text text-anchor="middle" x="241.5" y="-117" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">hemp bioplastic</text>
<text text-anchor="middle" x="241.5" y="-106" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">$5.00&#45;5.20/kg</text>
</g>
<!-- pla&#45;&gt;hemp -->
<!-- pha -->
<g id="node6" class="node">
<title>pha</title>
<polygon fill="#43a047" stroke="black" points="418,-132 325,-132 325,-96 418,-96 418,-132"/>
<text text-anchor="middle" x="371.5" y="-117" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">PHA (microbial)</text>
<text text-anchor="middle" x="371.5" y="-106" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">$4.00&#45;9.00/kg</text>
</g>
<!-- hemp&#45;&gt;pha -->
<!-- gap -->
<g id="node7" class="node">
<title>gap</title>
<polygon fill="#263238" stroke="black" points="152,-266 0,-266 0,-168 158,-168 158,-260 152,-266"/>
<polyline fill="none" stroke="black" points="152,-266 152,-260 "/>
<polyline fill="none" stroke="black" points="158,-260 152,-260 "/>
<text text-anchor="middle" x="79" y="-254" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#cddc39">hemp bioplastic costs</text>
<text text-anchor="middle" x="79" y="-243" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#cddc39">2&#45;3x petroleum plastic today</text>
<text text-anchor="middle" x="79" y="-220" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#cddc39">no subsidies, no scale,</text>
<text text-anchor="middle" x="79" y="-209" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#cddc39">no infrastructure yet</text>
<text text-anchor="middle" x="79" y="-186" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#cddc39">price drops with volume</text>
<text text-anchor="middle" x="79" y="-175" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#cddc39">PLA fell 50% since 2007</text>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 5.1 KiB

View file

@ -1,29 +0,0 @@
digraph harmony_cycle {
bgcolor="#1a1a2e"
node [fontname="Helvetica" fontsize=11 style=filled shape=box]
edge [color="#4CAF50" fontname="Helvetica" fontsize=9 fontcolor="#aaaaaa" penwidth=2]
sun [label="sunlight\nwater\nCO2" fillcolor="#FFC107" fontcolor="#1a1a2e" shape=ellipse]
hemp [label="hemp\n120 day crop\nno pesticides" fillcolor="#2E7D32" fontcolor="white"]
stalk [label="stalk\n& fiber" fillcolor="#388E3C" fontcolor="white"]
cellulose [label="cellulose\nextraction" fillcolor="#43A047" fontcolor="white"]
bioplastic [label="bioplastic\ncontainer" fillcolor="#7B1FA2" fontcolor="white"]
use [label="use &\ndiscard" fillcolor="#FF9800" fontcolor="white"]
compost [label="compost\n3-6 months" fillcolor="#795548" fontcolor="white"]
soil [label="soil\nnutrients" fillcolor="#4E342E" fontcolor="white"]
sun -> hemp [label="grow"]
hemp -> stalk [label="harvest"]
stalk -> cellulose [label="process"]
cellulose -> bioplastic [label="press"]
bioplastic -> use [label="serve"]
use -> compost [label="return"]
compost -> soil [label="decompose"]
soil -> hemp [label="feed"]
// contrast
petro [label="petroleum plastic\ncycle breaks here\n→ landfill forever" fillcolor="#B71C1C" fontcolor="white" shape=octagon]
use -> petro [color="#F44336" style=dashed label="vs" penwidth=1]
note [label="hemp bioplastic closes a cycle\npetroleum plastic breaks it\n\nboth require energy to process\nbut only one returns to earth" fillcolor="#263238" fontcolor="#CDDC39" shape=note fontsize=9]
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

View file

@ -1,153 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.43.0 (0)
-->
<!-- Title: harmony_cycle Pages: 1 -->
<svg width="497pt" height="684pt"
viewBox="0.00 0.00 497.00 683.58" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 679.58)">
<title>harmony_cycle</title>
<polygon fill="#1a1a2e" stroke="transparent" points="-4,4 -4,-679.58 493,-679.58 493,4 -4,4"/>
<!-- sun -->
<g id="node1" class="node">
<title>sun</title>
<ellipse fill="#ffc107" stroke="black" cx="271.5" cy="-644.46" rx="42.35" ry="31.23"/>
<text text-anchor="middle" x="271.5" y="-653.66" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#1a1a2e">sunlight</text>
<text text-anchor="middle" x="271.5" y="-641.66" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#1a1a2e">water</text>
<text text-anchor="middle" x="271.5" y="-629.66" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#1a1a2e">CO2</text>
</g>
<!-- hemp -->
<g id="node2" class="node">
<title>hemp</title>
<polygon fill="#2e7d32" stroke="black" points="316,-567.35 227,-567.35 227,-523.35 316,-523.35 316,-567.35"/>
<text text-anchor="middle" x="271.5" y="-554.55" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">hemp</text>
<text text-anchor="middle" x="271.5" y="-542.55" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">120 day crop</text>
<text text-anchor="middle" x="271.5" y="-530.55" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">no pesticides</text>
</g>
<!-- sun&#45;&gt;hemp -->
<g id="edge1" class="edge">
<title>sun&#45;&gt;hemp</title>
<path fill="none" stroke="#4caf50" stroke-width="2" d="M271.5,-613.27C271.5,-602.05 271.5,-589.29 271.5,-577.94"/>
<polygon fill="#4caf50" stroke="#4caf50" stroke-width="2" points="275,-577.59 271.5,-567.59 268,-577.59 275,-577.59"/>
<text text-anchor="middle" x="283" y="-588.15" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#aaaaaa">grow</text>
</g>
<!-- stalk -->
<g id="node3" class="node">
<title>stalk</title>
<polygon fill="#388e3c" stroke="black" points="269.5,-477.35 215.5,-477.35 215.5,-441.35 269.5,-441.35 269.5,-477.35"/>
<text text-anchor="middle" x="242.5" y="-462.55" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">stalk</text>
<text text-anchor="middle" x="242.5" y="-450.55" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">&amp; fiber</text>
</g>
<!-- hemp&#45;&gt;stalk -->
<g id="edge2" class="edge">
<title>hemp&#45;&gt;stalk</title>
<path fill="none" stroke="#4caf50" stroke-width="2" d="M259.19,-522.96C256.35,-517.36 253.56,-511.24 251.5,-505.35 249.56,-499.8 248,-493.72 246.75,-487.86"/>
<polygon fill="#4caf50" stroke="#4caf50" stroke-width="2" points="250.13,-486.92 244.83,-477.75 243.25,-488.22 250.13,-486.92"/>
<text text-anchor="middle" x="268.5" y="-498.15" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#aaaaaa">harvest</text>
</g>
<!-- cellulose -->
<g id="node4" class="node">
<title>cellulose</title>
<polygon fill="#43a047" stroke="black" points="270,-395.35 197,-395.35 197,-359.35 270,-359.35 270,-395.35"/>
<text text-anchor="middle" x="233.5" y="-380.55" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">cellulose</text>
<text text-anchor="middle" x="233.5" y="-368.55" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">extraction</text>
</g>
<!-- stalk&#45;&gt;cellulose -->
<g id="edge3" class="edge">
<title>stalk&#45;&gt;cellulose</title>
<path fill="none" stroke="#4caf50" stroke-width="2" d="M240.55,-440.99C239.38,-430.65 237.88,-417.29 236.56,-405.57"/>
<polygon fill="#4caf50" stroke="#4caf50" stroke-width="2" points="240.01,-404.95 235.42,-395.4 233.06,-405.73 240.01,-404.95"/>
<text text-anchor="middle" x="256" y="-416.15" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#aaaaaa">process</text>
</g>
<!-- bioplastic -->
<g id="node5" class="node">
<title>bioplastic</title>
<polygon fill="#7b1fa2" stroke="black" points="252,-313.35 183,-313.35 183,-277.35 252,-277.35 252,-313.35"/>
<text text-anchor="middle" x="217.5" y="-298.55" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">bioplastic</text>
<text text-anchor="middle" x="217.5" y="-286.55" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">container</text>
</g>
<!-- cellulose&#45;&gt;bioplastic -->
<g id="edge4" class="edge">
<title>cellulose&#45;&gt;bioplastic</title>
<path fill="none" stroke="#4caf50" stroke-width="2" d="M230.03,-358.99C227.94,-348.54 225.23,-335.02 222.87,-323.21"/>
<polygon fill="#4caf50" stroke="#4caf50" stroke-width="2" points="226.3,-322.52 220.91,-313.4 219.44,-323.89 226.3,-322.52"/>
<text text-anchor="middle" x="238" y="-334.15" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#aaaaaa">press</text>
</g>
<!-- use -->
<g id="node6" class="node">
<title>use</title>
<polygon fill="#ff9800" stroke="black" points="212.5,-231.35 156.5,-231.35 156.5,-195.35 212.5,-195.35 212.5,-231.35"/>
<text text-anchor="middle" x="184.5" y="-216.55" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">use &amp;</text>
<text text-anchor="middle" x="184.5" y="-204.55" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">discard</text>
</g>
<!-- bioplastic&#45;&gt;use -->
<g id="edge5" class="edge">
<title>bioplastic&#45;&gt;use</title>
<path fill="none" stroke="#4caf50" stroke-width="2" d="M210.34,-276.99C205.99,-266.44 200.34,-252.75 195.43,-240.86"/>
<polygon fill="#4caf50" stroke="#4caf50" stroke-width="2" points="198.58,-239.31 191.53,-231.4 192.11,-241.98 198.58,-239.31"/>
<text text-anchor="middle" x="215" y="-252.15" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#aaaaaa">serve</text>
</g>
<!-- compost -->
<g id="node7" class="node">
<title>compost</title>
<polygon fill="#795548" stroke="black" points="79,-133.68 0,-133.68 0,-97.68 79,-97.68 79,-133.68"/>
<text text-anchor="middle" x="39.5" y="-118.88" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">compost</text>
<text text-anchor="middle" x="39.5" y="-106.88" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">3&#45;6 months</text>
</g>
<!-- use&#45;&gt;compost -->
<g id="edge6" class="edge">
<title>use&#45;&gt;compost</title>
<path fill="none" stroke="#4caf50" stroke-width="2" d="M158.39,-195.29C139.06,-182.65 112.11,-164.97 88.5,-149.35 83.76,-146.21 78.76,-142.9 73.85,-139.63"/>
<polygon fill="#4caf50" stroke="#4caf50" stroke-width="2" points="75.42,-136.47 65.16,-133.84 71.54,-142.3 75.42,-136.47"/>
<text text-anchor="middle" x="146" y="-170.15" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#aaaaaa">return</text>
</g>
<!-- petro -->
<g id="node9" class="node">
<title>petro</title>
<polygon fill="#b71c1c" stroke="black" points="271.5,-101.65 271.5,-129.7 220.54,-149.53 148.46,-149.53 97.5,-129.7 97.5,-101.65 148.46,-81.82 220.54,-81.82 271.5,-101.65"/>
<text text-anchor="middle" x="184.5" y="-124.88" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">petroleum plastic</text>
<text text-anchor="middle" x="184.5" y="-112.88" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">cycle breaks here</text>
<text text-anchor="middle" x="184.5" y="-100.88" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">→ landfill forever</text>
</g>
<!-- use&#45;&gt;petro -->
<g id="edge9" class="edge">
<title>use&#45;&gt;petro</title>
<path fill="none" stroke="#f44336" stroke-dasharray="5,2" d="M184.5,-195.25C184.5,-185.34 184.5,-172.38 184.5,-159.85"/>
<polygon fill="#f44336" stroke="#f44336" points="188,-159.5 184.5,-149.5 181,-159.5 188,-159.5"/>
<text text-anchor="middle" x="189.5" y="-170.15" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#aaaaaa">vs</text>
</g>
<!-- soil -->
<g id="node8" class="node">
<title>soil</title>
<polygon fill="#4e342e" stroke="black" points="202.5,-36 136.5,-36 136.5,0 202.5,0 202.5,-36"/>
<text text-anchor="middle" x="169.5" y="-21.2" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">soil</text>
<text text-anchor="middle" x="169.5" y="-9.2" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">nutrients</text>
</g>
<!-- compost&#45;&gt;soil -->
<g id="edge7" class="edge">
<title>compost&#45;&gt;soil</title>
<path fill="none" stroke="#4caf50" stroke-width="2" d="M62.74,-97.57C83.69,-82.16 114.66,-59.36 137.86,-42.29"/>
<polygon fill="#4caf50" stroke="#4caf50" stroke-width="2" points="140.04,-45.03 146.02,-36.28 135.89,-39.39 140.04,-45.03"/>
<text text-anchor="middle" x="146.5" y="-56.8" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#aaaaaa">decompose</text>
</g>
<!-- soil&#45;&gt;hemp -->
<g id="edge8" class="edge">
<title>soil&#45;&gt;hemp</title>
<path fill="none" stroke="#4caf50" stroke-width="2" d="M202.64,-27.68C241.16,-40.01 299.5,-66.62 299.5,-114.68 299.5,-460.35 299.5,-460.35 299.5,-460.35 299.5,-478.81 293.34,-498.43 286.8,-514.07"/>
<polygon fill="#4caf50" stroke="#4caf50" stroke-width="2" points="283.58,-512.68 282.73,-523.24 289.98,-515.52 283.58,-512.68"/>
<text text-anchor="middle" x="309.5" y="-293.15" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#aaaaaa">feed</text>
</g>
<!-- note -->
<g id="node10" class="node">
<title>note</title>
<polygon fill="#263238" stroke="black" points="483,-673.46 332,-673.46 332,-615.46 489,-615.46 489,-667.46 483,-673.46"/>
<polyline fill="none" stroke="black" points="483,-673.46 483,-667.46 "/>
<polyline fill="none" stroke="black" points="489,-667.46 483,-667.46 "/>
<text text-anchor="middle" x="410.5" y="-662.26" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cddc39">hemp bioplastic closes a cycle</text>
<text text-anchor="middle" x="410.5" y="-652.26" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cddc39">petroleum plastic breaks it</text>
<text text-anchor="middle" x="410.5" y="-632.26" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cddc39">both require energy to process</text>
<text text-anchor="middle" x="410.5" y="-622.26" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cddc39">but only one returns to earth</text>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 10 KiB

View file

@ -1,54 +0,0 @@
digraph stalk_to_plastic {
bgcolor="#1a1a2e"
rankdir=TB
node [fontname="Helvetica" fontsize=11 style=filled shape=box]
edge [color="#888888" fontname="Helvetica" fontsize=9 fontcolor="#aaaaaa"]
subgraph cluster_grow {
label="GROW" fontcolor="#4CAF50" fontsize=12 fontname="Helvetica Bold"
color="#4CAF50" style=dashed
seed [label="hemp seed" fillcolor="#2E7D32" fontcolor="white"]
field [label="1 acre\n120 days" fillcolor="#388E3C" fontcolor="white"]
stalk [label="4 tons\ndry stalk" fillcolor="#43A047" fontcolor="white"]
}
subgraph cluster_strip {
label="STRIP" fontcolor="#FF9800" fontsize=12 fontname="Helvetica Bold"
color="#FF9800" style=dashed
dec [label="decorticate\nseparate bast & hurd" fillcolor="#E65100" fontcolor="white"]
bast [label="bast fiber\n~30% of stalk\n77% cellulose" fillcolor="#F57C00" fontcolor="white"]
hurd [label="hurd (core)\n~70% of stalk\n44% cellulose" fillcolor="#795548" fontcolor="white"]
}
subgraph cluster_extract {
label="EXTRACT" fontcolor="#2196F3" fontsize=12 fontname="Helvetica Bold"
color="#2196F3" style=dashed
naoh [label="NaOH bath\n80-90°C\n2-5 hours" fillcolor="#1565C0" fontcolor="white"]
wash [label="acid wash\nbleach\nfilter" fillcolor="#1976D2" fontcolor="white"]
cellulose [label="~420 kg\nclean cellulose" fillcolor="#1E88E5" fontcolor="white"]
}
subgraph cluster_form {
label="FORM" fontcolor="#9C27B0" fontsize=12 fontname="Helvetica Bold"
color="#9C27B0" style=dashed
mix [label="mix with\nglycerol (15%)" fillcolor="#6A1B9A" fontcolor="white"]
press [label="hot press\n150-240°C" fillcolor="#7B1FA2" fontcolor="white"]
plastic [label="~400 kg\nhemp bioplastic" fillcolor="#8E24AA" fontcolor="white"]
}
seed -> field [label="plant"]
field -> stalk [label="harvest"]
stalk -> dec [label="process"]
dec -> bast
dec -> hurd
bast -> naoh
hurd -> naoh [style=dashed label="lower yield"]
naoh -> wash [label="dissolve\nlignin"]
wash -> cellulose [label="~42%\nrecovery"]
cellulose -> mix
mix -> press
press -> plastic
loss [label="~60% lost\nlignin, hemicellulose\nwash water" fillcolor="#37474F" fontcolor="#aaaaaa" shape=ellipse]
wash -> loss [style=dashed color="#555555"]
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 78 KiB

View file

@ -1,214 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.43.0 (0)
-->
<!-- Title: stalk_to_plastic Pages: 1 -->
<svg width="358pt" height="1008pt"
viewBox="0.00 0.00 357.51 1008.23" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 1004.23)">
<title>stalk_to_plastic</title>
<polygon fill="#1a1a2e" stroke="transparent" points="-4,4 -4,-1004.23 353.51,-1004.23 353.51,4 -4,4"/>
<g id="clust1" class="cluster">
<title>cluster_grow</title>
<polygon fill="#1a1a2e" stroke="#4caf50" stroke-dasharray="5,2" points="72,-755.23 72,-992.23 166,-992.23 166,-755.23 72,-755.23"/>
<text text-anchor="middle" x="119" y="-978.63" font-family="Helvetica Bold" font-size="12.00" fill="#4caf50">GROW</text>
</g>
<g id="clust2" class="cluster">
<title>cluster_strip</title>
<polygon fill="#1a1a2e" stroke="#ff9800" stroke-dasharray="5,2" points="8,-573.23 8,-727.23 230,-727.23 230,-573.23 8,-573.23"/>
<text text-anchor="middle" x="119" y="-713.63" font-family="Helvetica Bold" font-size="12.00" fill="#ff9800">STRIP</text>
</g>
<g id="clust3" class="cluster">
<title>cluster_extract</title>
<polygon fill="#1a1a2e" stroke="#2196f3" stroke-dasharray="5,2" points="44,-259.11 44,-545.23 158,-545.23 158,-259.11 44,-259.11"/>
<text text-anchor="middle" x="101" y="-531.63" font-family="Helvetica Bold" font-size="12.00" fill="#2196f3">EXTRACT</text>
</g>
<g id="clust4" class="cluster">
<title>cluster_form</title>
<polygon fill="#1a1a2e" stroke="#9c27b0" stroke-dasharray="5,2" points="41,-8 41,-227 161,-227 161,-8 41,-8"/>
<text text-anchor="middle" x="101" y="-213.4" font-family="Helvetica Bold" font-size="12.00" fill="#9c27b0">FORM</text>
</g>
<!-- seed -->
<g id="node1" class="node">
<title>seed</title>
<polygon fill="#2e7d32" stroke="black" points="157.5,-963.23 80.5,-963.23 80.5,-927.23 157.5,-927.23 157.5,-963.23"/>
<text text-anchor="middle" x="119" y="-942.43" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">hemp seed</text>
</g>
<!-- field -->
<g id="node2" class="node">
<title>field</title>
<polygon fill="#388e3c" stroke="black" points="152.5,-881.23 85.5,-881.23 85.5,-845.23 152.5,-845.23 152.5,-881.23"/>
<text text-anchor="middle" x="119" y="-866.43" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">1 acre</text>
<text text-anchor="middle" x="119" y="-854.43" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">120 days</text>
</g>
<!-- seed&#45;&gt;field -->
<g id="edge1" class="edge">
<title>seed&#45;&gt;field</title>
<path fill="none" stroke="#888888" d="M119,-926.87C119,-916.52 119,-903.17 119,-891.45"/>
<polygon fill="#888888" stroke="#888888" points="122.5,-891.28 119,-881.28 115.5,-891.28 122.5,-891.28"/>
<text text-anchor="middle" x="131" y="-902.03" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#aaaaaa">plant</text>
</g>
<!-- stalk -->
<g id="node3" class="node">
<title>stalk</title>
<polygon fill="#43a047" stroke="black" points="151.5,-799.23 86.5,-799.23 86.5,-763.23 151.5,-763.23 151.5,-799.23"/>
<text text-anchor="middle" x="119" y="-784.43" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">4 tons</text>
<text text-anchor="middle" x="119" y="-772.43" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">dry stalk</text>
</g>
<!-- field&#45;&gt;stalk -->
<g id="edge2" class="edge">
<title>field&#45;&gt;stalk</title>
<path fill="none" stroke="#888888" d="M119,-844.87C119,-834.52 119,-821.17 119,-809.45"/>
<polygon fill="#888888" stroke="#888888" points="122.5,-809.28 119,-799.28 115.5,-809.28 122.5,-809.28"/>
<text text-anchor="middle" x="136" y="-820.03" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#aaaaaa">harvest</text>
</g>
<!-- dec -->
<g id="node4" class="node">
<title>dec</title>
<polygon fill="#e65100" stroke="black" points="186,-698.23 52,-698.23 52,-662.23 186,-662.23 186,-698.23"/>
<text text-anchor="middle" x="119" y="-683.43" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">decorticate</text>
<text text-anchor="middle" x="119" y="-671.43" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">separate bast &amp; hurd</text>
</g>
<!-- stalk&#45;&gt;dec -->
<g id="edge3" class="edge">
<title>stalk&#45;&gt;dec</title>
<path fill="none" stroke="#888888" d="M119,-762.98C119,-747.93 119,-725.84 119,-708.42"/>
<polygon fill="#888888" stroke="#888888" points="122.5,-708.27 119,-698.27 115.5,-708.27 122.5,-708.27"/>
<text text-anchor="middle" x="136.5" y="-738.03" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#aaaaaa">process</text>
</g>
<!-- bast -->
<g id="node5" class="node">
<title>bast</title>
<polygon fill="#f57c00" stroke="black" points="110,-625.23 16,-625.23 16,-581.23 110,-581.23 110,-625.23"/>
<text text-anchor="middle" x="63" y="-612.43" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">bast fiber</text>
<text text-anchor="middle" x="63" y="-600.43" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">~30% of stalk</text>
<text text-anchor="middle" x="63" y="-588.43" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">77% cellulose</text>
</g>
<!-- dec&#45;&gt;bast -->
<g id="edge4" class="edge">
<title>dec&#45;&gt;bast</title>
<path fill="none" stroke="#888888" d="M106.29,-662.21C100,-653.78 92.23,-643.37 85.01,-633.7"/>
<polygon fill="#888888" stroke="#888888" points="87.65,-631.39 78.86,-625.47 82.04,-635.58 87.65,-631.39"/>
</g>
<!-- hurd -->
<g id="node6" class="node">
<title>hurd</title>
<polygon fill="#795548" stroke="black" points="222,-625.23 128,-625.23 128,-581.23 222,-581.23 222,-625.23"/>
<text text-anchor="middle" x="175" y="-612.43" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">hurd (core)</text>
<text text-anchor="middle" x="175" y="-600.43" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">~70% of stalk</text>
<text text-anchor="middle" x="175" y="-588.43" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">44% cellulose</text>
</g>
<!-- dec&#45;&gt;hurd -->
<g id="edge5" class="edge">
<title>dec&#45;&gt;hurd</title>
<path fill="none" stroke="#888888" d="M131.71,-662.21C138,-653.78 145.77,-643.37 152.99,-633.7"/>
<polygon fill="#888888" stroke="#888888" points="155.96,-635.58 159.14,-625.47 150.35,-631.39 155.96,-635.58"/>
</g>
<!-- naoh -->
<g id="node7" class="node">
<title>naoh</title>
<polygon fill="#1565c0" stroke="black" points="146.5,-516.23 69.5,-516.23 69.5,-472.23 146.5,-472.23 146.5,-516.23"/>
<text text-anchor="middle" x="108" y="-503.43" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">NaOH bath</text>
<text text-anchor="middle" x="108" y="-491.43" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">80&#45;90°C</text>
<text text-anchor="middle" x="108" y="-479.43" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">2&#45;5 hours</text>
</g>
<!-- bast&#45;&gt;naoh -->
<g id="edge6" class="edge">
<title>bast&#45;&gt;naoh</title>
<path fill="none" stroke="#888888" d="M71.89,-581.09C78.55,-565.26 87.75,-543.38 95.2,-525.67"/>
<polygon fill="#888888" stroke="#888888" points="98.48,-526.9 99.13,-516.32 92.02,-524.18 98.48,-526.9"/>
</g>
<!-- hurd&#45;&gt;naoh -->
<g id="edge7" class="edge">
<title>hurd&#45;&gt;naoh</title>
<path fill="none" stroke="#888888" stroke-dasharray="5,2" d="M161.76,-581.09C151.76,-565.11 137.9,-542.97 126.75,-525.18"/>
<polygon fill="#888888" stroke="#888888" points="129.48,-522.94 121.21,-516.32 123.55,-526.65 129.48,-522.94"/>
<text text-anchor="middle" x="173.5" y="-556.03" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#aaaaaa">lower yield</text>
</g>
<!-- wash -->
<g id="node8" class="node">
<title>wash</title>
<polygon fill="#1976d2" stroke="black" points="143.5,-416.23 72.5,-416.23 72.5,-372.23 143.5,-372.23 143.5,-416.23"/>
<text text-anchor="middle" x="108" y="-403.43" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">acid wash</text>
<text text-anchor="middle" x="108" y="-391.43" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">bleach</text>
<text text-anchor="middle" x="108" y="-379.43" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">filter</text>
</g>
<!-- naoh&#45;&gt;wash -->
<g id="edge8" class="edge">
<title>naoh&#45;&gt;wash</title>
<path fill="none" stroke="#888888" d="M108,-471.96C108,-458.73 108,-441.49 108,-426.69"/>
<polygon fill="#888888" stroke="#888888" points="111.5,-426.45 108,-416.45 104.5,-426.45 111.5,-426.45"/>
<text text-anchor="middle" x="126" y="-447.03" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#aaaaaa">dissolve</text>
<text text-anchor="middle" x="126" y="-437.03" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#aaaaaa">lignin</text>
</g>
<!-- cellulose -->
<g id="node9" class="node">
<title>cellulose</title>
<polygon fill="#1e88e5" stroke="black" points="150,-303.11 52,-303.11 52,-267.11 150,-267.11 150,-303.11"/>
<text text-anchor="middle" x="101" y="-288.31" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">~420 kg</text>
<text text-anchor="middle" x="101" y="-276.31" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">clean cellulose</text>
</g>
<!-- wash&#45;&gt;cellulose -->
<g id="edge9" class="edge">
<title>wash&#45;&gt;cellulose</title>
<path fill="none" stroke="#888888" d="M106.62,-372.06C105.52,-355.24 103.97,-331.6 102.78,-313.36"/>
<polygon fill="#888888" stroke="#888888" points="106.27,-313.1 102.13,-303.35 99.29,-313.55 106.27,-313.1"/>
<text text-anchor="middle" x="125" y="-347.03" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#aaaaaa">~42%</text>
<text text-anchor="middle" x="125" y="-337.03" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#aaaaaa">recovery</text>
</g>
<!-- loss -->
<g id="node13" class="node">
<title>loss</title>
<ellipse fill="#37474f" stroke="black" cx="259" cy="-285.11" rx="90.52" ry="31.23"/>
<text text-anchor="middle" x="259" y="-294.31" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#aaaaaa">~60% lost</text>
<text text-anchor="middle" x="259" y="-282.31" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#aaaaaa">lignin, hemicellulose</text>
<text text-anchor="middle" x="259" y="-270.31" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#aaaaaa">wash water</text>
</g>
<!-- wash&#45;&gt;loss -->
<g id="edge13" class="edge">
<title>wash&#45;&gt;loss</title>
<path fill="none" stroke="#555555" stroke-dasharray="5,2" d="M137.83,-372.06C159.05,-357.01 187.98,-336.49 212.25,-319.27"/>
<polygon fill="#555555" stroke="#555555" points="214.49,-321.98 220.62,-313.34 210.44,-316.27 214.49,-321.98"/>
</g>
<!-- mix -->
<g id="node10" class="node">
<title>mix</title>
<polygon fill="#6a1b9a" stroke="black" points="149.5,-198 52.5,-198 52.5,-162 149.5,-162 149.5,-198"/>
<text text-anchor="middle" x="101" y="-183.2" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">mix with</text>
<text text-anchor="middle" x="101" y="-171.2" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">glycerol (15%)</text>
</g>
<!-- cellulose&#45;&gt;mix -->
<g id="edge10" class="edge">
<title>cellulose&#45;&gt;mix</title>
<path fill="none" stroke="#888888" d="M101,-267.09C101,-251.12 101,-226.96 101,-208.3"/>
<polygon fill="#888888" stroke="#888888" points="104.5,-208.05 101,-198.05 97.5,-208.05 104.5,-208.05"/>
</g>
<!-- press -->
<g id="node11" class="node">
<title>press</title>
<polygon fill="#7b1fa2" stroke="black" points="138,-125 64,-125 64,-89 138,-89 138,-125"/>
<text text-anchor="middle" x="101" y="-110.2" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">hot press</text>
<text text-anchor="middle" x="101" y="-98.2" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">150&#45;240°C</text>
</g>
<!-- mix&#45;&gt;press -->
<g id="edge11" class="edge">
<title>mix&#45;&gt;press</title>
<path fill="none" stroke="#888888" d="M101,-161.81C101,-153.79 101,-144.05 101,-135.07"/>
<polygon fill="#888888" stroke="#888888" points="104.5,-135.03 101,-125.03 97.5,-135.03 104.5,-135.03"/>
</g>
<!-- plastic -->
<g id="node12" class="node">
<title>plastic</title>
<polygon fill="#8e24aa" stroke="black" points="153,-52 49,-52 49,-16 153,-16 153,-52"/>
<text text-anchor="middle" x="101" y="-37.2" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">~400 kg</text>
<text text-anchor="middle" x="101" y="-25.2" font-family="Helvetica,sans-Serif" font-size="11.00" fill="white">hemp bioplastic</text>
</g>
<!-- press&#45;&gt;plastic -->
<g id="edge12" class="edge">
<title>press&#45;&gt;plastic</title>
<path fill="none" stroke="#888888" d="M101,-88.81C101,-80.79 101,-71.05 101,-62.07"/>
<polygon fill="#888888" stroke="#888888" points="104.5,-62.03 101,-52.03 97.5,-62.03 104.5,-62.03"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 13 KiB

View file

@ -1,365 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>hemp bioplastic &#8212; unturf.</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="theme-color" content="#5871ad">
<meta charset="utf-8">
<link rel="stylesheet" href="/css/chunkfive/stylesheet.css" type="text/css" charset="utf-8" />
<link rel="stylesheet" href="/css/pico.classless.min.css">
<link rel="stylesheet" href="/css/unturf.css">
</head>
<body>
<main class="content-wide">
<center><a href="/"><h1 class="site-title">unturf.</h1></a></center>
<center><h3>grow food not lawn</h3></center>
<center class="nav-links"><small><a href="/let-us-define-a-permacomputer/">manifesto</a> · <a href="/eight-forms-of-capital/">eight forms of capital</a> · <a href="/single-use-plastics/">single-use plastics</a> · <a href="/hemp-bioplastic/" aria-current="page">hemp bioplastic</a> · <a href="/hemp-bioplastic/process/">recipe</a> · <a href="/software/">free software</a></small></center>
<h2>Hemp Bioplastic</h2>
<p>
<span class="unturf-brand">unturf.</span> <a href="/single-use-plastics/">rejects single-use petroleum plastic</a>. So what fills that void? Hemp bioplastic offers one partial answer. Emphasis on partial. This page presents honest numbers — what hemp bioplastic can do, what it cannot, how much land it takes, & what a community would need to make it work.
</p>
<div class="honest-box">
<b>No smoke.</b> Hemp bioplastic will not replace all petroleum plastic. It replaces a narrow slice — packaging, disposables, single-use containers. Engineering plastics, medical devices, electronics, pipes, & wire insulation still require other solutions. Anyone who tells you otherwise sells something.
</div>
<!-- ============================================================ -->
<!-- THE CYCLE -->
<!-- ============================================================ -->
<span class="step-label">STEP 1</span>
<h3>A Cycle That Closes</h3>
<p>
Petroleum plastic breaks a cycle. Hemp bioplastic closes one. Sun grows hemp. Hemp yields cellulose. Cellulose gets pressed into bioplastic. Bioplastic serves its purpose. Discarded bioplastic composts in 3-6 months.<sup id="ref4"><a href="#fn4">[4]</a></sup> Compost feeds soil. Soil grows hemp. Every output becomes an input.
</p>
<figure class="diagram">
<img src="img/harmony-cycle.svg" alt="Hemp bioplastic lifecycle: sun to hemp to cellulose to plastic to compost to soil to hemp again">
<figcaption>hemp bioplastic closes a cycle. petroleum plastic breaks it.</figcaption>
</figure>
<p>
This cycle passes a <a href="/single-use-plastics/">harmony test</a>. Appropriate inputs for all outputs. But growing a plant & pressing it into plastic requires real work, real chemistry, & real land. How much?
</p>
<!-- ============================================================ -->
<!-- STALK TO PLASTIC -->
<!-- ============================================================ -->
<span class="step-label">STEP 2</span>
<h3>Stalk to Plastic</h3>
<p>
Hemp grows in 120 days. One acre yields roughly 4 tons of dry stalk<sup id="ref1"><a href="#fn1">[1]</a></sup> (conservative — research plots hit 8-12 tons, but plan for 4). That stalk contains two parts: bast fiber (outer bark, 30% of stalk, 77% cellulose) & hurd (inner woody core, 70% of stalk, 44% cellulose).<sup id="ref2"><a href="#fn2">[2]</a></sup> Both contain cellulose. Getting it out requires chemistry.
</p>
<figure class="diagram">
<img src="img/stalk-to-plastic.svg" alt="Process flow from hemp seed to bioplastic: grow, strip, extract, form">
<figcaption>4 tons of stalk yields roughly 400 kg of bioplastic. 60% lost in processing.</figcaption>
</figure>
<p>
Stalks get decorticated (separated into bast & hurd). Fiber soaks in sodium hydroxide (NaOH / lye) at 80-90°C for 2-5 hours to dissolve lignin.<sup id="ref12"><a href="#fn12">[12]</a></sup> Acid wash removes hemicellulose. Bleach & filtration leave clean cellulose. Mix with glycerol as plasticizer (15% by weight). Hot press at 150-240°C into molds.
</p>
<p>
From 4,000 kg of dry stalk, expect roughly 1,680 kg of extractable cellulose,<sup id="ref3"><a href="#fn3">[3]</a></sup> yielding approximately 1,200 kg of finished bioplastic. Roughly 30% conversion efficiency from stalk to product. Rest goes to waste liquor, lignin (compostable), & hurd byproducts (animal bedding, hempcrete, garden mulch).
</p>
<div class="honest-box">
<b>Chemical reality.</b> This process requires NaOH (lye), hydrochloric acid, bleaching agents, & heat. Not dangerous at small scale with proper safety gear, but not a kitchen project either. A workshop with ventilation, chemical-resistant containers, & safety training stays necessary. Waste alkaline liquor must get neutralized before disposal.
</div>
<!-- ============================================================ -->
<!-- WHAT IT REPLACES -->
<!-- ============================================================ -->
<span class="step-label">STEP 3</span>
<h3>What It Can & Cannot Replace</h3>
<p>
Hemp bioplastic works for low-performance, short-lifespan applications. Packaging. Containers. Disposable items. It does not work for anything requiring long-term durability, transparency, high-temperature resistance, or precision engineering.
</p>
<figure class="diagram">
<img src="img/can-vs-cannot.svg" alt="What hemp bioplastic can replace versus what it cannot">
<figcaption>~20-30% of household disposable plastic. not engineering or medical plastics.</figcaption>
</figure>
<p>
Pure cellulose bioplastic stays brittle & water-sensitive. It biodegrades in 3-6 months<sup id="ref4b"><a href="#fn4">[4]</a></sup> — a feature for disposables, a fatal flaw for anything meant to last. Most commercial "hemp plastic" products actually blend hemp fiber (30-50%) with corn-based PLA or even petroleum polypropylene. A 100% hemp-derived polymer exists at laboratory scale but has not reached commercial viability.<sup id="ref5"><a href="#fn5">[5]</a></sup>
</p>
<!-- ============================================================ -->
<!-- THE MINIMUM QUESTION -->
<!-- ============================================================ -->
<span class="step-label">STEP 4</span>
<h3>Minimum Bioplastic to Fill a Void</h3>
<p>
An average American household consumes roughly 200 kg of plastic per year.<sup id="ref6"><a href="#fn6">[6]</a></sup> That number includes everything — durable goods, synthetic textiles, electronics, plumbing, & packaging. Hemp bioplastic cannot replace most of that. So how much can it actually replace?
</p>
<p>
Packaging & disposable containers account for roughly 100-115 kg per household per year.<sup id="ref7"><a href="#fn7">[7]</a></sup> Of that, hemp bioplastic could realistically substitute for items where brittleness & moisture sensitivity stay acceptable — food trays, plant pots, dry-goods containers, bags, disposable cutlery. That narrows to roughly <b>30-50 kg per household per year</b>.
</p>
<p>
The rest of a petroleum-free household pivots to other materials that already exist: glass jars, steel containers, wooden utensils, cotton & hemp cloth bags, beeswax wraps, paper packaging, bamboo products. Hemp bioplastic fills one gap among many. It does not fill every gap alone.
</p>
<table>
<thead>
<tr><th>Category</th><th>kg/yr per household</th><th>Replacement</th></tr>
</thead>
<tbody>
<tr><td>Food packaging trays</td><td>~15</td><td>hemp bioplastic</td></tr>
<tr><td>Disposable cutlery & plates</td><td>~5</td><td>hemp bioplastic or bamboo</td></tr>
<tr><td>Shopping & produce bags</td><td>~5</td><td>hemp bioplastic or cloth</td></tr>
<tr><td>Plant pots & garden</td><td>~5</td><td>hemp bioplastic</td></tr>
<tr><td>Bottles & jars</td><td>~25</td><td>glass & steel</td></tr>
<tr><td>Cling wrap & barrier films</td><td>~10</td><td>beeswax wrap & paper</td></tr>
<tr><td>Cleaning product bottles</td><td>~10</td><td>glass, refill stations</td></tr>
<tr><td>Synthetic textiles</td><td>~25</td><td>cotton, hemp, wool</td></tr>
<tr><td>Durable goods & electronics</td><td>~80</td><td>no direct substitute yet</td></tr>
<tr><td>Plumbing & infrastructure</td><td>~20</td><td>copper, steel, clay</td></tr>
</tbody>
</table>
<p>
<b>Minimum hemp bioplastic per household: ~30 kg/year.</b> That represents the fraction where hemp bioplastic serves as the best available substitute. For a household of 2.5 people, that works out to 12 kg per person per year.
</p>
<!-- ============================================================ -->
<!-- ACRE YIELDS -->
<!-- ============================================================ -->
<span class="step-label">STEP 5</span>
<h3>Land: 1/3 Acre, 1 Acre, 3 Acres</h3>
<p>
Conservative baseline: 4 tons of dry stalk per acre, 30% conversion to bioplastic = 1,200 kg bioplastic per acre.
</p>
<figure class="diagram">
<img src="img/acre-yields.svg" alt="Bioplastic yield from 1/3 acre, 1 acre, and 3 acres of hemp">
<figcaption>conservative estimates. optimized growing could double these numbers.</figcaption>
</figure>
<table>
<thead>
<tr><th>Land</th><th>Dry Stalk</th><th>Bioplastic</th><th>Serves (packaging)</th><th>Serves (all replaceable)</th></tr>
</thead>
<tbody>
<tr><td>1/3 acre</td><td>~1,333 kg</td><td>~400 kg</td><td>~33 people</td><td>~2 households</td></tr>
<tr><td>1 acre</td><td>~4,000 kg</td><td>~1,200 kg</td><td>~100 people</td><td>~6 households</td></tr>
<tr><td>3 acres</td><td>~12,000 kg</td><td>~3,600 kg</td><td>~300 people</td><td>~18 households</td></tr>
</tbody>
</table>
<p>
A single acre of hemp, processed through a community facility, could provide packaging-replacement bioplastic for 100 people. Three acres covers a small village. For context, hemp requires no pesticides, improves soil quality, & grows in 120 days — making it compatible with crop rotation. Plant hemp, harvest, plant winter rye, harvest, plant hemp again.
</p>
<!-- ============================================================ -->
<!-- COMMUNITY SCALE -->
<!-- ============================================================ -->
<span class="step-label">STEP 6</span>
<h3>Household, Village, Town</h3>
<p>
How much hemp land does a community need to refuse petroleum-based disposable plastic entirely?
</p>
<figure class="diagram">
<img src="img/community-scale.svg" alt="Hemp land needed for a household, village, and town">
<figcaption>these numbers cover disposable plastic packaging only. ~20-30% of total plastic consumption.</figcaption>
</figure>
<table>
<thead>
<tr><th>Scale</th><th>People</th><th>Replaceable Plastic</th><th>Hemp Land Needed</th><th>Infrastructure</th></tr>
</thead>
<tbody>
<tr><td>Household</td><td>2.5</td><td>~30 kg/yr</td><td>~1,000 sq ft garden</td><td>workshop tools</td></tr>
<tr><td>Village</td><td>100</td><td>~1,200 kg/yr</td><td>~1 acre</td><td>shared decorticator & press ($42k)</td></tr>
<tr><td>Small town</td><td>1,000</td><td>~12,000 kg/yr</td><td>~10 acres</td><td>cooperative facility ($420k)</td></tr>
<tr><td>Town</td><td>10,000</td><td>~120,000 kg/yr</td><td>~100 acres</td><td>industrial facility ($4.20M)</td></tr>
</tbody>
</table>
<p>
A household could grow enough hemp in a large backyard garden plot (~1,000 sq ft) to cover its own replaceable plastic needs. But processing at household scale stays extremely labor-intensive — measured in grams per hour with basic tools. A community model changes everything.
</p>
<!-- ============================================================ -->
<!-- COOPERATIVE MODEL -->
<!-- ============================================================ -->
<span class="step-label">STEP 7</span>
<h3>A Cooperative Model</h3>
<p>
No single household can justify a $6,900 decorticator or a chemical extraction setup. But 10-20 households splitting costs, pooling harvests, & sharing equipment? That math works. Models already exist.
</p>
<figure class="diagram">
<img src="img/cooperative-model.svg" alt="Community cooperative model: growers, collection, shared processing, distribution">
<figcaption>growers pool harvest, shared facility processes, members get bioplastic at cost.</figcaption>
</figure>
<p>
<b>Heartland Hemp Cooperative</b> (Indiana/Ohio/Kentucky) — farmer-owned co-op, $500/share, pooling resources to purchase a shared decorticator. 20-40 member-farmers within 150-mile radius.<sup id="ref9"><a href="#fn9">[9]</a></sup>
</p>
<p>
<b>Western Fiber</b> (California) — converted a cooperative cotton gin to process hemp in off-season. Existing infrastructure, shared costs. Achieved ~8 tons/acre from irrigated fields.<sup id="ref10"><a href="#fn10">[10]</a></sup>
</p>
<p>
<b>Winona's Hemp</b> (White Earth, Minnesota) — Indigenous-led initiative building decortication on tribal land across northern plains. Partners with tribes across multiple reservations.<sup id="ref11"><a href="#fn11">[11]</a></sup>
</p>
<div class="honest-box">
<b>Infrastructure gap.</b> Most cooperatives focus on fiber & textiles, not bioplastic. No end-to-end community-scale hemp-to-bioplastic facility operates in North America yet. A co-op that grows hemp & decorticate fiber exists. A co-op that also extracts cellulose & presses bioplastic does not exist yet. That second step remains the gap. Someone builds it or nobody has it.
</div>
<!-- ============================================================ -->
<!-- COST REALITY -->
<!-- ============================================================ -->
<span class="step-label">STEP 8</span>
<h3>Cost Reality</h3>
<p>
Hemp bioplastic costs 2-3x more than petroleum plastic today.<sup id="ref8"><a href="#fn8">[8]</a></sup> No subsidies, no infrastructure, no scale.
</p>
<figure class="diagram">
<img src="img/cost-reality.svg" alt="Cost comparison: petroleum plastic vs hemp bioplastic per kg">
<figcaption>hemp bioplastic pellets: ~$5.18/kg. polypropylene: ~$2.20-2.53/kg.</figcaption>
</figure>
<p>
Corn-based PLA (another bioplastic) costs $2-3/kg & fell 50% in price since 2007 as infrastructure scaled.<sup id="ref13"><a href="#fn13">[13]</a></sup> Hemp bioplastic could follow that trajectory. But today it sits at $5/kg — roughly double PLA & triple petroleum plastic. At community cooperative scale, labor costs drop. At household scale, labor costs dominate & make each kg more expensive in time than in dollars.
</p>
<p>
Cost comparison matters less when you stop buying petroleum plastic entirely. If a community grows hemp, processes it cooperatively, & distributes bioplastic to members at cost, the dollar comparison with petroleum plastic becomes irrelevant. You pay in labor, land, & shared equipment — not in dollars to petroleum companies.
</p>
<!-- ============================================================ -->
<!-- WHAT A HOUSEHOLD ACTUALLY DOES -->
<!-- ============================================================ -->
<span class="step-label">STEP 9</span>
<h3>What a Household Actually Does</h3>
<p>
Refuse petroleum plastic. Do not replace it 1:1 with bioplastic. Reduce first. Most plastic in a household exists because someone chose convenience over durability. Reverse that.
</p>
<p>
<b>Step 1: Eliminate.</b> Glass jars for storage. Steel water bottles. Cotton bags. Beeswax wraps instead of cling film. Wooden cutting boards. Bar soap instead of bottled. Refill stations for cleaning products. This removes 60-70% of household plastic without growing a single hemp plant.
</p>
<p>
<b>Step 2: Grow.</b> Plant a 1,000 sq ft hemp plot. Harvest in 120 days. Dry stalks. This part stays easy — hemp grows almost anywhere with minimal inputs.
</p>
<p>
<b>Step 3: Process cooperatively.</b> Bring dried stalks to a community processing day or a shared facility. Decorticate. Extract cellulose. Press into molds for the items that still need replacing — seed trays, food containers, disposable serving ware for events.
</p>
<p>
<b>Step 4: Compost.</b> When a hemp bioplastic container reaches end of life, compost it. 3-6 months back to soil. Soil grows next year's hemp. Cycle closes.
</p>
<p>
Minimum bioplastic needed per household after eliminating everything else: <b>~30 kg/year</b>. Roughly one large backyard garden's worth of hemp.
</p>
<!-- ============================================================ -->
<!-- THE HONEST SUMMARY -->
<!-- ============================================================ -->
<hr>
<h3>Honest Summary</h3>
<p>
Hemp bioplastic works for disposable packaging & containers. It does not work for pipes, electronics, medical devices, transparent bottles, wire insulation, or anything requiring long-term durability. It replaces roughly 20-30% of household disposable plastic.
</p>
<p>
One acre of hemp yields roughly 1,200 kg of bioplastic — enough to cover disposable packaging for 100 people. A community cooperative with 10-20 members, ~$42,000 in shared equipment, & a few acres of hemp could produce meaningful quantities.
</p>
<p>
The infrastructure does not exist yet. Cooperatives that grow & decorticate hemp exist. Cooperatives that also extract cellulose & press bioplastic do not. That gap represents both a problem & an opportunity.
</p>
<p>
Hemp bioplastic stays one tool among many. Glass, steel, wood, cotton, bamboo, beeswax, & paper fill other gaps. Refusing petroleum plastic requires all of these — not one silver bullet.
</p>
<p>
Grow food not lawn. Grow hemp not petroleum. Grow what cycles.
</p>
<hr>
<h3>Sources</h3>
<div class="footnotes">
<ol>
<li id="fn1">SARE Project <a href="https://projects.sare.org/project-reports/one22-410/" target="_blank">ONE22-410</a>, University of Vermont fiber variety trials: 4.9-12.1 tons dry matter/acre. <a href="https://hemp.ucdavis.edu/" target="_blank">UC Davis</a> field trials: 1.2-3.4 tons/acre. <a href="https://www.biomassconnect.org/technical-articles/hemp-as-a-biomass-crop/" target="_blank">Biomass Connect</a>: 12-15 tonnes/hectare in Europe. Conservative U.S. baseline of 3-5 tons/acre from Portland State University review (2022) &amp; <a href="http://www.hempfarm.org/Papers/Market_Analysis_for_Hemp.html" target="_blank">University of Wisconsin market analysis</a>. <a href="#ref1">&#8617;</a></li>
<li id="fn2">Bast fiber: 70-77% cellulose. Hurd: 40-48% cellulose. Whole stem: 47-55%. <a href="https://pmc.ncbi.nlm.nih.gov/articles/PMC8819531/" target="_blank">PMC 8819531</a>, "Hemp as a potential raw material toward a sustainable world." <a href="#ref2">&#8617;</a></li>
<li id="fn3">Liao (2022), <a href="https://escholarship.mcgill.ca/downloads/cz30pz65p.pdf" target="_blank">McGill University thesis</a>: 49.6% yield from bast, 23.9% from hurd. ITJFS (2024): 38.4% from whole hemp. <a href="https://pmc.ncbi.nlm.nih.gov/articles/PMC12073554/" target="_blank">PMC 12073554</a> (2025): 47% after sequential NaOH &amp; HCl treatments. <a href="#ref3">&#8617;</a></li>
<li id="fn4">Cellulose-based bioplastics decompose in 3-6 months under composting conditions. European Bioplastics certification standards (EN 13432). <a href="#ref4">&#8617;</a></li>
<li id="fn5">Lampoon Magazine / Western University: "100% hemp-derived polymer has been successfully developed at laboratory level but has yet to become commercially viable." <a href="#ref5">&#8617;</a></li>
<li id="fn6">U.S. EPA, <a href="https://www.epa.gov/facts-and-figures-about-materials-waste-and-recycling" target="_blank"><i>Advancing Sustainable Materials Management</i></a>: 35.7 million tons plastic in MSW (2018). <a href="https://www.oecd.org/en/publications/global-plastics-outlook_de747aef-en.html" target="_blank">OECD</a>: 221 kg/capita/year (2019). Law et al.: 130 kg/capita/year (2016). <a href="#ref6">&#8617;</a></li>
<li id="fn7">EPA packaging fraction: 14.5 million tons nationally (~113 kg/household/year). <a href="https://www.epa.gov/facts-and-figures-about-materials-waste-and-recycling" target="_blank">EPA Facts &amp; Figures</a>, 2018 data. <a href="#ref7">&#8617;</a></li>
<li id="fn8"><a href="https://cannatechtoday.com/" target="_blank">CannaTech Today</a> (2018): ~$2.35/lb ($5.18/kg) for hemp plastic pellets vs. $1.00-1.15/lb for polypropylene. <a href="https://www.plasticsengineering.org/" target="_blank">Plastics Engineering</a> (2025): bioplastics general range $2.50-15.00/kg. <a href="#ref8">&#8617;</a></li>
<li id="fn9">Heartland Hemp Cooperative. <a href="https://www.farmprogress.com/hemp/hemp-fiber-co-op-opens-for-business" target="_blank">Farm Progress</a> (Dec 2020), <a href="https://www.cannabisbusinesstimes.com/" target="_blank">Cannabis Business Times</a> (Nov 2020). Farmer-owned co-op, $500/share, 20-40 member-farmers within 150-mile radius of Louisville, KY. <a href="#ref9">&#8617;</a></li>
<li id="fn10">Western Fiber, Riverdale, California. Converted cooperative cotton gin to process hemp. NCAT/ATTRA video documentation (2021). ~8 tons/acre from irrigated San Joaquin Valley fields. <a href="#ref10">&#8617;</a></li>
<li id="fn11">Winona's Hemp / Anishinaabe Agriculture Institute, White Earth, Minnesota. <a href="https://www.oneearth.org/projects/restoring-a-hemp-fiber-economy/" target="_blank">One Earth</a> (2022). Indigenous-led decortication facility across northern plains tribal land. <a href="#ref11">&#8617;</a></li>
<li id="fn12"><a href="https://pmc.ncbi.nlm.nih.gov/articles/PMC7356019/" target="_blank">PMC 7356019</a>, <a href="https://pmc.ncbi.nlm.nih.gov/articles/PMC7362229/" target="_blank">PMC 7362229</a>: 2-17.5% NaOH solutions, 50-90°C, 2-5 hours. Above 10% concentration risks fiber damage. <a href="#ref12">&#8617;</a></li>
<li id="fn13">European Bioplastics: PLA at $2-3/kg, PHA at $4-9/kg. PLA price fell ~50% since 2007 (9% annual decrease) as production infrastructure scaled. <a href="#ref13">&#8617;</a></li>
</ol>
</div>
<hr>
<p><a href="/single-use-plastics/">&#8592; single-use plastics</a> · <a href="/let-us-define-a-permacomputer/">manifesto</a></p>
</main>
<footer>
<center><a href="/software/" class="unturf-brand">unturf. software</a></center>
<center>Russell Ballestrini | <span class="unturf-brand">unturf.</span> &copy; 2025</center>
</footer>
<script src="/js/diagram-zoom.js"></script>
<script src="https://uncloseai.com/uncloseai.js" type="module"></script>
</body>
</html>

View file

@ -1,60 +0,0 @@
digraph distributed_hub {
bgcolor="#1a1a2e"
rankdir=TB
node [fontname="Helvetica" fontsize=10 style=filled shape=box]
edge [color="#888888" fontname="Helvetica" fontsize=9 fontcolor="#aaaaaa"]
label=<<B><FONT COLOR="#cccccc" POINT-SIZE="14">distributed hub replication model</FONT></B>>
labelloc=t
subgraph cluster_model {
label="LOCAL FIBER, STANDARDIZED PROCESS, LOCAL PRODUCTS" fontcolor="#cccccc" fontsize=11 fontname="Helvetica Bold"
color="#555555" style=dashed
subgraph cluster_local_in {
label="LOCAL INPUTS" fontcolor="#4CAF50" fontsize=10 fontname="Helvetica Bold"
color="#4CAF50" style=dashed
farm1 [label="local hemp farm" fillcolor="#2E7D32" fontcolor="white"]
farm2 [label="nettle foraging\ncommunity land" fillcolor="#388E3C" fontcolor="white"]
farm3 [label="sawmill refuse\nlocal timber" fillcolor="#4E342E" fontcolor="white"]
}
subgraph cluster_standard {
label="STANDARDIZED PROCESSING" fontcolor="#2196F3" fontsize=10 fontname="Helvetica Bold"
color="#2196F3" style=dashed
process [label="7-station factory\nstandard equipment\nstandard recipes\nstandard quality checks" fillcolor="#1565C0" fontcolor="white"]
}
subgraph cluster_local_out {
label="LOCAL PRODUCTS" fontcolor="#FF9800" fontsize=10 fontname="Helvetica Bold"
color="#FF9800" style=dashed
market [label="local farm market\ndirect to consumer" fillcolor="#E65100" fontcolor="white"]
coop [label="food co-ops\nzero waste shops" fillcolor="#F57C00" fontcolor="white"]
school [label="schools &amp; community\neducation programs" fillcolor="#FF9800" fontcolor="white"]
}
}
farm1 -> process
farm2 -> process
farm3 -> process
process -> market
process -> coop
process -> school
subgraph cluster_hubs {
label="HUB NETWORK" fontcolor="#8E24AA" fontsize=11 fontname="Helvetica Bold"
color="#8E24AA" style=dashed
hub1 [label="Hub A\nrural village\nhemp focus" fillcolor="#6A1B9A" fontcolor="white"]
hub2 [label="Hub B\ncoastal town\nnettle focus" fillcolor="#7B1FA2" fontcolor="white"]
hub3 [label="Hub C\nforest region\nwood refuse focus" fillcolor="#8E24AA" fontcolor="white"]
hub4 [label="Hub D\nyour community\n?" fillcolor="#9C27B0" fontcolor="white"]
}
hub1 -> hub2 -> hub3 -> hub4 [style=dashed color="#8E24AA" label="shared\nknowledge"]
replicate [label="each hub adapts\nfiber sources to local ecology\nproducts to local demand\npricing to local economy" fillcolor="#263238" fontcolor="#CDDC39" shape=note fontsize=9]
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 78 KiB

View file

@ -1,192 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.43.0 (0)
-->
<!-- Title: distributed_hub Pages: 1 -->
<svg width="702pt" height="489pt"
viewBox="0.00 0.00 702.00 489.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 485)">
<title>distributed_hub</title>
<polygon fill="#1a1a2e" stroke="transparent" points="-4,4 -4,-485 698,-485 698,4 -4,4"/>
<text text-anchor="start" x="213.5" y="-466.8" font-family="Times,serif" font-weight="bold" font-size="14.00" fill="#cccccc">distributed hub replication model</text>
<g id="clust1" class="cluster">
<title>cluster_model</title>
<polygon fill="#1a1a2e" stroke="#555555" stroke-dasharray="5,2" points="8,-103 8,-450 408,-450 408,-103 8,-103"/>
<text text-anchor="middle" x="208" y="-437.2" font-family="Helvetica Bold" font-size="11.00" fill="#cccccc">LOCAL FIBER, STANDARDIZED PROCESS, LOCAL PRODUCTS</text>
</g>
<g id="clust2" class="cluster">
<title>cluster_local_in</title>
<polygon fill="#1a1a2e" stroke="#4caf50" stroke-dasharray="5,2" points="30,-351 30,-422 364,-422 364,-351 30,-351"/>
<text text-anchor="middle" x="197" y="-410" font-family="Helvetica Bold" font-size="10.00" fill="#4caf50">LOCAL INPUTS</text>
</g>
<g id="clust3" class="cluster">
<title>cluster_standard</title>
<polygon fill="#1a1a2e" stroke="#2196f3" stroke-dasharray="5,2" points="118,-220 118,-307 284,-307 284,-220 118,-220"/>
<text text-anchor="middle" x="201" y="-295" font-family="Helvetica Bold" font-size="10.00" fill="#2196f3">STANDARDIZED PROCESSING</text>
</g>
<g id="clust4" class="cluster">
<title>cluster_local_out</title>
<polygon fill="#1a1a2e" stroke="#ff9800" stroke-dasharray="5,2" points="16,-111 16,-182 400,-182 400,-111 16,-111"/>
<text text-anchor="middle" x="208" y="-170" font-family="Helvetica Bold" font-size="10.00" fill="#ff9800">LOCAL PRODUCTS</text>
</g>
<g id="clust5" class="cluster">
<title>cluster_hubs</title>
<polygon fill="#1a1a2e" stroke="#8e24aa" stroke-dasharray="5,2" points="416,-8 416,-425.5 538,-425.5 538,-8 416,-8"/>
<text text-anchor="middle" x="477" y="-412.7" font-family="Helvetica Bold" font-size="11.00" fill="#8e24aa">HUB NETWORK</text>
</g>
<!-- farm1 -->
<g id="node1" class="node">
<title>farm1</title>
<polygon fill="#2e7d32" stroke="black" points="134.5,-395 37.5,-395 37.5,-359 134.5,-359 134.5,-395"/>
<text text-anchor="middle" x="86" y="-374.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">local hemp farm</text>
</g>
<!-- process -->
<g id="node4" class="node">
<title>process</title>
<polygon fill="#1565c0" stroke="black" points="267.5,-280 134.5,-280 134.5,-228 267.5,-228 267.5,-280"/>
<text text-anchor="middle" x="201" y="-268" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">7&#45;station factory</text>
<text text-anchor="middle" x="201" y="-257" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">standard equipment</text>
<text text-anchor="middle" x="201" y="-246" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">standard recipes</text>
<text text-anchor="middle" x="201" y="-235" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">standard quality checks</text>
</g>
<!-- farm1&#45;&gt;process -->
<g id="edge1" class="edge">
<title>farm1&#45;&gt;process</title>
<path fill="none" stroke="#888888" d="M102.23,-358.92C119.7,-340.54 147.9,-310.87 169.71,-287.92"/>
<polygon fill="#888888" stroke="#888888" points="172.48,-290.09 176.83,-280.43 167.41,-285.26 172.48,-290.09"/>
</g>
<!-- farm2 -->
<g id="node2" class="node">
<title>farm2</title>
<polygon fill="#388e3c" stroke="black" points="249,-395 153,-395 153,-359 249,-359 249,-395"/>
<text text-anchor="middle" x="201" y="-380" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">nettle foraging</text>
<text text-anchor="middle" x="201" y="-369" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">community land</text>
</g>
<!-- farm2&#45;&gt;process -->
<g id="edge2" class="edge">
<title>farm2&#45;&gt;process</title>
<path fill="none" stroke="#888888" d="M201,-358.92C201,-341.26 201,-313.17 201,-290.65"/>
<polygon fill="#888888" stroke="#888888" points="204.5,-290.43 201,-280.43 197.5,-290.43 204.5,-290.43"/>
</g>
<!-- farm3 -->
<g id="node3" class="node">
<title>farm3</title>
<polygon fill="#4e342e" stroke="black" points="356.5,-395 267.5,-395 267.5,-359 356.5,-359 356.5,-395"/>
<text text-anchor="middle" x="312" y="-380" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">sawmill refuse</text>
<text text-anchor="middle" x="312" y="-369" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">local timber</text>
</g>
<!-- farm3&#45;&gt;process -->
<g id="edge3" class="edge">
<title>farm3&#45;&gt;process</title>
<path fill="none" stroke="#888888" d="M296.33,-358.92C279.47,-340.54 252.25,-310.87 231.2,-287.92"/>
<polygon fill="#888888" stroke="#888888" points="233.66,-285.43 224.33,-280.43 228.51,-290.16 233.66,-285.43"/>
</g>
<!-- market -->
<g id="node5" class="node">
<title>market</title>
<polygon fill="#e65100" stroke="black" points="132,-155 24,-155 24,-119 132,-119 132,-155"/>
<text text-anchor="middle" x="78" y="-140" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">local farm market</text>
<text text-anchor="middle" x="78" y="-129" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">direct to consumer</text>
</g>
<!-- process&#45;&gt;market -->
<g id="edge4" class="edge">
<title>process&#45;&gt;market</title>
<path fill="none" stroke="#888888" d="M174.01,-227.76C153.19,-208.3 124.57,-181.54 104,-162.31"/>
<polygon fill="#888888" stroke="#888888" points="106.24,-159.62 96.55,-155.34 101.46,-164.73 106.24,-159.62"/>
</g>
<!-- coop -->
<g id="node6" class="node">
<title>coop</title>
<polygon fill="#f57c00" stroke="black" points="251.5,-155 150.5,-155 150.5,-119 251.5,-119 251.5,-155"/>
<text text-anchor="middle" x="201" y="-140" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">food co&#45;ops</text>
<text text-anchor="middle" x="201" y="-129" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">zero waste shops</text>
</g>
<!-- process&#45;&gt;coop -->
<g id="edge5" class="edge">
<title>process&#45;&gt;coop</title>
<path fill="none" stroke="#888888" d="M201,-227.76C201,-209.33 201,-184.35 201,-165.42"/>
<polygon fill="#888888" stroke="#888888" points="204.5,-165.34 201,-155.34 197.5,-165.34 204.5,-165.34"/>
</g>
<!-- school -->
<g id="node7" class="node">
<title>school</title>
<polygon fill="#ff9800" stroke="black" points="392,-155 270,-155 270,-119 392,-119 392,-155"/>
<text text-anchor="middle" x="331" y="-140" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">schools &amp; community</text>
<text text-anchor="middle" x="331" y="-129" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">education programs</text>
</g>
<!-- process&#45;&gt;school -->
<g id="edge6" class="edge">
<title>process&#45;&gt;school</title>
<path fill="none" stroke="#888888" d="M229.53,-227.76C251.63,-208.21 282.05,-181.31 303.8,-162.06"/>
<polygon fill="#888888" stroke="#888888" points="306.22,-164.59 311.39,-155.34 301.59,-159.35 306.22,-164.59"/>
</g>
<!-- hub1 -->
<g id="node8" class="node">
<title>hub1</title>
<polygon fill="#6a1b9a" stroke="black" points="514.5,-397.5 439.5,-397.5 439.5,-356.5 514.5,-356.5 514.5,-397.5"/>
<text text-anchor="middle" x="477" y="-385.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">Hub A</text>
<text text-anchor="middle" x="477" y="-374.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">rural village</text>
<text text-anchor="middle" x="477" y="-363.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">hemp focus</text>
</g>
<!-- hub2 -->
<g id="node9" class="node">
<title>hub2</title>
<polygon fill="#7b1fa2" stroke="black" points="516.5,-274.5 437.5,-274.5 437.5,-233.5 516.5,-233.5 516.5,-274.5"/>
<text text-anchor="middle" x="477" y="-262.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">Hub B</text>
<text text-anchor="middle" x="477" y="-251.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">coastal town</text>
<text text-anchor="middle" x="477" y="-240.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">nettle focus</text>
</g>
<!-- hub1&#45;&gt;hub2 -->
<g id="edge7" class="edge">
<title>hub1&#45;&gt;hub2</title>
<path fill="none" stroke="#8e24aa" stroke-dasharray="5,2" d="M477,-356.29C477,-336.95 477,-307.21 477,-284.95"/>
<polygon fill="#8e24aa" stroke="#8e24aa" points="480.5,-284.7 477,-274.7 473.5,-284.7 480.5,-284.7"/>
<text text-anchor="middle" x="501.5" y="-327.8" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#aaaaaa">shared</text>
<text text-anchor="middle" x="501.5" y="-317.8" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#aaaaaa">knowledge</text>
</g>
<!-- hub3 -->
<g id="node10" class="node">
<title>hub3</title>
<polygon fill="#8e24aa" stroke="black" points="530,-157.5 424,-157.5 424,-116.5 530,-116.5 530,-157.5"/>
<text text-anchor="middle" x="477" y="-145.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">Hub C</text>
<text text-anchor="middle" x="477" y="-134.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">forest region</text>
<text text-anchor="middle" x="477" y="-123.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">wood refuse focus</text>
</g>
<!-- hub2&#45;&gt;hub3 -->
<g id="edge8" class="edge">
<title>hub2&#45;&gt;hub3</title>
<path fill="none" stroke="#8e24aa" stroke-dasharray="5,2" d="M477,-233.49C477,-215.48 477,-188.48 477,-167.77"/>
<polygon fill="#8e24aa" stroke="#8e24aa" points="480.5,-167.6 477,-157.6 473.5,-167.6 480.5,-167.6"/>
<text text-anchor="middle" x="501.5" y="-202.8" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#aaaaaa">shared</text>
<text text-anchor="middle" x="501.5" y="-192.8" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#aaaaaa">knowledge</text>
</g>
<!-- hub4 -->
<g id="node11" class="node">
<title>hub4</title>
<polygon fill="#9c27b0" stroke="black" points="525.5,-57 428.5,-57 428.5,-16 525.5,-16 525.5,-57"/>
<text text-anchor="middle" x="477" y="-45" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">Hub D</text>
<text text-anchor="middle" x="477" y="-34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">your community</text>
<text text-anchor="middle" x="477" y="-23" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">?</text>
</g>
<!-- hub3&#45;&gt;hub4 -->
<g id="edge9" class="edge">
<title>hub3&#45;&gt;hub4</title>
<path fill="none" stroke="#8e24aa" stroke-dasharray="5,2" d="M477,-116.07C477,-102.09 477,-83.16 477,-67.39"/>
<polygon fill="#8e24aa" stroke="#8e24aa" points="480.5,-67.07 477,-57.07 473.5,-67.07 480.5,-67.07"/>
<text text-anchor="middle" x="501.5" y="-87.8" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#aaaaaa">shared</text>
<text text-anchor="middle" x="501.5" y="-77.8" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#aaaaaa">knowledge</text>
</g>
<!-- replicate -->
<g id="node12" class="node">
<title>replicate</title>
<polygon fill="#263238" stroke="black" points="688,-401 546,-401 546,-353 694,-353 694,-395 688,-401"/>
<polyline fill="none" stroke="black" points="688,-401 688,-395 "/>
<polyline fill="none" stroke="black" points="694,-395 688,-395 "/>
<text text-anchor="middle" x="620" y="-389.8" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cddc39">each hub adapts</text>
<text text-anchor="middle" x="620" y="-379.8" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cddc39">fiber sources to local ecology</text>
<text text-anchor="middle" x="620" y="-369.8" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cddc39">products to local demand</text>
<text text-anchor="middle" x="620" y="-359.8" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cddc39">pricing to local economy</text>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 12 KiB

View file

@ -1,45 +0,0 @@
digraph extraction_station {
bgcolor="#1a1a2e"
rankdir=TB
node [fontname="Helvetica" fontsize=10 style=filled shape=box]
edge [color="#888888" fontname="Helvetica" fontsize=9 fontcolor="#aaaaaa"]
label=<<B><FONT COLOR="#cccccc" POINT-SIZE="14">station 2: extraction (two paths)</FONT></B>>
labelloc=t
fiber_in [label="PREPARED FIBER\nfrom Station 1" fillcolor="#66BB6A" fontcolor="white"]
subgraph cluster_naoh {
label="PATH A: NaOH EXTRACTION" fontcolor="#2196F3" fontsize=11 fontname="Helvetica Bold"
color="#2196F3" style=dashed
naoh_dissolve [label="dissolve NaOH\n5-12% solution" fillcolor="#1565C0" fontcolor="white"]
naoh_soak [label="soak fiber\n80C for 2-3 hours\nor room temp 4 hours" fillcolor="#1976D2" fontcolor="white"]
naoh_filter [label="filter &amp; wash\nuntil pH neutral" fillcolor="#1E88E5" fontcolor="white"]
naoh_dissolve -> naoh_soak -> naoh_filter
}
subgraph cluster_citric {
label="PATH B: CITRIC ACID CROSSLINK" fontcolor="#FF9800" fontsize=11 fontname="Helvetica Bold"
color="#FF9800" style=dashed
citric_paper [label="spread fiber\npress into sheets" fillcolor="#E65100" fontcolor="white"]
citric_soak [label="soak in\ncitric acid + glycerol" fillcolor="#F57C00" fontcolor="white"]
citric_cure [label="cure at 140C\nunder pressure" fillcolor="#FF9800" fontcolor="white"]
citric_paper -> citric_soak -> citric_cure
}
fiber_in -> naoh_dissolve [label="higher purity\nmore waste"]
fiber_in -> citric_paper [label="less waste\nsimpler setup"]
cellulose_out [label="RAW CELLULOSE\nto Station 3" fillcolor="#64B5F6" fontcolor="#1a1a2e" shape=doubleoctagon]
naoh_filter -> cellulose_out
citric_cure -> cellulose_out
waste_a [label="NaOH waste liquor\nneutralize before disposal" fillcolor="#37474F" fontcolor="#aaaaaa" shape=ellipse]
naoh_soak -> waste_a [style=dashed color="#555555"]
note_citric [label="citric acid path\nproduces less waste\n&amp; avoids NaOH hazards" fillcolor="#263238" fontcolor="#CDDC39" shape=note fontsize=9]
rotation [label="continuous operation:\n3-4 reaction vessels\nrotating through stages" fillcolor="#263238" fontcolor="#CDDC39" shape=note fontsize=9]
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 74 KiB

View file

@ -1,167 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.43.0 (0)
-->
<!-- Title: extraction_station Pages: 1 -->
<svg width="632pt" height="427pt"
viewBox="0.00 0.00 631.50 427.35" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 423.35)">
<title>extraction_station</title>
<polygon fill="#1a1a2e" stroke="transparent" points="-4,4 -4,-423.35 627.5,-423.35 627.5,4 -4,4"/>
<text text-anchor="start" x="184.25" y="-405.15" font-family="Times,serif" font-weight="bold" font-size="14.00" fill="#cccccc">station 2: extraction (two paths)</text>
<g id="clust1" class="cluster">
<title>cluster_naoh</title>
<polygon fill="#1a1a2e" stroke="#2196f3" stroke-dasharray="5,2" points="8,-86.14 8,-312.35 177,-312.35 177,-86.14 8,-86.14"/>
<text text-anchor="middle" x="92.5" y="-299.55" font-family="Helvetica Bold" font-size="11.00" fill="#2196f3">PATH A: NaOH EXTRACTION</text>
</g>
<g id="clust2" class="cluster">
<title>cluster_citric</title>
<polygon fill="#1a1a2e" stroke="#ff9800" stroke-dasharray="5,2" points="395,-86.14 395,-312.35 594,-312.35 594,-86.14 395,-86.14"/>
<text text-anchor="middle" x="494.5" y="-299.55" font-family="Helvetica Bold" font-size="11.00" fill="#ff9800">PATH B: CITRIC ACID CROSSLINK</text>
</g>
<!-- fiber_in -->
<g id="node1" class="node">
<title>fiber_in</title>
<polygon fill="#66bb6a" stroke="black" points="339.5,-395.35 240.5,-395.35 240.5,-359.35 339.5,-359.35 339.5,-395.35"/>
<text text-anchor="middle" x="290" y="-380.35" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">PREPARED FIBER</text>
<text text-anchor="middle" x="290" y="-369.35" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">from Station 1</text>
</g>
<!-- naoh_dissolve -->
<g id="node2" class="node">
<title>naoh_dissolve</title>
<polygon fill="#1565c0" stroke="black" points="165,-284.35 75,-284.35 75,-248.35 165,-248.35 165,-284.35"/>
<text text-anchor="middle" x="120" y="-269.35" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">dissolve NaOH</text>
<text text-anchor="middle" x="120" y="-258.35" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">5&#45;12% solution</text>
</g>
<!-- fiber_in&#45;&gt;naoh_dissolve -->
<g id="edge5" class="edge">
<title>fiber_in&#45;&gt;naoh_dissolve</title>
<path fill="none" stroke="#888888" d="M263.44,-359.32C234.33,-340.65 187.5,-310.63 155.32,-289.99"/>
<polygon fill="#888888" stroke="#888888" points="156.96,-286.89 146.66,-284.44 153.19,-292.78 156.96,-286.89"/>
<text text-anchor="middle" x="260" y="-333.15" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#aaaaaa">higher purity</text>
<text text-anchor="middle" x="260" y="-323.15" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#aaaaaa">more waste</text>
</g>
<!-- citric_paper -->
<g id="node5" class="node">
<title>citric_paper</title>
<polygon fill="#e65100" stroke="black" points="507,-284.35 407,-284.35 407,-248.35 507,-248.35 507,-284.35"/>
<text text-anchor="middle" x="457" y="-269.35" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">spread fiber</text>
<text text-anchor="middle" x="457" y="-258.35" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">press into sheets</text>
</g>
<!-- fiber_in&#45;&gt;citric_paper -->
<g id="edge6" class="edge">
<title>fiber_in&#45;&gt;citric_paper</title>
<path fill="none" stroke="#888888" d="M316.09,-359.32C344.69,-340.65 390.69,-310.63 422.3,-289.99"/>
<polygon fill="#888888" stroke="#888888" points="424.35,-292.84 430.81,-284.44 420.53,-286.97 424.35,-292.84"/>
<text text-anchor="middle" x="404" y="-333.15" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#aaaaaa">less waste</text>
<text text-anchor="middle" x="404" y="-323.15" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#aaaaaa">simpler setup</text>
</g>
<!-- naoh_soak -->
<g id="node3" class="node">
<title>naoh_soak</title>
<polygon fill="#1976d2" stroke="black" points="169,-211.35 47,-211.35 47,-170.35 169,-170.35 169,-211.35"/>
<text text-anchor="middle" x="108" y="-199.35" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">soak fiber</text>
<text text-anchor="middle" x="108" y="-188.35" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">80C for 2&#45;3 hours</text>
<text text-anchor="middle" x="108" y="-177.35" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">or room temp 4 hours</text>
</g>
<!-- naoh_dissolve&#45;&gt;naoh_soak -->
<g id="edge1" class="edge">
<title>naoh_dissolve&#45;&gt;naoh_soak</title>
<path fill="none" stroke="#888888" d="M117.22,-248.3C115.91,-240.29 114.31,-230.51 112.82,-221.35"/>
<polygon fill="#888888" stroke="#888888" points="116.26,-220.71 111.19,-211.4 109.35,-221.83 116.26,-220.71"/>
</g>
<!-- naoh_filter -->
<g id="node4" class="node">
<title>naoh_filter</title>
<polygon fill="#1e88e5" stroke="black" points="163,-130.14 71,-130.14 71,-94.14 163,-94.14 163,-130.14"/>
<text text-anchor="middle" x="117" y="-115.14" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">filter &amp; wash</text>
<text text-anchor="middle" x="117" y="-104.14" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">until pH neutral</text>
</g>
<!-- naoh_soak&#45;&gt;naoh_filter -->
<g id="edge2" class="edge">
<title>naoh_soak&#45;&gt;naoh_filter</title>
<path fill="none" stroke="#888888" d="M110.32,-170.09C111.38,-161.03 112.66,-150.14 113.81,-140.32"/>
<polygon fill="#888888" stroke="#888888" points="117.31,-140.56 115,-130.22 110.35,-139.74 117.31,-140.56"/>
</g>
<!-- waste_a -->
<g id="node9" class="node">
<title>waste_a</title>
<ellipse fill="#37474f" stroke="black" cx="286" cy="-112.14" rx="101.23" ry="21.43"/>
<text text-anchor="middle" x="286" y="-115.14" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#aaaaaa">NaOH waste liquor</text>
<text text-anchor="middle" x="286" y="-104.14" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#aaaaaa">neutralize before disposal</text>
</g>
<!-- naoh_soak&#45;&gt;waste_a -->
<g id="edge9" class="edge">
<title>naoh_soak&#45;&gt;waste_a</title>
<path fill="none" stroke="#555555" stroke-dasharray="5,2" d="M153.38,-170.29C178.05,-159.66 208.68,-146.46 234.28,-135.43"/>
<polygon fill="#555555" stroke="#555555" points="235.66,-138.64 243.46,-131.47 232.89,-132.21 235.66,-138.64"/>
</g>
<!-- cellulose_out -->
<g id="node8" class="node">
<title>cellulose_out</title>
<polygon fill="#64b5f6" stroke="black" points="365.01,-17.46 365.01,-36.46 321.07,-49.89 258.93,-49.89 214.99,-36.46 214.99,-17.46 258.93,-4.03 321.07,-4.03 365.01,-17.46"/>
<polygon fill="none" stroke="black" points="369.01,-14.51 369.01,-39.41 321.67,-53.88 258.33,-53.88 210.99,-39.41 210.99,-14.51 258.33,-0.04 321.67,-0.04 369.01,-14.51"/>
<text text-anchor="middle" x="290" y="-29.96" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#1a1a2e">RAW CELLULOSE</text>
<text text-anchor="middle" x="290" y="-18.96" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#1a1a2e">to Station 3</text>
</g>
<!-- naoh_filter&#45;&gt;cellulose_out -->
<g id="edge7" class="edge">
<title>naoh_filter&#45;&gt;cellulose_out</title>
<path fill="none" stroke="#888888" d="M152.43,-94.1C176.21,-82.67 208.03,-67.37 235.07,-54.37"/>
<polygon fill="#888888" stroke="#888888" points="236.92,-57.36 244.42,-49.88 233.89,-51.05 236.92,-57.36"/>
</g>
<!-- citric_soak -->
<g id="node6" class="node">
<title>citric_soak</title>
<polygon fill="#f57c00" stroke="black" points="520.5,-208.85 403.5,-208.85 403.5,-172.85 520.5,-172.85 520.5,-208.85"/>
<text text-anchor="middle" x="462" y="-193.85" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">soak in</text>
<text text-anchor="middle" x="462" y="-182.85" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">citric acid + glycerol</text>
</g>
<!-- citric_paper&#45;&gt;citric_soak -->
<g id="edge3" class="edge">
<title>citric_paper&#45;&gt;citric_soak</title>
<path fill="none" stroke="#888888" d="M458.16,-248.3C458.75,-239.64 459.48,-228.91 460.14,-219.14"/>
<polygon fill="#888888" stroke="#888888" points="463.64,-219.27 460.83,-209.06 456.66,-218.8 463.64,-219.27"/>
</g>
<!-- citric_cure -->
<g id="node7" class="node">
<title>citric_cure</title>
<polygon fill="#ff9800" stroke="black" points="500.5,-130.14 411.5,-130.14 411.5,-94.14 500.5,-94.14 500.5,-130.14"/>
<text text-anchor="middle" x="456" y="-115.14" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">cure at 140C</text>
<text text-anchor="middle" x="456" y="-104.14" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">under pressure</text>
</g>
<!-- citric_soak&#45;&gt;citric_cure -->
<g id="edge4" class="edge">
<title>citric_soak&#45;&gt;citric_cure</title>
<path fill="none" stroke="#888888" d="M460.67,-172.82C459.93,-163.35 458.99,-151.34 458.15,-140.58"/>
<polygon fill="#888888" stroke="#888888" points="461.62,-140.07 457.35,-130.38 454.64,-140.62 461.62,-140.07"/>
</g>
<!-- citric_cure&#45;&gt;cellulose_out -->
<g id="edge8" class="edge">
<title>citric_cure&#45;&gt;cellulose_out</title>
<path fill="none" stroke="#888888" d="M422.01,-94.1C399.45,-82.8 369.37,-67.73 343.62,-54.83"/>
<polygon fill="#888888" stroke="#888888" points="344.86,-51.54 334.35,-50.18 341.73,-57.79 344.86,-51.54"/>
</g>
<!-- note_citric -->
<g id="node10" class="node">
<title>note_citric</title>
<polygon fill="#263238" stroke="black" points="474,-396.35 358,-396.35 358,-358.35 480,-358.35 480,-390.35 474,-396.35"/>
<polyline fill="none" stroke="black" points="474,-396.35 474,-390.35 "/>
<polyline fill="none" stroke="black" points="480,-390.35 474,-390.35 "/>
<text text-anchor="middle" x="419" y="-385.15" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cddc39">citric acid path</text>
<text text-anchor="middle" x="419" y="-375.15" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cddc39">produces less waste</text>
<text text-anchor="middle" x="419" y="-365.15" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cddc39">&amp; avoids NaOH hazards</text>
</g>
<!-- rotation -->
<g id="node11" class="node">
<title>rotation</title>
<polygon fill="#263238" stroke="black" points="617.5,-396.35 498.5,-396.35 498.5,-358.35 623.5,-358.35 623.5,-390.35 617.5,-396.35"/>
<polyline fill="none" stroke="black" points="617.5,-396.35 617.5,-390.35 "/>
<polyline fill="none" stroke="black" points="623.5,-390.35 617.5,-390.35 "/>
<text text-anchor="middle" x="561" y="-385.15" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cddc39">continuous operation:</text>
<text text-anchor="middle" x="561" y="-375.15" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cddc39">3&#45;4 reaction vessels</text>
<text text-anchor="middle" x="561" y="-365.15" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cddc39">rotating through stages</text>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 11 KiB

View file

@ -1,33 +0,0 @@
digraph factory_flow {
bgcolor="#1a1a2e"
rankdir=TB
node [fontname="Helvetica" fontsize=10 style=filled shape=box]
edge [color="#888888" fontname="Helvetica" fontsize=9 fontcolor="#aaaaaa"]
label=<<B><FONT COLOR="#cccccc" POINT-SIZE="14">continuous-flow bioplastic factory: 7 stations</FONT></B>>
labelloc=t
s1 [label="STATION 1\nFiber Intake &amp; Prep\nhemp, nettle, wood refuse" fillcolor="#2E7D32" fontcolor="white"]
s2 [label="STATION 2\nExtraction\nNaOH or citric acid" fillcolor="#1565C0" fontcolor="white"]
s3 [label="STATION 3\nWashing &amp; Drying\ncounter-current wash" fillcolor="#1976D2" fontcolor="white"]
s4 [label="STATION 4\nMixing\ncellulose + glycerol + pigment" fillcolor="#7B1FA2" fontcolor="white"]
s5 [label="STATION 5\nPressing &amp; Molding\nhot press 150-240C" fillcolor="#E65100" fontcolor="white"]
s6 [label="STATION 6\nFinishing\ntrim, inspect, stamp" fillcolor="#FF9800" fontcolor="white"]
s7 [label="COMPOST DEMO\ndisplay only\nhot aerobic 60-70C" fillcolor="#795548" fontcolor="white"]
s1 -> s2 [label="prepared\nfiber"]
s2 -> s3 [label="raw\ncellulose"]
s3 -> s4 [label="dry\ncellulose"]
s4 -> s5 [label="mixed\ncompound"]
s5 -> s6 [label="pressed\nproducts"]
s6 -> s7 [label="demo\nsamples"]
fiber [label="local fiber sources\nhemp, nettle, wood refuse" fillcolor="#263238" fontcolor="#CDDC39" shape=note fontsize=9]
fiber -> s1 [style=dashed color="#66BB6A"]
products [label="durable products\nkitchen, garden, storage\nyears of daily use" fillcolor="#263238" fontcolor="#CDDC39" shape=note fontsize=9]
s6 -> products [style=dashed color="#FFC107"]
compost [label="end of life\nhot aerobic compost only\n60-70C, 12-24 weeks" fillcolor="#263238" fontcolor="#CDDC39" shape=note fontsize=9]
s7 -> compost [style=dashed color="#795548"]
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 61 KiB

View file

@ -1,165 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.43.0 (0)
-->
<!-- Title: factory_flow Pages: 1 -->
<svg width="379pt" height="802pt"
viewBox="0.00 0.00 379.00 802.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 798)">
<title>factory_flow</title>
<polygon fill="#1a1a2e" stroke="transparent" points="-4,4 -4,-798 375,-798 375,4 -4,4"/>
<text text-anchor="start" x="8" y="-779.8" font-family="Times,serif" font-weight="bold" font-size="14.00" fill="#cccccc">continuous&#45;flow bioplastic factory: 7 stations</text>
<!-- s1 -->
<g id="node1" class="node">
<title>s1</title>
<polygon fill="#2e7d32" stroke="black" points="259.25,-698 114.25,-698 114.25,-657 259.25,-657 259.25,-698"/>
<text text-anchor="middle" x="186.75" y="-686" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">STATION 1</text>
<text text-anchor="middle" x="186.75" y="-675" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">Fiber Intake &amp; Prep</text>
<text text-anchor="middle" x="186.75" y="-664" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">hemp, nettle, wood refuse</text>
</g>
<!-- s2 -->
<g id="node2" class="node">
<title>s2</title>
<polygon fill="#1565c0" stroke="black" points="240.75,-601 132.75,-601 132.75,-560 240.75,-560 240.75,-601"/>
<text text-anchor="middle" x="186.75" y="-589" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">STATION 2</text>
<text text-anchor="middle" x="186.75" y="-578" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">Extraction</text>
<text text-anchor="middle" x="186.75" y="-567" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">NaOH or citric acid</text>
</g>
<!-- s1&#45;&gt;s2 -->
<g id="edge1" class="edge">
<title>s1&#45;&gt;s2</title>
<path fill="none" stroke="#888888" d="M186.75,-656.82C186.75,-643.7 186.75,-626.2 186.75,-611.38"/>
<polygon fill="#888888" stroke="#888888" points="190.25,-611.16 186.75,-601.16 183.25,-611.16 190.25,-611.16"/>
<text text-anchor="middle" x="207.75" y="-631.8" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#aaaaaa">prepared</text>
<text text-anchor="middle" x="207.75" y="-621.8" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#aaaaaa">fiber</text>
</g>
<!-- s3 -->
<g id="node3" class="node">
<title>s3</title>
<polygon fill="#1976d2" stroke="black" points="246.75,-504 126.75,-504 126.75,-463 246.75,-463 246.75,-504"/>
<text text-anchor="middle" x="186.75" y="-492" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">STATION 3</text>
<text text-anchor="middle" x="186.75" y="-481" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">Washing &amp; Drying</text>
<text text-anchor="middle" x="186.75" y="-470" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">counter&#45;current wash</text>
</g>
<!-- s2&#45;&gt;s3 -->
<g id="edge2" class="edge">
<title>s2&#45;&gt;s3</title>
<path fill="none" stroke="#888888" d="M186.75,-559.82C186.75,-546.7 186.75,-529.2 186.75,-514.38"/>
<polygon fill="#888888" stroke="#888888" points="190.25,-514.16 186.75,-504.16 183.25,-514.16 190.25,-514.16"/>
<text text-anchor="middle" x="206.25" y="-534.8" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#aaaaaa">raw</text>
<text text-anchor="middle" x="206.25" y="-524.8" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#aaaaaa">cellulose</text>
</g>
<!-- s4 -->
<g id="node4" class="node">
<title>s4</title>
<polygon fill="#7b1fa2" stroke="black" points="270.75,-407 102.75,-407 102.75,-366 270.75,-366 270.75,-407"/>
<text text-anchor="middle" x="186.75" y="-395" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">STATION 4</text>
<text text-anchor="middle" x="186.75" y="-384" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">Mixing</text>
<text text-anchor="middle" x="186.75" y="-373" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">cellulose + glycerol + pigment</text>
</g>
<!-- s3&#45;&gt;s4 -->
<g id="edge3" class="edge">
<title>s3&#45;&gt;s4</title>
<path fill="none" stroke="#888888" d="M186.75,-462.82C186.75,-449.7 186.75,-432.2 186.75,-417.38"/>
<polygon fill="#888888" stroke="#888888" points="190.25,-417.16 186.75,-407.16 183.25,-417.16 190.25,-417.16"/>
<text text-anchor="middle" x="206.25" y="-437.8" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#aaaaaa">dry</text>
<text text-anchor="middle" x="206.25" y="-427.8" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#aaaaaa">cellulose</text>
</g>
<!-- s5 -->
<g id="node5" class="node">
<title>s5</title>
<polygon fill="#e65100" stroke="black" points="242.25,-310 131.25,-310 131.25,-269 242.25,-269 242.25,-310"/>
<text text-anchor="middle" x="186.75" y="-298" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">STATION 5</text>
<text text-anchor="middle" x="186.75" y="-287" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">Pressing &amp; Molding</text>
<text text-anchor="middle" x="186.75" y="-276" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">hot press 150&#45;240C</text>
</g>
<!-- s4&#45;&gt;s5 -->
<g id="edge4" class="edge">
<title>s4&#45;&gt;s5</title>
<path fill="none" stroke="#888888" d="M186.75,-365.82C186.75,-352.7 186.75,-335.2 186.75,-320.38"/>
<polygon fill="#888888" stroke="#888888" points="190.25,-320.16 186.75,-310.16 183.25,-320.16 190.25,-320.16"/>
<text text-anchor="middle" x="211.25" y="-340.8" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#aaaaaa">mixed</text>
<text text-anchor="middle" x="211.25" y="-330.8" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#aaaaaa">compound</text>
</g>
<!-- s6 -->
<g id="node6" class="node">
<title>s6</title>
<polygon fill="#ff9800" stroke="black" points="244.25,-213 129.25,-213 129.25,-172 244.25,-172 244.25,-213"/>
<text text-anchor="middle" x="186.75" y="-201" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">STATION 6</text>
<text text-anchor="middle" x="186.75" y="-190" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">Finishing</text>
<text text-anchor="middle" x="186.75" y="-179" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">trim, inspect, stamp</text>
</g>
<!-- s5&#45;&gt;s6 -->
<g id="edge5" class="edge">
<title>s5&#45;&gt;s6</title>
<path fill="none" stroke="#888888" d="M186.75,-268.82C186.75,-255.7 186.75,-238.2 186.75,-223.38"/>
<polygon fill="#888888" stroke="#888888" points="190.25,-223.16 186.75,-213.16 183.25,-223.16 190.25,-223.16"/>
<text text-anchor="middle" x="207.25" y="-243.8" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#aaaaaa">pressed</text>
<text text-anchor="middle" x="207.25" y="-233.8" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#aaaaaa">products</text>
</g>
<!-- s7 -->
<g id="node7" class="node">
<title>s7</title>
<polygon fill="#795548" stroke="black" points="172.25,-116 63.25,-116 63.25,-75 172.25,-75 172.25,-116"/>
<text text-anchor="middle" x="117.75" y="-104" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">COMPOST DEMO</text>
<text text-anchor="middle" x="117.75" y="-93" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">display only</text>
<text text-anchor="middle" x="117.75" y="-82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">hot aerobic 60&#45;70C</text>
</g>
<!-- s6&#45;&gt;s7 -->
<g id="edge6" class="edge">
<title>s6&#45;&gt;s7</title>
<path fill="none" stroke="#888888" d="M172.45,-171.82C162.55,-158.19 149.23,-139.84 138.21,-124.67"/>
<polygon fill="#888888" stroke="#888888" points="140.74,-122.19 132.03,-116.16 135.07,-126.31 140.74,-122.19"/>
<text text-anchor="middle" x="177.25" y="-146.8" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#aaaaaa">demo</text>
<text text-anchor="middle" x="177.25" y="-136.8" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#aaaaaa">samples</text>
</g>
<!-- products -->
<g id="node9" class="node">
<title>products</title>
<polygon fill="#263238" stroke="black" points="312.75,-114.5 190.75,-114.5 190.75,-76.5 318.75,-76.5 318.75,-108.5 312.75,-114.5"/>
<polyline fill="none" stroke="black" points="312.75,-114.5 312.75,-108.5 "/>
<polyline fill="none" stroke="black" points="318.75,-108.5 312.75,-108.5 "/>
<text text-anchor="middle" x="254.75" y="-103.3" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cddc39">durable products</text>
<text text-anchor="middle" x="254.75" y="-93.3" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cddc39">kitchen, garden, storage</text>
<text text-anchor="middle" x="254.75" y="-83.3" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cddc39">years of daily use</text>
</g>
<!-- s6&#45;&gt;products -->
<g id="edge8" class="edge">
<title>s6&#45;&gt;products</title>
<path fill="none" stroke="#ffc107" stroke-dasharray="5,2" d="M200.84,-171.82C211.01,-157.6 224.86,-138.25 235.98,-122.73"/>
<polygon fill="#ffc107" stroke="#ffc107" points="238.85,-124.72 241.83,-114.55 233.16,-120.65 238.85,-124.72"/>
</g>
<!-- compost -->
<g id="node10" class="node">
<title>compost</title>
<polygon fill="#263238" stroke="black" points="177.25,-38 52.25,-38 52.25,0 183.25,0 183.25,-32 177.25,-38"/>
<polyline fill="none" stroke="black" points="177.25,-38 177.25,-32 "/>
<polyline fill="none" stroke="black" points="183.25,-32 177.25,-32 "/>
<text text-anchor="middle" x="117.75" y="-26.8" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cddc39">end of life</text>
<text text-anchor="middle" x="117.75" y="-16.8" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cddc39">hot aerobic compost only</text>
<text text-anchor="middle" x="117.75" y="-6.8" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cddc39">60&#45;70C, 12&#45;24 weeks</text>
</g>
<!-- s7&#45;&gt;compost -->
<g id="edge9" class="edge">
<title>s7&#45;&gt;compost</title>
<path fill="none" stroke="#795548" stroke-dasharray="5,2" d="M117.75,-74.93C117.75,-66.83 117.75,-57.29 117.75,-48.46"/>
<polygon fill="#795548" stroke="#795548" points="121.25,-48.17 117.75,-38.17 114.25,-48.17 121.25,-48.17"/>
</g>
<!-- fiber -->
<g id="node8" class="node">
<title>fiber</title>
<polygon fill="#263238" stroke="black" points="248.75,-771 118.75,-771 118.75,-735 254.75,-735 254.75,-765 248.75,-771"/>
<polyline fill="none" stroke="black" points="248.75,-771 248.75,-765 "/>
<polyline fill="none" stroke="black" points="254.75,-765 248.75,-765 "/>
<text text-anchor="middle" x="186.75" y="-755.8" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cddc39">local fiber sources</text>
<text text-anchor="middle" x="186.75" y="-745.8" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cddc39">hemp, nettle, wood refuse</text>
</g>
<!-- fiber&#45;&gt;s1 -->
<g id="edge7" class="edge">
<title>fiber&#45;&gt;s1</title>
<path fill="none" stroke="#66bb6a" stroke-dasharray="5,2" d="M186.75,-734.95C186.75,-727.03 186.75,-717.37 186.75,-708.29"/>
<polygon fill="#66bb6a" stroke="#66bb6a" points="190.25,-708.05 186.75,-698.05 183.25,-708.05 190.25,-708.05"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 11 KiB

View file

@ -1,50 +0,0 @@
digraph fiber_intake {
bgcolor="#1a1a2e"
rankdir=TB
node [fontname="Helvetica" fontsize=10 style=filled shape=box]
edge [color="#888888" fontname="Helvetica" fontsize=9 fontcolor="#aaaaaa"]
label=<<B><FONT COLOR="#cccccc" POINT-SIZE="14">station 1: fiber intake &amp; prep</FONT></B>>
labelloc=t
subgraph cluster_hemp {
label="HEMP" fontcolor="#4CAF50" fontsize=11 fontname="Helvetica Bold"
color="#4CAF50" style=dashed
hemp_in [label="hemp stalks\nbast fiber, 77% cellulose" fillcolor="#2E7D32" fontcolor="white"]
hemp_ret [label="ret 3-45 days\nor water ret 10 days" fillcolor="#388E3C" fontcolor="white"]
hemp_dec [label="decorticate\nseparate bast from hurd" fillcolor="#43A047" fontcolor="white"]
hemp_in -> hemp_ret -> hemp_dec
}
subgraph cluster_nettle {
label="NETTLE" fontcolor="#66BB6A" fontsize=11 fontname="Helvetica Bold"
color="#66BB6A" style=dashed
nettle_in [label="nettle stalks\nbast fiber, 65% cellulose" fillcolor="#2E7D32" fontcolor="white"]
nettle_ret [label="water ret 7-14 days\nfaster than hemp" fillcolor="#388E3C" fontcolor="white"]
nettle_dec [label="strip bast fiber\nby hand or machine" fillcolor="#43A047" fontcolor="white"]
nettle_in -> nettle_ret -> nettle_dec
}
subgraph cluster_wood {
label="WOOD REFUSE" fontcolor="#8D6E63" fontsize=11 fontname="Helvetica Bold"
color="#8D6E63" style=dashed
wood_in [label="sawmill offcuts\nchips, shavings, dust" fillcolor="#4E342E" fontcolor="white"]
wood_chip [label="chip to uniform size\n2-5 mm pieces" fillcolor="#5D4037" fontcolor="white"]
wood_sort [label="remove bark, knots\nsort by species" fillcolor="#6D4C41" fontcolor="white"]
wood_in -> wood_chip -> wood_sort
}
chop [label="chop to 2-3 cm\nuniform fiber length" fillcolor="#66BB6A" fontcolor="white"]
weigh [label="weigh &amp; batch\nrecord fiber source ratio" fillcolor="#81C784" fontcolor="#1a1a2e"]
prepared [label="PREPARED FIBER\nready for extraction" fillcolor="#A5D6A7" fontcolor="#1a1a2e" shape=doubleoctagon]
hemp_dec -> chop
nettle_dec -> chop
wood_sort -> chop
chop -> weigh -> prepared
equip [label="equipment:\ndecorticator, chopper\nretting tanks, sorting table\nscale" fillcolor="#263238" fontcolor="#CDDC39" shape=note fontsize=9]
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 61 KiB

View file

@ -1,191 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.43.0 (0)
-->
<!-- Title: fiber_intake Pages: 1 -->
<svg width="624pt" height="487pt"
viewBox="0.00 0.00 624.00 486.92" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 482.92)">
<title>fiber_intake</title>
<polygon fill="#1a1a2e" stroke="transparent" points="-4,4 -4,-482.92 620,-482.92 620,4 -4,4"/>
<text text-anchor="start" x="193.5" y="-464.72" font-family="Times,serif" font-weight="bold" font-size="14.00" fill="#cccccc">station 1: fiber intake &amp; prep</text>
<g id="clust1" class="cluster">
<title>cluster_hemp</title>
<polygon fill="#1a1a2e" stroke="#4caf50" stroke-dasharray="5,2" points="8,-225.92 8,-447.92 162,-447.92 162,-225.92 8,-225.92"/>
<text text-anchor="middle" x="85" y="-435.12" font-family="Helvetica Bold" font-size="11.00" fill="#4caf50">HEMP</text>
</g>
<g id="clust2" class="cluster">
<title>cluster_nettle</title>
<polygon fill="#1a1a2e" stroke="#66bb6a" stroke-dasharray="5,2" points="170,-225.92 170,-447.92 324,-447.92 324,-225.92 170,-225.92"/>
<text text-anchor="middle" x="247" y="-435.12" font-family="Helvetica Bold" font-size="11.00" fill="#66bb6a">NETTLE</text>
</g>
<g id="clust3" class="cluster">
<title>cluster_wood</title>
<polygon fill="#1a1a2e" stroke="#8d6e63" stroke-dasharray="5,2" points="332,-225.92 332,-447.92 468,-447.92 468,-225.92 332,-225.92"/>
<text text-anchor="middle" x="400" y="-435.12" font-family="Helvetica Bold" font-size="11.00" fill="#8d6e63">WOOD REFUSE</text>
</g>
<!-- hemp_in -->
<g id="node1" class="node">
<title>hemp_in</title>
<polygon fill="#2e7d32" stroke="black" points="153.5,-419.92 16.5,-419.92 16.5,-383.92 153.5,-383.92 153.5,-419.92"/>
<text text-anchor="middle" x="85" y="-404.92" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">hemp stalks</text>
<text text-anchor="middle" x="85" y="-393.92" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">bast fiber, 77% cellulose</text>
</g>
<!-- hemp_ret -->
<g id="node2" class="node">
<title>hemp_ret</title>
<polygon fill="#388e3c" stroke="black" points="142.5,-341.92 27.5,-341.92 27.5,-305.92 142.5,-305.92 142.5,-341.92"/>
<text text-anchor="middle" x="85" y="-326.92" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">ret 3&#45;45 days</text>
<text text-anchor="middle" x="85" y="-315.92" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">or water ret 10 days</text>
</g>
<!-- hemp_in&#45;&gt;hemp_ret -->
<g id="edge1" class="edge">
<title>hemp_in&#45;&gt;hemp_ret</title>
<path fill="none" stroke="#888888" d="M85,-383.68C85,-374.45 85,-362.86 85,-352.42"/>
<polygon fill="#888888" stroke="#888888" points="88.5,-352.1 85,-342.1 81.5,-352.1 88.5,-352.1"/>
</g>
<!-- hemp_dec -->
<g id="node3" class="node">
<title>hemp_dec</title>
<polygon fill="#43a047" stroke="black" points="153,-269.92 19,-269.92 19,-233.92 153,-233.92 153,-269.92"/>
<text text-anchor="middle" x="86" y="-254.92" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">decorticate</text>
<text text-anchor="middle" x="86" y="-243.92" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">separate bast from hurd</text>
</g>
<!-- hemp_ret&#45;&gt;hemp_dec -->
<g id="edge2" class="edge">
<title>hemp_ret&#45;&gt;hemp_dec</title>
<path fill="none" stroke="#888888" d="M85.25,-305.62C85.36,-297.9 85.49,-288.63 85.61,-280.03"/>
<polygon fill="#888888" stroke="#888888" points="89.11,-280.08 85.76,-270.03 82.11,-279.98 89.11,-280.08"/>
</g>
<!-- chop -->
<g id="node10" class="node">
<title>chop</title>
<polygon fill="#66bb6a" stroke="black" points="303.5,-197.92 190.5,-197.92 190.5,-161.92 303.5,-161.92 303.5,-197.92"/>
<text text-anchor="middle" x="247" y="-182.92" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">chop to 2&#45;3 cm</text>
<text text-anchor="middle" x="247" y="-171.92" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">uniform fiber length</text>
</g>
<!-- hemp_dec&#45;&gt;chop -->
<g id="edge7" class="edge">
<title>hemp_dec&#45;&gt;chop</title>
<path fill="none" stroke="#888888" d="M125.39,-233.8C147.39,-224.23 175.01,-212.22 198.36,-202.07"/>
<polygon fill="#888888" stroke="#888888" points="199.97,-205.19 207.74,-197.99 197.18,-198.77 199.97,-205.19"/>
</g>
<!-- nettle_in -->
<g id="node4" class="node">
<title>nettle_in</title>
<polygon fill="#2e7d32" stroke="black" points="315.5,-419.92 178.5,-419.92 178.5,-383.92 315.5,-383.92 315.5,-419.92"/>
<text text-anchor="middle" x="247" y="-404.92" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">nettle stalks</text>
<text text-anchor="middle" x="247" y="-393.92" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">bast fiber, 65% cellulose</text>
</g>
<!-- nettle_ret -->
<g id="node5" class="node">
<title>nettle_ret</title>
<polygon fill="#388e3c" stroke="black" points="303,-341.92 191,-341.92 191,-305.92 303,-305.92 303,-341.92"/>
<text text-anchor="middle" x="247" y="-326.92" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">water ret 7&#45;14 days</text>
<text text-anchor="middle" x="247" y="-315.92" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">faster than hemp</text>
</g>
<!-- nettle_in&#45;&gt;nettle_ret -->
<g id="edge3" class="edge">
<title>nettle_in&#45;&gt;nettle_ret</title>
<path fill="none" stroke="#888888" d="M247,-383.68C247,-374.45 247,-362.86 247,-352.42"/>
<polygon fill="#888888" stroke="#888888" points="250.5,-352.1 247,-342.1 243.5,-352.1 250.5,-352.1"/>
</g>
<!-- nettle_dec -->
<g id="node6" class="node">
<title>nettle_dec</title>
<polygon fill="#43a047" stroke="black" points="303.5,-269.92 190.5,-269.92 190.5,-233.92 303.5,-233.92 303.5,-269.92"/>
<text text-anchor="middle" x="247" y="-254.92" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">strip bast fiber</text>
<text text-anchor="middle" x="247" y="-243.92" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">by hand or machine</text>
</g>
<!-- nettle_ret&#45;&gt;nettle_dec -->
<g id="edge4" class="edge">
<title>nettle_ret&#45;&gt;nettle_dec</title>
<path fill="none" stroke="#888888" d="M247,-305.62C247,-297.9 247,-288.63 247,-280.03"/>
<polygon fill="#888888" stroke="#888888" points="250.5,-280.03 247,-270.03 243.5,-280.03 250.5,-280.03"/>
</g>
<!-- nettle_dec&#45;&gt;chop -->
<g id="edge8" class="edge">
<title>nettle_dec&#45;&gt;chop</title>
<path fill="none" stroke="#888888" d="M247,-233.62C247,-225.9 247,-216.63 247,-208.03"/>
<polygon fill="#888888" stroke="#888888" points="250.5,-208.03 247,-198.03 243.5,-208.03 250.5,-208.03"/>
</g>
<!-- wood_in -->
<g id="node7" class="node">
<title>wood_in</title>
<polygon fill="#4e342e" stroke="black" points="459.5,-419.92 340.5,-419.92 340.5,-383.92 459.5,-383.92 459.5,-419.92"/>
<text text-anchor="middle" x="400" y="-404.92" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">sawmill offcuts</text>
<text text-anchor="middle" x="400" y="-393.92" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">chips, shavings, dust</text>
</g>
<!-- wood_chip -->
<g id="node8" class="node">
<title>wood_chip</title>
<polygon fill="#5d4037" stroke="black" points="454.5,-341.92 341.5,-341.92 341.5,-305.92 454.5,-305.92 454.5,-341.92"/>
<text text-anchor="middle" x="398" y="-326.92" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">chip to uniform size</text>
<text text-anchor="middle" x="398" y="-315.92" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">2&#45;5 mm pieces</text>
</g>
<!-- wood_in&#45;&gt;wood_chip -->
<g id="edge5" class="edge">
<title>wood_in&#45;&gt;wood_chip</title>
<path fill="none" stroke="#888888" d="M399.55,-383.68C399.3,-374.45 399,-362.86 398.72,-352.42"/>
<polygon fill="#888888" stroke="#888888" points="402.21,-352 398.45,-342.1 395.22,-352.19 402.21,-352"/>
</g>
<!-- wood_sort -->
<g id="node9" class="node">
<title>wood_sort</title>
<polygon fill="#6d4c41" stroke="black" points="453,-269.92 341,-269.92 341,-233.92 453,-233.92 453,-269.92"/>
<text text-anchor="middle" x="397" y="-254.92" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">remove bark, knots</text>
<text text-anchor="middle" x="397" y="-243.92" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">sort by species</text>
</g>
<!-- wood_chip&#45;&gt;wood_sort -->
<g id="edge6" class="edge">
<title>wood_chip&#45;&gt;wood_sort</title>
<path fill="none" stroke="#888888" d="M397.75,-305.62C397.64,-297.9 397.51,-288.63 397.39,-280.03"/>
<polygon fill="#888888" stroke="#888888" points="400.89,-279.98 397.24,-270.03 393.89,-280.08 400.89,-279.98"/>
</g>
<!-- wood_sort&#45;&gt;chop -->
<g id="edge9" class="edge">
<title>wood_sort&#45;&gt;chop</title>
<path fill="none" stroke="#888888" d="M360.31,-233.8C339.98,-224.31 314.53,-212.44 292.9,-202.34"/>
<polygon fill="#888888" stroke="#888888" points="294.12,-199.05 283.57,-197.99 291.16,-205.39 294.12,-199.05"/>
</g>
<!-- weigh -->
<g id="node11" class="node">
<title>weigh</title>
<polygon fill="#81c784" stroke="black" points="313.5,-125.92 180.5,-125.92 180.5,-89.92 313.5,-89.92 313.5,-125.92"/>
<text text-anchor="middle" x="247" y="-110.92" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#1a1a2e">weigh &amp; batch</text>
<text text-anchor="middle" x="247" y="-99.92" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#1a1a2e">record fiber source ratio</text>
</g>
<!-- chop&#45;&gt;weigh -->
<g id="edge10" class="edge">
<title>chop&#45;&gt;weigh</title>
<path fill="none" stroke="#888888" d="M247,-161.62C247,-153.9 247,-144.63 247,-136.03"/>
<polygon fill="#888888" stroke="#888888" points="250.5,-136.03 247,-126.03 243.5,-136.03 250.5,-136.03"/>
</g>
<!-- prepared -->
<g id="node12" class="node">
<title>prepared</title>
<polygon fill="#a5d6a7" stroke="black" points="333.47,-17.46 333.47,-36.46 282.82,-49.89 211.18,-49.89 160.53,-36.46 160.53,-17.46 211.18,-4.03 282.82,-4.03 333.47,-17.46"/>
<polygon fill="none" stroke="black" points="337.47,-14.39 337.47,-39.53 283.34,-53.88 210.66,-53.88 156.53,-39.53 156.53,-14.39 210.66,-0.04 283.34,-0.04 337.47,-14.39"/>
<text text-anchor="middle" x="247" y="-29.96" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#1a1a2e">PREPARED FIBER</text>
<text text-anchor="middle" x="247" y="-18.96" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#1a1a2e">ready for extraction</text>
</g>
<!-- weigh&#45;&gt;prepared -->
<g id="edge11" class="edge">
<title>weigh&#45;&gt;prepared</title>
<path fill="none" stroke="#888888" d="M247,-89.79C247,-82.29 247,-73.19 247,-64.3"/>
<polygon fill="#888888" stroke="#888888" points="250.5,-64.07 247,-54.07 243.5,-64.07 250.5,-64.07"/>
</g>
<!-- equip -->
<g id="node13" class="node">
<title>equip</title>
<polygon fill="#263238" stroke="black" points="610,-425.92 478,-425.92 478,-377.92 616,-377.92 616,-419.92 610,-425.92"/>
<polyline fill="none" stroke="black" points="610,-425.92 610,-419.92 "/>
<polyline fill="none" stroke="black" points="616,-419.92 610,-419.92 "/>
<text text-anchor="middle" x="547" y="-414.72" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cddc39">equipment:</text>
<text text-anchor="middle" x="547" y="-404.72" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cddc39">decorticator, chopper</text>
<text text-anchor="middle" x="547" y="-394.72" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cddc39">retting tanks, sorting table</text>
<text text-anchor="middle" x="547" y="-384.72" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cddc39">scale</text>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 12 KiB

View file

@ -1,40 +0,0 @@
digraph pressing_station {
bgcolor="#1a1a2e"
rankdir=LR
node [fontname="Helvetica" fontsize=10 style=filled shape=box]
edge [color="#888888" fontname="Helvetica" fontsize=9 fontcolor="#aaaaaa"]
label=<<B><FONT COLOR="#cccccc" POINT-SIZE="14">station 5: pressing &amp; mold rotation</FONT></B>>
labelloc=t
compound [label="MIXED COMPOUND\nfrom Station 4" fillcolor="#7B1FA2" fontcolor="white"]
subgraph cluster_rotation {
label="MOLD ROTATION CYCLE" fontcolor="#FF9800" fontsize=11 fontname="Helvetica Bold"
color="#FF9800" style=dashed
load [label="LOAD\nfill mold with compound\ncompress, add lid" fillcolor="#E65100" fontcolor="white"]
cure [label="CURE\nhot press 150-240C\n10-30 min under pressure" fillcolor="#FF6F00" fontcolor="white"]
cool [label="COOL\nslow cool in mold\nprevent cracking" fillcolor="#FF9800" fontcolor="white"]
demold [label="DEMOLD\nrelease product\nclean mold for reuse" fillcolor="#FFC107" fontcolor="#1a1a2e"]
load -> cure -> cool -> demold
demold -> load [label="mold returns\nto loading" style=dashed color="#FFC107"]
}
compound -> load
products [label="PRESSED PRODUCTS\nto Station 6" fillcolor="#FFC107" fontcolor="#1a1a2e" shape=doubleoctagon]
demold -> products
subgraph cluster_molds {
label="PRODUCT MOLDS" fontcolor="#aaaaaa" fontsize=11 fontname="Helvetica Bold"
color="#555555" style=dashed
bowls [label="bowls &amp; plates\n150-180C, 20 min" fillcolor="#E65100" fontcolor="white"]
pots [label="garden pots\n160-200C, 25 min" fillcolor="#F57C00" fontcolor="white"]
boxes [label="storage boxes\n180-240C, 30 min" fillcolor="#FF9800" fontcolor="white"]
}
note [label="multiple mold sets\nrotate through cycle\n4-6 presses per day\nper mold" fillcolor="#263238" fontcolor="#CDDC39" shape=note fontsize=9]
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 62 KiB

View file

@ -1,141 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.43.0 (0)
-->
<!-- Title: pressing_station Pages: 1 -->
<svg width="1058pt" height="347pt"
viewBox="0.00 0.00 1057.63 347.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 343)">
<title>pressing_station</title>
<polygon fill="#1a1a2e" stroke="transparent" points="-4,4 -4,-343 1053.63,-343 1053.63,4 -4,4"/>
<text text-anchor="start" x="386.31" y="-324.8" font-family="Times,serif" font-weight="bold" font-size="14.00" fill="#cccccc">station 5: pressing &amp; mold rotation</text>
<g id="clust1" class="cluster">
<title>cluster_rotation</title>
<polygon fill="#1a1a2e" stroke="#ff9800" stroke-dasharray="5,2" points="152,-8 152,-106 832,-106 832,-8 152,-8"/>
<text text-anchor="middle" x="492" y="-93.2" font-family="Helvetica Bold" font-size="11.00" fill="#ff9800">MOLD ROTATION CYCLE</text>
</g>
<g id="clust2" class="cluster">
<title>cluster_molds</title>
<polygon fill="#1a1a2e" stroke="#555555" stroke-dasharray="5,2" points="8,-80 8,-260 127,-260 127,-80 8,-80"/>
<text text-anchor="middle" x="67.5" y="-247.2" font-family="Helvetica Bold" font-size="11.00" fill="#aaaaaa">PRODUCT MOLDS</text>
</g>
<!-- compound -->
<g id="node1" class="node">
<title>compound</title>
<polygon fill="#7b1fa2" stroke="black" points="123,-70 12,-70 12,-34 123,-34 123,-70"/>
<text text-anchor="middle" x="67.5" y="-55" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">MIXED COMPOUND</text>
<text text-anchor="middle" x="67.5" y="-44" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">from Station 4</text>
</g>
<!-- load -->
<g id="node2" class="node">
<title>load</title>
<polygon fill="#e65100" stroke="black" points="294,-72.5 160,-72.5 160,-31.5 294,-31.5 294,-72.5"/>
<text text-anchor="middle" x="227" y="-60.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">LOAD</text>
<text text-anchor="middle" x="227" y="-49.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">fill mold with compound</text>
<text text-anchor="middle" x="227" y="-38.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">compress, add lid</text>
</g>
<!-- compound&#45;&gt;load -->
<g id="edge5" class="edge">
<title>compound&#45;&gt;load</title>
<path fill="none" stroke="#888888" d="M123.14,-52C131.73,-52 140.74,-52 149.7,-52"/>
<polygon fill="#888888" stroke="#888888" points="149.78,-55.5 159.78,-52 149.78,-48.5 149.78,-55.5"/>
</g>
<!-- cure -->
<g id="node3" class="node">
<title>cure</title>
<polygon fill="#ff6f00" stroke="black" points="473,-57.5 331,-57.5 331,-16.5 473,-16.5 473,-57.5"/>
<text text-anchor="middle" x="402" y="-45.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">CURE</text>
<text text-anchor="middle" x="402" y="-34.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">hot press 150&#45;240C</text>
<text text-anchor="middle" x="402" y="-23.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">10&#45;30 min under pressure</text>
</g>
<!-- load&#45;&gt;cure -->
<g id="edge1" class="edge">
<title>load&#45;&gt;cure</title>
<path fill="none" stroke="#888888" d="M294.39,-46.24C302.95,-45.5 311.79,-44.73 320.55,-43.98"/>
<polygon fill="#888888" stroke="#888888" points="321.11,-47.44 330.77,-43.09 320.5,-40.47 321.11,-47.44"/>
</g>
<!-- cool -->
<g id="node4" class="node">
<title>cool</title>
<polygon fill="#ff9800" stroke="black" points="670,-57.5 568,-57.5 568,-16.5 670,-16.5 670,-57.5"/>
<text text-anchor="middle" x="619" y="-45.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">COOL</text>
<text text-anchor="middle" x="619" y="-34.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">slow cool in mold</text>
<text text-anchor="middle" x="619" y="-23.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">prevent cracking</text>
</g>
<!-- cure&#45;&gt;cool -->
<g id="edge2" class="edge">
<title>cure&#45;&gt;cool</title>
<path fill="none" stroke="#888888" d="M473.1,-37C500.36,-37 531.29,-37 557.55,-37"/>
<polygon fill="#888888" stroke="#888888" points="557.74,-40.5 567.74,-37 557.74,-33.5 557.74,-40.5"/>
</g>
<!-- demold -->
<g id="node5" class="node">
<title>demold</title>
<polygon fill="#ffc107" stroke="black" points="824,-67.5 707,-67.5 707,-26.5 824,-26.5 824,-67.5"/>
<text text-anchor="middle" x="765.5" y="-55.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#1a1a2e">DEMOLD</text>
<text text-anchor="middle" x="765.5" y="-44.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#1a1a2e">release product</text>
<text text-anchor="middle" x="765.5" y="-33.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#1a1a2e">clean mold for reuse</text>
</g>
<!-- cool&#45;&gt;demold -->
<g id="edge3" class="edge">
<title>cool&#45;&gt;demold</title>
<path fill="none" stroke="#888888" d="M670.13,-40.47C678.72,-41.06 687.77,-41.69 696.73,-42.31"/>
<polygon fill="#888888" stroke="#888888" points="696.55,-45.81 706.77,-43 697.04,-38.82 696.55,-45.81"/>
</g>
<!-- demold&#45;&gt;load -->
<g id="edge4" class="edge">
<title>demold&#45;&gt;load</title>
<path fill="none" stroke="#ffc107" stroke-dasharray="5,2" d="M706.8,-60.49C694.71,-62.78 681.99,-64.81 670,-66 520.07,-80.92 481.32,-76.17 331,-66 322.3,-65.41 313.22,-64.55 304.2,-63.53"/>
<polygon fill="#ffc107" stroke="#ffc107" points="304.42,-60.03 294.08,-62.33 303.59,-66.98 304.42,-60.03"/>
<text text-anchor="middle" x="520.5" y="-87.8" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#aaaaaa">mold returns</text>
<text text-anchor="middle" x="520.5" y="-77.8" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#aaaaaa">to loading</text>
</g>
<!-- products -->
<g id="node6" class="node">
<title>products</title>
<polygon fill="#ffc107" stroke="black" points="1045.45,-37.5 1045.45,-56.5 992.65,-69.93 917.98,-69.93 865.18,-56.5 865.18,-37.5 917.98,-24.07 992.65,-24.07 1045.45,-37.5"/>
<polygon fill="none" stroke="black" points="1049.44,-34.4 1049.44,-59.6 993.15,-73.92 917.48,-73.92 861.19,-59.6 861.19,-34.4 917.48,-20.08 993.15,-20.08 1049.44,-34.4"/>
<text text-anchor="middle" x="955.31" y="-50" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#1a1a2e">PRESSED PRODUCTS</text>
<text text-anchor="middle" x="955.31" y="-39" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#1a1a2e">to Station 6</text>
</g>
<!-- demold&#45;&gt;products -->
<g id="edge6" class="edge">
<title>demold&#45;&gt;products</title>
<path fill="none" stroke="#888888" d="M824.13,-47C832.76,-47 841.87,-47 851.11,-47"/>
<polygon fill="#888888" stroke="#888888" points="851.16,-50.5 861.16,-47 851.16,-43.5 851.16,-50.5"/>
</g>
<!-- bowls -->
<g id="node7" class="node">
<title>bowls</title>
<polygon fill="#e65100" stroke="black" points="119,-232 16,-232 16,-196 119,-196 119,-232"/>
<text text-anchor="middle" x="67.5" y="-217" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">bowls &amp; plates</text>
<text text-anchor="middle" x="67.5" y="-206" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">150&#45;180C, 20 min</text>
</g>
<!-- pots -->
<g id="node8" class="node">
<title>pots</title>
<polygon fill="#f57c00" stroke="black" points="119,-178 16,-178 16,-142 119,-142 119,-178"/>
<text text-anchor="middle" x="67.5" y="-163" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">garden pots</text>
<text text-anchor="middle" x="67.5" y="-152" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">160&#45;200C, 25 min</text>
</g>
<!-- boxes -->
<g id="node9" class="node">
<title>boxes</title>
<polygon fill="#ff9800" stroke="black" points="119,-124 16,-124 16,-88 119,-88 119,-124"/>
<text text-anchor="middle" x="67.5" y="-109" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">storage boxes</text>
<text text-anchor="middle" x="67.5" y="-98" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">180&#45;240C, 30 min</text>
</g>
<!-- note -->
<g id="node10" class="node">
<title>note</title>
<polygon fill="#263238" stroke="black" points="116.5,-316 12.5,-316 12.5,-268 122.5,-268 122.5,-310 116.5,-316"/>
<polyline fill="none" stroke="black" points="116.5,-316 116.5,-310 "/>
<polyline fill="none" stroke="black" points="122.5,-310 116.5,-310 "/>
<text text-anchor="middle" x="67.5" y="-304.8" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cddc39">multiple mold sets</text>
<text text-anchor="middle" x="67.5" y="-294.8" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cddc39">rotate through cycle</text>
<text text-anchor="middle" x="67.5" y="-284.8" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cddc39">4&#45;6 presses per day</text>
<text text-anchor="middle" x="67.5" y="-274.8" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cddc39">per mold</text>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 8.9 KiB

View file

@ -1,43 +0,0 @@
digraph product_catalog {
bgcolor="#1a1a2e"
rankdir=TB
node [fontname="Helvetica" fontsize=10 style=filled shape=box]
edge [style=invis]
label=<<B><FONT COLOR="#cccccc" POINT-SIZE="14">product catalog: three categories</FONT></B>>
labelloc=t
subgraph cluster_kitchen {
label="KITCHEN &amp; DINING" fontcolor="#FF9800" fontsize=11 fontname="Helvetica Bold"
color="#FF9800" style=dashed
bowls [label="bowls\n15 cm, 80g\n20% glycerol" fillcolor="#E65100" fontcolor="white"]
plates [label="plates\n22 cm, 120g\n15% glycerol" fillcolor="#F57C00" fontcolor="white"]
cups [label="cups\n250 mL, 60g\n20% glycerol" fillcolor="#FF9800" fontcolor="white"]
trivets [label="trivets\n18 cm, 150g\n15% glycerol" fillcolor="#FFA726" fontcolor="white"]
bowls -> plates -> cups -> trivets
}
subgraph cluster_garden {
label="GARDEN &amp; GROWING" fontcolor="#4CAF50" fontsize=11 fontname="Helvetica Bold"
color="#4CAF50" style=dashed
pots [label="plant pots\n10-15 cm, 90g\n15% glycerol" fillcolor="#2E7D32" fontcolor="white"]
trays [label="seed trays\n30x20 cm, 200g\n15% glycerol" fillcolor="#388E3C" fontcolor="white"]
labels [label="plant labels\n12x3 cm, 10g\n15% glycerol" fillcolor="#43A047" fontcolor="white"]
pots -> trays -> labels
}
subgraph cluster_storage {
label="STORAGE &amp; ORGANIZATION" fontcolor="#8E24AA" fontsize=11 fontname="Helvetica Bold"
color="#8E24AA" style=dashed
lidbox [label="lidded boxes\n15x15x8 cm, 180g\n20% glycerol" fillcolor="#6A1B9A" fontcolor="white"]
organizer [label="desk organizers\n25x10x8 cm, 160g\n15% glycerol" fillcolor="#7B1FA2" fontcolor="white"]
lidbox -> organizer
}
lifespan [label="all products:\n3-5 years daily use\nbiodegrade in hot compost\n60-70C, 12-24 weeks" fillcolor="#263238" fontcolor="#CDDC39" shape=note fontsize=9]
care [label="care: hand wash\ndo NOT dishwasher >60C\ndo NOT microwave\ndo NOT soak overnight" fillcolor="#263238" fontcolor="#CDDC39" shape=note fontsize=9]
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 70 KiB

View file

@ -1,129 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.43.0 (0)
-->
<!-- Title: product_catalog Pages: 1 -->
<svg width="752pt" height="359pt"
viewBox="0.00 0.00 752.00 358.50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 354.5)">
<title>product_catalog</title>
<polygon fill="#1a1a2e" stroke="transparent" points="-4,4 -4,-354.5 748,-354.5 748,4 -4,4"/>
<text text-anchor="start" x="241" y="-336.3" font-family="Times,serif" font-weight="bold" font-size="14.00" fill="#cccccc">product catalog: three categories</text>
<g id="clust1" class="cluster">
<title>cluster_kitchen</title>
<polygon fill="#1a1a2e" stroke="#ff9800" stroke-dasharray="5,2" points="8,-8 8,-319.5 128,-319.5 128,-8 8,-8"/>
<text text-anchor="middle" x="68" y="-306.7" font-family="Helvetica Bold" font-size="11.00" fill="#ff9800">KITCHEN &amp; DINING</text>
</g>
<g id="clust2" class="cluster">
<title>cluster_garden</title>
<polygon fill="#1a1a2e" stroke="#4caf50" stroke-dasharray="5,2" points="136,-85 136,-319.5 270,-319.5 270,-85 136,-85"/>
<text text-anchor="middle" x="203" y="-306.7" font-family="Helvetica Bold" font-size="11.00" fill="#4caf50">GARDEN &amp; GROWING</text>
</g>
<g id="clust3" class="cluster">
<title>cluster_storage</title>
<polygon fill="#1a1a2e" stroke="#8e24aa" stroke-dasharray="5,2" points="278,-162 278,-319.5 446,-319.5 446,-162 278,-162"/>
<text text-anchor="middle" x="362" y="-306.7" font-family="Helvetica Bold" font-size="11.00" fill="#8e24aa">STORAGE &amp; ORGANIZATION</text>
</g>
<!-- bowls -->
<g id="node1" class="node">
<title>bowls</title>
<polygon fill="#e65100" stroke="black" points="108,-291.5 28,-291.5 28,-250.5 108,-250.5 108,-291.5"/>
<text text-anchor="middle" x="68" y="-279.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">bowls</text>
<text text-anchor="middle" x="68" y="-268.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">15 cm, 80g</text>
<text text-anchor="middle" x="68" y="-257.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">20% glycerol</text>
</g>
<!-- plates -->
<g id="node2" class="node">
<title>plates</title>
<polygon fill="#f57c00" stroke="black" points="108,-211 28,-211 28,-170 108,-170 108,-211"/>
<text text-anchor="middle" x="68" y="-199" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">plates</text>
<text text-anchor="middle" x="68" y="-188" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">22 cm, 120g</text>
<text text-anchor="middle" x="68" y="-177" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">15% glycerol</text>
</g>
<!-- bowls&#45;&gt;plates -->
<!-- cups -->
<g id="node3" class="node">
<title>cups</title>
<polygon fill="#ff9800" stroke="black" points="108,-134 28,-134 28,-93 108,-93 108,-134"/>
<text text-anchor="middle" x="68" y="-122" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">cups</text>
<text text-anchor="middle" x="68" y="-111" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">250 mL, 60g</text>
<text text-anchor="middle" x="68" y="-100" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">20% glycerol</text>
</g>
<!-- plates&#45;&gt;cups -->
<!-- trivets -->
<g id="node4" class="node">
<title>trivets</title>
<polygon fill="#ffa726" stroke="black" points="108,-57 28,-57 28,-16 108,-16 108,-57"/>
<text text-anchor="middle" x="68" y="-45" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">trivets</text>
<text text-anchor="middle" x="68" y="-34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">18 cm, 150g</text>
<text text-anchor="middle" x="68" y="-23" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">15% glycerol</text>
</g>
<!-- cups&#45;&gt;trivets -->
<!-- pots -->
<g id="node5" class="node">
<title>pots</title>
<polygon fill="#2e7d32" stroke="black" points="246,-291.5 160,-291.5 160,-250.5 246,-250.5 246,-291.5"/>
<text text-anchor="middle" x="203" y="-279.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">plant pots</text>
<text text-anchor="middle" x="203" y="-268.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">10&#45;15 cm, 90g</text>
<text text-anchor="middle" x="203" y="-257.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">15% glycerol</text>
</g>
<!-- trays -->
<g id="node6" class="node">
<title>trays</title>
<polygon fill="#388e3c" stroke="black" points="250.5,-211 155.5,-211 155.5,-170 250.5,-170 250.5,-211"/>
<text text-anchor="middle" x="203" y="-199" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">seed trays</text>
<text text-anchor="middle" x="203" y="-188" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">30x20 cm, 200g</text>
<text text-anchor="middle" x="203" y="-177" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">15% glycerol</text>
</g>
<!-- pots&#45;&gt;trays -->
<!-- labels -->
<g id="node7" class="node">
<title>labels</title>
<polygon fill="#43a047" stroke="black" points="244.5,-134 161.5,-134 161.5,-93 244.5,-93 244.5,-134"/>
<text text-anchor="middle" x="203" y="-122" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">plant labels</text>
<text text-anchor="middle" x="203" y="-111" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">12x3 cm, 10g</text>
<text text-anchor="middle" x="203" y="-100" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">15% glycerol</text>
</g>
<!-- trays&#45;&gt;labels -->
<!-- lidbox -->
<g id="node8" class="node">
<title>lidbox</title>
<polygon fill="#6a1b9a" stroke="black" points="414.5,-291.5 307.5,-291.5 307.5,-250.5 414.5,-250.5 414.5,-291.5"/>
<text text-anchor="middle" x="361" y="-279.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">lidded boxes</text>
<text text-anchor="middle" x="361" y="-268.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">15x15x8 cm, 180g</text>
<text text-anchor="middle" x="361" y="-257.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">20% glycerol</text>
</g>
<!-- organizer -->
<g id="node9" class="node">
<title>organizer</title>
<polygon fill="#7b1fa2" stroke="black" points="414.5,-211 307.5,-211 307.5,-170 414.5,-170 414.5,-211"/>
<text text-anchor="middle" x="361" y="-199" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">desk organizers</text>
<text text-anchor="middle" x="361" y="-188" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">25x10x8 cm, 160g</text>
<text text-anchor="middle" x="361" y="-177" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">15% glycerol</text>
</g>
<!-- lidbox&#45;&gt;organizer -->
<!-- lifespan -->
<g id="node10" class="node">
<title>lifespan</title>
<polygon fill="#263238" stroke="black" points="587.5,-295 454.5,-295 454.5,-247 593.5,-247 593.5,-289 587.5,-295"/>
<polyline fill="none" stroke="black" points="587.5,-295 587.5,-289 "/>
<polyline fill="none" stroke="black" points="593.5,-289 587.5,-289 "/>
<text text-anchor="middle" x="524" y="-283.8" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cddc39">all products:</text>
<text text-anchor="middle" x="524" y="-273.8" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cddc39">3&#45;5 years daily use</text>
<text text-anchor="middle" x="524" y="-263.8" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cddc39">biodegrade in hot compost</text>
<text text-anchor="middle" x="524" y="-253.8" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cddc39">60&#45;70C, 12&#45;24 weeks</text>
</g>
<!-- care -->
<g id="node11" class="node">
<title>care</title>
<polygon fill="#263238" stroke="black" points="738,-295 612,-295 612,-247 744,-247 744,-289 738,-295"/>
<polyline fill="none" stroke="black" points="738,-295 738,-289 "/>
<polyline fill="none" stroke="black" points="744,-289 738,-289 "/>
<text text-anchor="middle" x="678" y="-283.8" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cddc39">care: hand wash</text>
<text text-anchor="middle" x="678" y="-273.8" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cddc39">do NOT dishwasher &gt;60C</text>
<text text-anchor="middle" x="678" y="-263.8" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cddc39">do NOT microwave</text>
<text text-anchor="middle" x="678" y="-253.8" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cddc39">do NOT soak overnight</text>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 8.5 KiB

View file

@ -1,554 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>bioplastic factory &#8212; unturf.</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="theme-color" content="#5871ad">
<meta charset="utf-8">
<link rel="stylesheet" href="/css/chunkfive/stylesheet.css" type="text/css" charset="utf-8" />
<link rel="stylesheet" href="/css/pico.classless.min.css">
<link rel="stylesheet" href="/css/unturf.css">
</head>
<body>
<main class="content-wide">
<center><a href="/"><h1 class="site-title">unturf.</h1></a></center>
<center><h3>grow food not lawn</h3></center>
<center class="nav-links"><small><a href="/let-us-define-a-permacomputer/">manifesto</a> · <a href="/eight-forms-of-capital/">eight forms of capital</a> · <a href="/single-use-plastics/">single-use plastics</a> · <a href="/hemp-bioplastic/">hemp bioplastic</a> · <a href="/hemp-bioplastic/process/">recipe</a> · <a href="/hemp-bioplastic/process/homeschool/">homeschool</a> · <a href="/hemp-bioplastic/process/factory/" aria-current="page">factory</a> · <a href="/software/">free software</a></small></center>
<h2>Bioplastic Factory</h2>
<p>
A continuous-flow factory producing durable everyday products from plant fiber. Not batch processing. Not single-use packaging. Products survive years of daily use but biodegrade fully in hot aerobic compost (60-70C). Three fiber sources feed the same standardized process: hemp, nettle, &amp; wood refuse. Designed for replication as distributed hubs worldwide.
</p>
<p>
This page describes a complete 7-station production line. <a href="/hemp-bioplastic/process/">Batch recipes live on a process page</a>. <a href="/hemp-bioplastic/process/homeschool/">A 4-day homeschool curriculum lives on a homeschool page</a>. This factory page covers continuous production at community scale.
</p>
<!-- ============================================================ -->
<!-- STATION OVERVIEW -->
<!-- ============================================================ -->
<span class="step-label">OVERVIEW</span>
<h3>7-Station Flow</h3>
<figure class="diagram">
<img src="img/factory-flow.svg" alt="7-station continuous-flow bioplastic factory overview">
<figcaption>fiber enters at station 1, finished products leave at station 6, compost demo runs at station 7.</figcaption>
</figure>
<table>
<thead>
<tr><th>Station</th><th>Name</th><th>Input</th><th>Output</th><th>Equipment</th><th>Cycle Time</th></tr>
</thead>
<tbody>
<tr><td>1</td><td>Fiber Intake &amp; Prep</td><td>Raw stalks &amp; wood refuse</td><td>Prepared fiber (chopped, sorted)</td><td>Decorticator, chopper, retting tanks, scale</td><td>Continuous intake</td></tr>
<tr><td>2</td><td>Extraction</td><td>Prepared fiber</td><td>Raw cellulose</td><td>Reaction vessels (3-4), filtration, pH meter</td><td>2-4 hours per vessel</td></tr>
<tr><td>3</td><td>Washing &amp; Drying</td><td>Raw cellulose</td><td>Dry cellulose</td><td>Counter-current wash line, convection dryer</td><td>4-8 hours</td></tr>
<tr><td>4</td><td>Mixing</td><td>Dry cellulose</td><td>Mixed compound</td><td>Heated mixer, scale, pigment dispensers</td><td>60-90 minutes</td></tr>
<tr><td>5</td><td>Pressing &amp; Molding</td><td>Mixed compound</td><td>Pressed products</td><td>Hot press, mold sets, temperature controller</td><td>30-60 min per press</td></tr>
<tr><td>6</td><td>Finishing</td><td>Pressed products</td><td>Finished goods</td><td>Trim station, inspection table, stamp press</td><td>5-10 min per product</td></tr>
<tr><td>7</td><td>Compost Demo</td><td>Demo samples</td><td>Display &amp; education</td><td>Hot compost bin (60-70C), timeline display</td><td>Ongoing display</td></tr>
</tbody>
</table>
<!-- ============================================================ -->
<!-- STATION 1: FIBER INTAKE -->
<!-- ============================================================ -->
<span class="step-label">STATION 1</span>
<h3>Fiber Intake &amp; Prep</h3>
<p>
Three fiber sources converge into a single "prepared fiber" stream. Each source follows a parallel prep path adapted to its characteristics, then all merge at chopping &amp; weighing.
</p>
<figure class="diagram">
<img src="img/fiber-intake.svg" alt="Three fiber sources converging: hemp, nettle, wood refuse">
<figcaption>hemp, nettle, &amp; wood refuse follow parallel prep paths before merging.</figcaption>
</figure>
<h4>Hemp (primary source)</h4>
<ul>
<li>Bast fiber from stalks, 77% cellulose content</li>
<li>Ret 3-45 days (depending on temperature) or water ret 10 days</li>
<li>Decorticate: separate bast from hurd using decorticator or by hand</li>
</ul>
<h4>Nettle (secondary source)</h4>
<ul>
<li>Bast fiber from stalks, ~65% cellulose content<sup id="ref1"><a href="#fn1">[1]</a></sup></li>
<li>Water ret 7-14 days, faster breakdown than hemp</li>
<li>Strip bast fiber by hand or small decorticator</li>
<li>Grows wild on marginal land, requires no cultivation</li>
</ul>
<h4>Wood Refuse (supplementary source)</h4>
<ul>
<li>Sawmill offcuts, chips, shavings from local timber operations</li>
<li>Chip to uniform 2-5 mm pieces</li>
<li>Sort: remove bark, knots, &amp; resinous species (pine, cedar)</li>
<li>Hardwoods preferred: beech, birch, poplar offer 40-50% cellulose<sup id="ref2"><a href="#fn2">[2]</a></sup></li>
</ul>
<h4>Convergence</h4>
<ol>
<li>Chop all prepared fiber to uniform 2-3 cm lengths</li>
<li>Weigh &amp; record source ratio per batch (enables quality tracking)</li>
<li>Output: prepared fiber, ready for extraction</li>
</ol>
<div class="recipe-box">
<b>Equipment list:</b> decorticator (hand-crank or motorized), fiber chopper, retting tanks (3-4 for rotation), sorting table, digital scale (1g precision), labeled storage bins per fiber source.
</div>
<!-- ============================================================ -->
<!-- STATION 2: EXTRACTION -->
<!-- ============================================================ -->
<span class="step-label">STATION 2</span>
<h3>Extraction</h3>
<p>
Two extraction paths run as factory alternatives. A hub selects one path based on local chemistry comfort, waste handling capacity, &amp; product goals. Both paths accept the same prepared fiber from Station 1 &amp; output raw cellulose to Station 3.
</p>
<figure class="diagram">
<img src="img/extraction-station.svg" alt="NaOH extraction path versus citric acid crosslinking path">
<figcaption>each hub chooses one path. both produce usable cellulose for pressing.</figcaption>
</figure>
<h4>Path A: NaOH Extraction</h4>
<div class="recipe-box">
<b>Process:</b><br>
1. Dissolve NaOH in water (5-12% solution depending on fiber source)<br>
2. Add prepared fiber. Heat to 80C with stirring for 2-3 hours (or soak at room temperature for 4 hours using 5% NaOH)<sup id="ref3"><a href="#fn3">[3]</a></sup><br>
3. Filter. Wash 4-6 times until pH neutral<br>
4. Output: purified cellulose (removes lignin, hemicellulose, pectin)<br><br>
<b>Continuous operation:</b> rotate 3-4 reaction vessels through stages. While vessel A soaks, vessel B gets filtered, vessel C gets loaded. No downtime.
</div>
<h4>Path B: Citric Acid Crosslinking</h4>
<div class="recipe-box">
<b>Process:</b><br>
1. Spread prepared fiber onto screens, press into sheets<br>
2. Soak sheets in citric acid + glycerol solution<br>
3. Cure at 140C under pressure<sup id="ref4"><a href="#fn4">[4]</a></sup><br>
4. Output: crosslinked cellulose material (up to 70 MPa tensile strength)<br><br>
<b>Continuous operation:</b> stagger sheet production. While batch A cures, batch B soaks, batch C gets pressed into sheets.
</div>
<div class="honest-box">
<b>Honest comparison:</b> citric acid path produces less chemical waste, avoids NaOH safety hazards, &amp; requires simpler equipment. NaOH path achieves purer cellulose isolation &amp; works better with mixed or lower-quality fiber sources. Neither path stays universally superior.
</div>
<!-- ============================================================ -->
<!-- STATION 3: WASHING & DRYING -->
<!-- ============================================================ -->
<span class="step-label">STATION 3</span>
<h3>Washing &amp; Drying</h3>
<p>
Buffer station between extraction &amp; pressing. Removes residual chemicals, reduces moisture to pressing readiness.
</p>
<h4>Counter-Current Washing</h4>
<p>
Fresh water enters at the cleanest stage (final rinse). Used water from each stage flows backward to the dirtiest stage (first rinse). This approach reduces water consumption 3-4x compared to batch rinsing.<sup id="ref5"><a href="#fn5">[5]</a></sup>
</p>
<div class="recipe-box">
<b>Wash stages:</b><br>
1. First rinse (receives used water from stage 2, removes bulk chemicals)<br>
2. Second rinse (receives used water from stage 3)<br>
3. Third rinse (receives used water from stage 4)<br>
4. Final rinse (receives fresh water only, output at pH 7)<br><br>
<b>pH check:</b> test wash water after each stage. Final output must read pH 7 (neutral). Residual NaOH weakens finished products.
</div>
<h4>Drying</h4>
<ul>
<li><b>Convection dryer:</b> forced hot air at 60-80C, 4-6 hours to bone dry</li>
<li><b>Solar tunnel (warm climates):</b> passive solar heat, 8-12 hours, zero energy cost</li>
<li><b>Critical check:</b> weigh before &amp; after drying. Weight must stabilize. Wet cellulose produces spongy, voided products when pressed.<sup id="ref6"><a href="#fn6">[6]</a></sup></li>
</ul>
<div class="warning-box">
<b>Moisture kills quality.</b> Steam from trapped water creates internal voids during hot pressing. Every batch must reach stable dry weight before advancing to Station 4. This check represents the single most important quality gate in the entire factory.
</div>
<!-- ============================================================ -->
<!-- STATION 4: MIXING -->
<!-- ============================================================ -->
<span class="step-label">STATION 4</span>
<h3>Mixing</h3>
<p>
Dried cellulose gets combined with glycerol (plasticizer), optional citric acid (water resistance), &amp; optional natural pigments. Glycerol ratio determines product flexibility.
</p>
<h4>Glycerol Ratios</h4>
<table>
<thead>
<tr><th>Glycerol %</th><th>Result</th><th>Products</th></tr>
</thead>
<tbody>
<tr><td>15%</td><td>Rigid</td><td>Plates, trivets, plant labels, seed trays</td></tr>
<tr><td>20%</td><td>Semi-flexible</td><td>Bowls, cups, plant pots, lidded boxes</td></tr>
<tr><td>30%</td><td>Flexible</td><td>Lids, gaskets, protective wraps</td></tr>
</tbody>
</table>
<h4>Optional Additives</h4>
<ul>
<li><b>Citric acid (5% by weight):</b> improves water resistance 7-fold<sup id="ref4b"><a href="#fn4">[4]</a></sup></li>
<li><b>Natural pigments:</b> turmeric (yellow), spirulina (green), charcoal (black), beetroot powder (red)</li>
</ul>
<div class="recipe-box">
<b>Mixing process:</b><br>
1. Weigh dried cellulose<br>
2. Calculate glycerol by target ratio (e.g., 100g cellulose + 20g glycerol for 20% semi-flex)<br>
3. Add water to form a workable slurry<br>
4. Heat to 80C &amp; stir for 60 minutes until homogeneous<sup id="ref7"><a href="#fn7">[7]</a></sup><br>
5. Add citric acid &amp; pigments during last 10 minutes<br>
6. Spread on trays, dry at 60C until weight stabilizes<br>
7. Grind to breadcrumb consistency<br>
8. Output: mixed compound, ready for pressing
</div>
<!-- ============================================================ -->
<!-- STATION 5: PRESSING & MOLDING -->
<!-- ============================================================ -->
<span class="step-label">STATION 5</span>
<h3>Pressing &amp; Molding</h3>
<p>
Hot press transforms mixed compound into finished shapes. Mold rotation keeps the press running continuously: while one mold cures, another gets loaded, a third cools, a fourth gets demolded.
</p>
<figure class="diagram">
<img src="img/pressing-station.svg" alt="Mold rotation cycle: load, cure, cool, demold">
<figcaption>mold rotation enables 4-6 press cycles per day per mold set.</figcaption>
</figure>
<h4>Product Mold Catalog</h4>
<table>
<thead>
<tr><th>Product</th><th>Mold Type</th><th>Temp (C)</th><th>Pressure</th><th>Time</th><th>Weight</th></tr>
</thead>
<tbody>
<tr><td>Bowl (15 cm)</td><td>Two-part concave</td><td>160</td><td>Medium</td><td>20 min</td><td>80g</td></tr>
<tr><td>Plate (22 cm)</td><td>Flat with rim</td><td>150</td><td>High</td><td>15 min</td><td>120g</td></tr>
<tr><td>Cup (250 mL)</td><td>Two-part cylinder</td><td>170</td><td>Medium</td><td>20 min</td><td>60g</td></tr>
<tr><td>Trivet (18 cm)</td><td>Flat solid</td><td>180</td><td>High</td><td>25 min</td><td>150g</td></tr>
<tr><td>Plant pot (12 cm)</td><td>Two-part tapered</td><td>160</td><td>Medium</td><td>20 min</td><td>90g</td></tr>
<tr><td>Seed tray (30x20 cm)</td><td>Multi-cavity</td><td>170</td><td>High</td><td>25 min</td><td>200g</td></tr>
<tr><td>Lidded box (15 cm)</td><td>Three-part (base+lid+walls)</td><td>180</td><td>High</td><td>30 min</td><td>180g</td></tr>
<tr><td>Desk organizer</td><td>Multi-compartment</td><td>180</td><td>High</td><td>30 min</td><td>160g</td></tr>
</tbody>
</table>
<div class="recipe-box">
<b>Press cycle:</b><br>
1. Coat mold interior with thin vegetable oil layer<br>
2. Fill with dry compound, compress lightly by hand, add lid<br>
3. Load into hot press at target temperature<br>
4. Apply full pressure &amp; hold for target time<br>
5. Release pressure<br>
6. Remove mold, set on cooling rack<br>
7. Slow cool (minimum 30 minutes, longer for thick products)<br>
8. Demold when cool to touch<br>
9. Clean mold &amp; return to loading station
</div>
<!-- ============================================================ -->
<!-- STATION 6: FINISHING -->
<!-- ============================================================ -->
<span class="step-label">STATION 6</span>
<h3>Finishing</h3>
<p>
Final quality gate before products leave the factory. Three substations run in sequence.
</p>
<h4>Trimming</h4>
<ul>
<li>Remove flash (excess material squeezed from mold edges)</li>
<li>Sand any rough surfaces or mold lines</li>
<li>File edges smooth</li>
</ul>
<h4>Inspection</h4>
<table>
<thead>
<tr><th>Check</th><th>Pass</th><th>Fail (regrind)</th></tr>
</thead>
<tbody>
<tr><td>Surface</td><td>Smooth, uniform color</td><td>Bubbled, porous, discolored</td></tr>
<tr><td>Sound (tap test)</td><td>Solid "click"</td><td>Hollow "thud" (internal voids)</td></tr>
<tr><td>Flex</td><td>Appropriate for glycerol ratio</td><td>Brittle cracks or too soft</td></tr>
<tr><td>Weight</td><td>Within 10% of target</td><td>Under (voids) or over (wet)</td></tr>
<tr><td>Water drop</td><td>Beads or absorbs slowly</td><td>Absorbs instantly (needs more citric acid)</td></tr>
</tbody>
</table>
<p>
Failed products get reground &amp; returned to Station 4 for remixing. Nothing gets wasted.
</p>
<h4>Stamping</h4>
<ul>
<li>Production date (month/year)</li>
<li>Fiber source (H = hemp, N = nettle, W = wood, or combo)</li>
<li>Compost instructions: "HOT COMPOST 60C+ ONLY"</li>
<li>Hub identifier code</li>
</ul>
<!-- ============================================================ -->
<!-- STATION 7: COMPOST DEMO -->
<!-- ============================================================ -->
<span class="step-label">STATION 7</span>
<h3>Compost Demo Station</h3>
<p>
Display, not production. Shows customers &amp; visitors exactly what happens to these products at end of life. A maintained hot compost bin (60-70C) contains products at various stages of decomposition.
</p>
<div class="honest-box">
<b>Composting requires specific conditions.</b> These products biodegrade ONLY in hot aerobic compost reaching 60-70C for sustained periods. They do NOT break down in cold compost piles, landfills, waterways, or soil burial at ambient temperature. "Compostable" means compostable under controlled thermophilic conditions, not "throw anywhere &amp; it vanishes."
</div>
<h4>Decomposition Timeline (Hot Aerobic Compost, 60-70C)</h4>
<table>
<thead>
<tr><th>Week</th><th>Observation</th></tr>
</thead>
<tbody>
<tr><td>0-2</td><td>No visible change. Product retains shape &amp; strength.</td></tr>
<tr><td>2-4</td><td>Surface softening begins. Color shifts darker.</td></tr>
<tr><td>4-8</td><td>Product deforms under compost weight. Surface texture becomes rough.</td></tr>
<tr><td>8-12</td><td>Fragmentation begins. Product breaks into large pieces when handled.</td></tr>
<tr><td>12-16</td><td>Pieces fragment further. Material becomes indistinguishable from surrounding compost.</td></tr>
<tr><td>16-24</td><td>Full decomposition. Only cellulose fibers remain, fully integrated into compost.</td></tr>
</tbody>
</table>
<div class="warning-box">
<b>NOT cold pile. NOT landfill. NOT water.</b> A cold backyard compost pile rarely exceeds 40C. These products survive cold piles indefinitely (which counts as a feature during their useful life, not a composting failure). Direct customers to municipal hot compost facilities or dedicated thermophilic composting setups.
</div>
<!-- ============================================================ -->
<!-- PRODUCT CATALOG -->
<!-- ============================================================ -->
<span class="step-label">PRODUCTS</span>
<h3>Product Catalog</h3>
<figure class="diagram">
<img src="img/product-catalog.svg" alt="Three product categories: kitchen, garden, storage">
<figcaption>all products share the same base material. glycerol ratio &amp; mold shape create variety.</figcaption>
</figure>
<h4>Kitchen &amp; Dining</h4>
<table>
<thead>
<tr><th>Product</th><th>Dimensions</th><th>Weight</th><th>Glycerol</th><th>Lifespan</th><th>Care</th></tr>
</thead>
<tbody>
<tr><td>Bowl</td><td>15 cm diameter, 7 cm deep</td><td>80g</td><td>20%</td><td>3-5 years</td><td>Hand wash, dry promptly</td></tr>
<tr><td>Plate</td><td>22 cm diameter</td><td>120g</td><td>15%</td><td>3-5 years</td><td>Hand wash, dry promptly</td></tr>
<tr><td>Cup</td><td>250 mL, 9 cm tall</td><td>60g</td><td>20%</td><td>2-3 years</td><td>Hand wash, no hot liquids above 80C</td></tr>
<tr><td>Trivet</td><td>18 cm diameter, 1 cm thick</td><td>150g</td><td>15%</td><td>5+ years</td><td>Wipe clean</td></tr>
</tbody>
</table>
<h4>Garden &amp; Growing</h4>
<table>
<thead>
<tr><th>Product</th><th>Dimensions</th><th>Weight</th><th>Glycerol</th><th>Lifespan</th><th>Care</th></tr>
</thead>
<tbody>
<tr><td>Plant pot</td><td>10-15 cm diameter</td><td>90g</td><td>15%</td><td>2-3 seasons outdoors</td><td>None needed (degrades slowly in soil contact)</td></tr>
<tr><td>Seed tray</td><td>30x20 cm, 6 cells</td><td>200g</td><td>15%</td><td>3-5 seasons</td><td>Rinse between uses, dry before storing</td></tr>
<tr><td>Plant label</td><td>12x3 cm</td><td>10g</td><td>15%</td><td>1-2 seasons</td><td>Write with pencil (survives weathering)</td></tr>
</tbody>
</table>
<h4>Storage &amp; Organization</h4>
<table>
<thead>
<tr><th>Product</th><th>Dimensions</th><th>Weight</th><th>Glycerol</th><th>Lifespan</th><th>Care</th></tr>
</thead>
<tbody>
<tr><td>Lidded box</td><td>15x15x8 cm</td><td>180g</td><td>20%</td><td>5+ years</td><td>Wipe clean, keep dry</td></tr>
<tr><td>Desk organizer</td><td>25x10x8 cm</td><td>160g</td><td>15%</td><td>5+ years</td><td>Wipe clean</td></tr>
</tbody>
</table>
<div class="warning-box">
<b>Dishwasher temperatures above 60C soften products.</b> Hand wash only. Products tolerate brief water contact (washing, rain) but should not soak overnight. Prolonged hot water exposure reverses the crosslinking that provides rigidity.
</div>
<!-- ============================================================ -->
<!-- FACTORY ECONOMICS -->
<!-- ============================================================ -->
<span class="step-label">ECONOMICS</span>
<h3>Factory Economics</h3>
<h4>Throughput</h4>
<table>
<thead>
<tr><th>Metric</th><th>Daily</th><th>Weekly (5 days)</th><th>Annual (250 days)</th></tr>
</thead>
<tbody>
<tr><td>Fiber processed</td><td>20-30 kg</td><td>100-150 kg</td><td>5,000-7,500 kg</td></tr>
<tr><td>Products pressed</td><td>40-80 pieces</td><td>200-400 pieces</td><td>10,000-20,000 pieces</td></tr>
<tr><td>Revenue (at $5-15 avg)</td><td>$200-1,200</td><td>$1,000-6,000</td><td>$50,000-300,000</td></tr>
</tbody>
</table>
<h4>Equipment Startup Costs</h4>
<table>
<thead>
<tr><th>Item</th><th>Minimum (used/DIY)</th><th>Mid-range</th><th>Professional</th></tr>
</thead>
<tbody>
<tr><td>Decorticator (hand-crank)</td><td>$500</td><td>$2,000</td><td>$8,000</td></tr>
<tr><td>Fiber chopper</td><td>$200</td><td>$800</td><td>$3,000</td></tr>
<tr><td>Retting tanks (3-4)</td><td>$300</td><td>$1,000</td><td>$4,000</td></tr>
<tr><td>Reaction vessels (3-4)</td><td>$600</td><td>$2,500</td><td>$10,000</td></tr>
<tr><td>Filtration &amp; wash line</td><td>$400</td><td>$1,500</td><td>$6,000</td></tr>
<tr><td>Convection dryer</td><td>$800</td><td>$3,000</td><td>$12,000</td></tr>
<tr><td>Heated mixer</td><td>$300</td><td>$1,200</td><td>$5,000</td></tr>
<tr><td>Hot press (hydraulic)</td><td>$2,000</td><td>$8,000</td><td>$25,000</td></tr>
<tr><td>Mold sets (8 products)</td><td>$1,500</td><td>$4,000</td><td>$12,000</td></tr>
<tr><td>Finishing station</td><td>$200</td><td>$500</td><td>$2,000</td></tr>
<tr><td>Safety equipment</td><td>$300</td><td>$500</td><td>$1,000</td></tr>
<tr><td>Workspace setup</td><td>$5,000</td><td>$10,000</td><td>$25,000</td></tr>
<tr><td><b>Total</b></td><td><b>$12,100</b></td><td><b>$35,000</b></td><td><b>$113,000</b></td></tr>
</tbody>
</table>
<h4>Labor</h4>
<ul>
<li><b>Minimum crew:</b> 2 people run all 6 production stations</li>
<li><b>Comfortable crew:</b> 3 people (fiber prep, chemistry, pressing)</li>
<li><b>Training time:</b> 2-4 weeks from novice to independent operation</li>
</ul>
<!-- ============================================================ -->
<!-- DISTRIBUTED HUB MODEL -->
<!-- ============================================================ -->
<span class="step-label">HUBS</span>
<h3>Distributed Hub Model</h3>
<p>
One factory proves the concept. Many factories change material culture. Each hub adapts fiber sources to local ecology &amp; product mix to local demand while following a standardized process for quality consistency.
</p>
<figure class="diagram">
<img src="img/distributed-hub.svg" alt="Hub replication model: local fiber, standardized process, local products">
<figcaption>each hub sources locally, processes consistently, sells locally.</figcaption>
</figure>
<h4>Hub Specification</h4>
<table>
<thead>
<tr><th>Component</th><th>Standardized</th><th>Localized</th></tr>
</thead>
<tbody>
<tr><td>Equipment</td><td>Same specs, same layout</td><td>Sourced from local suppliers where possible</td></tr>
<tr><td>Recipes</td><td>Same ratios, temps, times</td><td>Adjusted for local fiber cellulose content</td></tr>
<tr><td>Quality checks</td><td>Same inspection criteria</td><td>Same pass/fail thresholds</td></tr>
<tr><td>Fiber sources</td><td>Same prep standards</td><td>Whatever grows locally (hemp, nettle, kenaf, jute, wood)</td></tr>
<tr><td>Products</td><td>Same mold designs available</td><td>Hub selects product mix based on local demand</td></tr>
<tr><td>Pricing</td><td>Cost-plus formula</td><td>Adjusted to local purchasing power</td></tr>
<tr><td>Training</td><td>Same curriculum &amp; certification</td><td>Delivered in local language by local trainers</td></tr>
<tr><td>Branding</td><td>Shared quality mark</td><td>Hub name &amp; local identity</td></tr>
</tbody>
</table>
<div class="recipe-box">
<b>Replication Checklist</b><br><br>
&#9744; Identify local fiber sources (minimum 2 for supply resilience)<br>
&#9744; Secure workspace: 80-150 m2, ventilated, water access, 3-phase power<br>
&#9744; Source or build equipment (see startup cost table)<br>
&#9744; Recruit &amp; train crew of 2-3 people (2-4 week training program)<br>
&#9744; Run 50 test batches before selling (refine recipes for local fiber)<br>
&#9744; Establish local fiber supply agreements with farmers or foragers<br>
&#9744; Set up composting partnership (municipal or dedicated facility)<br>
&#9744; Launch with 3-4 products, expand based on demand<br>
&#9744; Document local adaptations &amp; share with hub network
</div>
<!-- ============================================================ -->
<!-- HONEST SUMMARY -->
<!-- ============================================================ -->
<hr>
<h3>Honest Summary</h3>
<p>
A bioplastic factory at community scale requires real investment ($12k-113k), real labor (2-3 full-time people), &amp; real fiber supply chains. Products compete on durability &amp; compostability, not on price. A bowl that lasts 5 years &amp; composts afterward occupies a different market than a $1 petroleum plastic bowl that persists for centuries.
</p>
<p>
The distributed hub model works only if each hub achieves consistent quality. Standardized recipes &amp; inspection criteria make that possible. Local fiber sourcing makes each hub resilient to supply disruption. The goal: dozens of hubs producing everyday objects from local plant fiber, each adapted to its ecology &amp; economy.
</p>
<p>
None of this replaces reducing consumption. Using fewer things remains better than producing more compostable things. But for everyday objects that communities need regardless, growing the material locally &amp; composting it locally closes a cycle that petroleum never can.
</p>
<!-- ============================================================ -->
<!-- SOURCES -->
<!-- ============================================================ -->
<hr>
<h3>Sources</h3>
<div class="footnotes">
<ol>
<li id="fn1">Bodros &amp; Baley (2008), "Study of the tensile properties of stinging nettle fibres (<i>Urtica dioica</i>)," <i>Materials Letters</i>. Nettle bast fiber composition &amp; mechanical properties. <a href="#ref1">&#8617;</a></li>
<li id="fn2">Rowell et al. (2005), "Cell Wall Chemistry," in <i>Handbook of Wood Chemistry and Wood Composites</i>. Hardwood cellulose content ranges 40-50%. <a href="#ref2">&#8617;</a></li>
<li id="fn3">Dhakal et al. (2022), <a href="https://pmc.ncbi.nlm.nih.gov/articles/PMC9182753/" target="_blank">PMC 9182753</a>. 5% NaOH treatment of hemp at room temperature for 1-4 hours. Gentlest effective protocol. <a href="#ref3">&#8617;</a></li>
<li id="fn4">Beluns et al. (2023), "Sustainable hemp-based bioplastics with tunable properties via reversible thermal crosslinking of cellulose," <a href="https://pubmed.ncbi.nlm.nih.gov/37245763/" target="_blank"><i>Int J Biol Macromol</i></a>. Citric acid crosslinking at 140C, up to 70 MPa tensile strength, 7-fold water uptake reduction. <a href="#ref4">&#8617;</a></li>
<li id="fn5">Geankoplis (2003), <i>Transport Processes and Separation Process Principles</i>. Counter-current washing principles &amp; water reduction factors. <a href="#ref5">&#8617;</a></li>
<li id="fn6">Robert Murray-Smith, <a href="https://www.youtube.com/watch?v=REqqJOaE30U" target="_blank">"Hot Press Molding Hemp Casein Plastic"</a> (2020). On moisture &amp; pressing: "if it's wet and you heat it and press it, you'll press off a lot of steam and it won't form properly." <a href="#ref6">&#8617;</a></li>
<li id="fn7"><a href="https://bio-protocol.org/exchange/minidetail?id=21294617&type=30" target="_blank">Bio-protocol</a> (2025). Hemp cellulose + glycerol + NaOH, stirred 60 min at 80C, hot pressed at 240C for 10 min. <a href="#ref7">&#8617;</a></li>
</ol>
</div>
<hr>
<p><a href="/hemp-bioplastic/process/">&#8592; recipe (full process)</a> · <a href="/hemp-bioplastic/process/homeschool/">homeschool recipe</a> · <a href="/hemp-bioplastic/">hemp bioplastic overview</a> · <a href="/single-use-plastics/">single-use plastics</a> · <a href="/hemp-bioplastic/process/factory/password">change password</a></p>
</main>
<footer>
<center><a href="/software/" class="unturf-brand">unturf. software</a></center>
<center>Russell Ballestrini | <span class="unturf-brand">unturf.</span> &copy; 2025</center>
</footer>
<script src="/js/diagram-zoom.js"></script>
<script src="https://uncloseai.com/uncloseai.js" type="module"></script>
</body>
</html>

View file

@ -1,522 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>homeschool hemp bioplastic &#8212; unturf.</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="theme-color" content="#5871ad">
<meta charset="utf-8">
<link rel="stylesheet" href="/css/chunkfive/stylesheet.css" type="text/css" charset="utf-8" />
<link rel="stylesheet" href="/css/pico.classless.min.css">
<link rel="stylesheet" href="/css/unturf.css">
</head>
<body>
<main class="content-wide">
<center><a href="/"><h1 class="site-title">unturf.</h1></a></center>
<center><h3>grow food not lawn</h3></center>
<center class="nav-links"><small><a href="/let-us-define-a-permacomputer/">manifesto</a> · <a href="/eight-forms-of-capital/">eight forms of capital</a> · <a href="/single-use-plastics/">single-use plastics</a> · <a href="/hemp-bioplastic/">hemp bioplastic</a> · <a href="/hemp-bioplastic/process/">recipe</a> · <a href="/hemp-bioplastic/process/homeschool/" aria-current="page">homeschool</a> · <a href="/software/">free software</a></small></center>
<h2>Homeschool Hemp Bioplastic</h2>
<p>
Three age-appropriate recipes for turning hemp fiber into a physical object you take home. Each recipe uses a different approach from <a href="/hemp-bioplastic/process/">a full process guide</a>, broken into daily sessions like a crafting progression. Each day has clear inputs, a process, & an output. One day's output becomes the next day's input.
</p>
<div class="recipe-box">
<b>All three tiers run on the same 4-day schedule.</b> Mixed-age groups work side by side, each at their own level.<br><br>
<b>Sprouts</b> (ages 3-7): explore, measure, mix & mold, demold & decorate. Adult handles stove & oven only.<br>
<b>Shoots</b> (ages 8-12): gather & chop, make hemp paper, crosslink & cure, wash & cut. Adult handles oven only.<br>
<b>Stalks</b> (ages 13-18): safety & gather, extract cellulose, dry & mix, press & demold. Students handle all chemistry. Adult supervises & handles oven.
</div>
<h3>4-Day Overview</h3>
<table>
<thead>
<tr><th>Day</th><th>Theme</th><th>Sprouts (3-7)</th><th>Shoots (8-12)</th><th>Stalks (13-18)</th></tr>
</thead>
<tbody>
<tr><td>1</td><td>Explore & Gather</td><td>Touch, smell, explore hemp fiber. Collect ingredients.</td><td>Examine fiber. Chop & measure crosslinking solution.</td><td>Safety briefing. Chop fiber & weigh chemicals.</td></tr>
<tr><td>2</td><td>Prepare</td><td>Weigh & bag dry ingredients. Tear fiber. Pick molds.</td><td>Soak fiber. Spread & press into hemp paper.</td><td>Dissolve NaOH, soak 2 hours, wash to pH 7.</td></tr>
<tr><td>3</td><td>Transform</td><td>Cook bioresin (adult), mix fiber, press into molds, oven dry.</td><td>Apply crosslinking solution. Press. Oven cure at 140C.</td><td>Oven dry cellulose. Weigh. Mix with glycerol.</td></tr>
<tr><td>4</td><td>Finish</td><td>Demold. Decorate. Compare raw fiber to finished coaster.</td><td>Wash cured sheet. Cut shapes. Compare all samples.</td><td>Pack mold. Hot press. Demold. Compare all samples.</td></tr>
</tbody>
</table>
<!-- ============================================================ -->
<!-- MATERIALS -->
<!-- ============================================================ -->
<span class="step-label">MATERIALS</span>
<h3>What You Need</h3>
<p>
Quantities listed per student. Multiply by group size. All ingredients stay food-safe or classroom-safe for their respective age group.
</p>
<h4>Sprouts (ages 3-7)</h4>
<ul>
<li>10g hemp bast fiber (chopped short, ~1 cm pieces)</li>
<li>25g corn starch</li>
<li>5g dried seaweed (agar powder or carrageenan)</li>
<li>200 mL water</li>
<li>Small silicone mold or cookie cutter on parchment paper</li>
<li>Mixing bowl & spoon</li>
<li>Oven access (adult only)</li>
</ul>
<h4>Shoots (ages 8-12)</h4>
<ul>
<li>25g hemp bast fiber (chopped to 2-3 cm lengths)</li>
<li>15 mL lemon juice concentrate (citric acid source)</li>
<li>5g glycerol (available at pharmacies)</li>
<li>500 mL water</li>
<li>Flat screen or mesh (window screen works)</li>
<li>Two flat boards or heavy books for pressing</li>
<li>Baking sheet & parchment paper</li>
<li>Oven access (adult only at 140C)</li>
</ul>
<h4>Stalks (ages 13-18)</h4>
<ul>
<li>50g hemp bast fiber (chopped to 2-3 cm lengths)</li>
<li>50g NaOH pellets (sodium hydroxide / lye)</li>
<li>1 liter water</li>
<li>10 mL glycerol</li>
<li>Stainless steel pot (NOT aluminum)</li>
<li>pH strips</li>
<li>Metal mold or soap mold</li>
<li>Oven or heat press access</li>
<li>Chemical splash goggles (not safety glasses)</li>
<li>Nitrile gloves, elbow length</li>
<li>2% vinegar solution for spill neutralization</li>
</ul>
<!-- ============================================================ -->
<!-- SPROUTS: AGES 3-7 -->
<!-- ============================================================ -->
<span class="step-label">SPROUTS</span>
<h3>Ages 3-7: Hemp Fiber Coaster (4 days)</h3>
<p>
Based on <a href="/hemp-bioplastic/process/#step-7">Approach B (fiber + bioresin composite)</a>. Kids mix hemp fiber into a seaweed & corn starch bioresin, pour into molds, & take home a decorated coaster or ornament. Adult handles stove & oven only. Short daily sessions match young attention spans.
</p>
<figure class="diagram">
<img src="../img/three-approaches.svg" alt="Three approaches to hemp bioplastic: this recipe uses Approach B, fiber + bioresin">
<figcaption>Sprouts use Approach B: fiber + bioresin composite. no chemicals beyond kitchen ingredients.</figcaption>
</figure>
<h4>Day 1: Explore & Gather (~30 minutes)</h4>
<div class="recipe-box">
<b>Inputs:</b> raw hemp fiber, corn starch, agar powder, pictures or diagram of hemp plant<br><br>
<b>Process:</b><br>
1. Pass around raw hemp fiber. Touch it, pull strands apart, smell it. Compare thick bundles to thin single threads. (~10 min, kids active)<br>
2. Talk about where hemp comes from: a plant stalk taller than most adults. Show <a href="../img/plant-anatomy.svg">plant anatomy diagram</a>. Point to the stalk bark where fiber lives.<br>
3. Touch & smell each ingredient: agar powder (from seaweed in the ocean), corn starch (from corn). Taste a tiny pinch of corn starch. (~5 min, kids active)<br>
4. Collect all ingredients into a basket or tray. Label them together. (~5 min, kids active)<br>
5. Preview: "Over 4 days, we turn this scratchy fiber into a smooth, hard coaster. Tomorrow we measure everything." (~5 min, everyone)<br><br>
<b>Output:</b> ingredient basket gathered & labeled. Kids familiar with raw materials.<br><br>
<b>Hands-on:</b> ~25 minutes. All sensory exploration. No measuring yet.
</div>
<h4>Day 2: Measure & Tear (~30 minutes)</h4>
<div class="recipe-box">
<b>Inputs:</b> ingredient basket from Day 1, kitchen scale, bags or bowls, jar with lid, molds<br><br>
<b>Process:</b><br>
1. Kids weigh 5g agar powder on kitchen scale & pour into a labeled bag or bowl. (~5 min, kids active, adult helps youngest read scale)<br>
2. Kids weigh 25g corn starch & pour into same bag. (~5 min, kids active)<br>
3. Kids measure 200 mL water into a jar with a lid. (~3 min, kids active)<br>
4. Kids tear 10g hemp fiber into small pieces (~1 cm). Tearing by hand works fine & keeps little fingers busy. Bag it. (~10 min, kids active)<br>
5. Set out molds. Kids pick which shape they want. (~5 min, kids active)<br><br>
<b>Output:</b> labeled bag of dry mix (agar + starch), bag of torn fiber, jar of measured water, molds chosen. Everything staged for Day 3.<br><br>
<b>Hands-on:</b> ~25 minutes. All kid labor.
</div>
<h4>Day 3: Mix & Mold (~1 hour)</h4>
<div class="recipe-box">
<b>Inputs:</b> dry mix bag, fiber bag, & water jar from Day 2, saucepan, stove, oven, parchment paper, molds<br><br>
<b>Process:</b><br>
1. Kids pour dry mix (agar + starch) from Day 2 bag into saucepan. Kids pour in measured water. Kids stir until no clumps remain. (~5 min, kids active)<br>
2. Adult moves saucepan to stove. Heat on medium, stirring continuously. Kids observe from safe distance as mixture thickens into smooth, viscous liquid (like thick gravy). ~8 minutes. Adult removes from heat. Cool ~5 minutes until warm but safe to touch. (~13 min, adult handles stove, kids observe)<br>
3. Kids add torn fiber from Day 2 bag into warm bioresin. Every kid gets a turn stirring until fiber spreads evenly. Mixture should feel like thick oatmeal. (~10 min, kids active)<br>
4. Kids press mixture into molds on parchment paper. Pack firmly with fingers or back of a spoon. Fill to ~5mm for coasters, ~3mm for ornaments. For ornaments, kids poke a hole with a toothpick (for hanging string later). (~15 min, kids active)<br>
5. Adult places molds in oven at 150C for 20 minutes. <b>BREAK:</b> snack, wash hands, clean workspace. (~20 min, oven runs unattended)<br>
6. Adult removes molds. Set aside to cool completely. Do NOT demold today. Cooling overnight gives a harder result. (~2 min, adult handles oven)<br><br>
<b>Output:</b> coasters/ornaments in molds, cooling overnight. Demolding happens on Day 4.<br><br>
<b>Hands-on:</b> ~30 minutes kid labor out of 1 hour. Adult touches stove (~8 min) & oven (~5 min) only.<br>
<b>Attention span note:</b> longest continuous stretch runs ~15 minutes (molding). For ages 3-5, split molding into two rounds with a wiggle break between.
</div>
<h4>Day 4: Demold & Decorate (~30 minutes)</h4>
<div class="recipe-box">
<b>Inputs:</b> cooled molds from Day 3, raw fiber sample from Day 1, acrylic paint or markers (optional), string for ornaments (optional)<br><br>
<b>Process:</b><br>
1. Kids demold coasters & ornaments. Gently flex silicone mold edges & push from bottom. (~5 min, kids active)<br>
2. Compare: pass around a piece of raw fiber from Day 1 & the finished coaster side by side. Feel the difference. Discuss: scratchy & floppy turned into smooth & hard. What happened? The starch & seaweed glued the fibers together, & heat locked everything in place. (~5 min, everyone)<br>
3. Optional: kids decorate with acrylic paint, markers, or stamps. Thread string through ornament holes. (~15 min, kids active)<br>
4. Pack take-home bag: finished coaster or ornaments + a piece of raw hemp fiber to keep for comparison. (~5 min, kids active)<br><br>
<b>Output:</b> 1 coaster (~8 cm diameter) or 2-3 small ornaments per student, decorated & ready to take home.<br><br>
<b>Hands-on:</b> ~25 minutes. All kid labor. No adult needed.
</div>
<p>
<b>What happens inside:</b> Agar (from seaweed) forms a gel that traps starch & fiber together. Heat drives off water & sets the starch, locking everything into a rigid shape. Hemp fiber adds strength, like rebar in concrete.
</p>
<!-- ============================================================ -->
<!-- SHOOTS: AGES 8-12 -->
<!-- ============================================================ -->
<span class="step-label">SHOOTS</span>
<h3>Ages 8-12: Citric Acid Tiles (4 days)</h3>
<p>
Based on <a href="/hemp-bioplastic/process/#step-8">Approach C (citric acid crosslinking)</a>. Students soak hemp fiber in a citric acid solution, press flat, & cure in an oven. Citric acid comes from lemon juice concentrate, keeping everything food-safe. Result: rigid tiles, bookmarks, or plant labels.
</p>
<figure class="diagram">
<img src="../img/three-approaches.svg" alt="Three approaches to hemp bioplastic: this recipe uses Approach C, citric acid crosslinking">
<figcaption>Shoots use Approach C: citric acid crosslinking. strongest result, safest chemistry.</figcaption>
</figure>
<h4>Day 1: Gather & Chop (~45 minutes)</h4>
<div class="recipe-box">
<b>Inputs:</b> raw hemp fiber, lemon juice concentrate, glycerol, scissors, kitchen scale<br><br>
<b>Process:</b><br>
1. Examine raw hemp fiber. Pull apart a strand. Notice how fibers separate into thin threads. Discuss where it comes from (stalk bark, not leaves or seeds). (~5 min, everyone)<br>
2. Students chop 25g hemp fiber to 2-3 cm lengths with scissors. Bag it. (~15 min, students active)<br>
3. Students measure 15 mL lemon juice concentrate into a small jar. Weigh 5g glycerol, add to same jar. Stir. Cap it. Label "crosslinking solution." (~10 min, students active)<br>
4. Set aside a small sample of raw unchopped fiber for comparison on Day 4.<br>
5. Review the 4-day plan: chop → paper → crosslink → finish. Each day's output feeds the next day. (~5 min, everyone)<br><br>
<b>Output:</b> bag of chopped fiber + jar of crosslinking solution + raw fiber sample. Stored until Day 2.<br><br>
<b>Hands-on:</b> ~35 minutes. All student labor. No adult needed (all ingredients food-safe).
</div>
<h4>Day 2: Make Hemp Paper (~45 minutes)</h4>
<div class="recipe-box">
<b>Inputs:</b> chopped fiber from Day 1, 500 mL water, flat screen or mesh, two flat boards, bowl<br><br>
<b>Process:</b><br>
1. Students pour chopped fiber into a bowl. Measure & add 500 mL water. Stir. Start a 30-minute soak. (~5 min, students active)<br>
2. <b>BREAK (25 min).</b> Fiber soaks unattended. Snack, sketch the process so far, or discuss hemp plant anatomy.<br>
3. Students spread soaked fiber evenly onto a flat screen or mesh. Spread thin & even, like making a pancake from fiber. (~10 min, students active)<br>
4. Students press flat with a board. Drain for 5 minutes. Set aside a small piece of this untreated hemp paper as a comparison sample for Day 4. (~5 min, students active)<br><br>
<b>Output:</b> rough sheet of hemp paper + untreated paper sample. Store paper flat between sheets of parchment until Day 3.<br><br>
<b>Hands-on:</b> ~20 minutes. All student labor. No adult needed.
</div>
<h4>Day 3: Crosslink & Cure (~1 hour 30 minutes)</h4>
<div class="recipe-box">
<b>Inputs:</b> hemp paper from Day 2, crosslinking solution from Day 1, parchment paper, baking sheet, boards/books, brick or cast iron pan, oven<br><br>
<b>Process:</b><br>
1. Students pour crosslinking solution from Day 1 jar over hemp paper sheet. Let soak 15 minutes. Flip & soak another 15 minutes. Solution should saturate through entire sheet. (~5 min active + 25 min soak, students active then wait)<br>
2. <b>Optional BREAK</b> during soak. Good time for science notebook entry: what do you predict will happen when we heat it?<br>
3. Students place soaked sheet between two pieces of parchment paper. Press between two flat boards. Stack heavy books on top or clamp with binder clips. Press 20 minutes. (~5 min active + 15 min wait, students active then wait)<br>
4. Adult transfers pressed sheet (still between parchment) onto baking sheet. Places brick or cast iron pan on top. Oven at 140C for 45 minutes. Heat activates citric acid crosslinking, bonding cellulose chains together. (~2 min, adult handles oven)<br>
5. <b>BREAK (45 min).</b> Oven cures unattended. Outdoor free time, journaling, or related lesson on bioplastic vs. petroleum.<br>
6. Adult removes from oven. Cool 10 minutes. Students place cured sheet in a bowl of water to soak overnight. This removes unreacted citric acid & glycerol. (~10 min, students active)<br><br>
<b>Output:</b> cured crosslinked sheet soaking in water overnight. Washing completes before Day 4.<br><br>
<b>Hands-on:</b> ~25 minutes student labor out of 1.5 hours. Adult touches oven only (~5 min).
</div>
<h4>Day 4: Wash, Cut & Compare (~45 minutes)</h4>
<div class="recipe-box">
<b>Inputs:</b> soaked cured sheet from Day 3, raw fiber sample from Day 1, untreated paper sample from Day 2, scissors, towel<br><br>
<b>Process:</b><br>
1. Students remove cured sheet from water. Pat dry with towel. Feel the difference: stiffer, smoother, more plastic than the untreated paper from Day 2. (~5 min, students active)<br>
2. Students cut tiles, bookmarks, or plant labels from cured sheet using scissors. Adult supervises if using a craft knife. (~15 min, students active)<br>
3. Compare all three samples side by side: raw fiber (Day 1), untreated hemp paper (Day 2), cured crosslinked tile (today). Pass them around. Bend each one. Feel the difference in stiffness. Drop water on each to compare absorption. (~10 min, everyone)<br>
4. Discussion: what changed at each step? Why did lemon juice & heat turn floppy paper into rigid tile? Pack take-home bag. (~10 min, everyone)<br><br>
<b>Output:</b> 2-3 tiles (~5x8 cm), or 3-4 bookmarks, or 4-5 plant labels per student.<br><br>
<b>Hands-on:</b> ~30 minutes. All student labor. No adult needed (unless craft knife).
</div>
<p>
<b>What happens inside:</b> Citric acid (from lemon juice) forms chemical bridges between cellulose chains in hemp fiber when heated.<sup id="ref1"><a href="#fn1">[1]</a></sup> These crosslinks make the material rigid, water-resistant, & strong. Glycerol acts as a plasticizer, preventing the result from becoming too brittle. Same chemistry works at industrial scale to produce material reaching 70 MPa tensile strength.
</p>
<!-- ============================================================ -->
<!-- STALKS: AGES 13-18 -->
<!-- ============================================================ -->
<span class="step-label">STALKS</span>
<h3>Ages 13-18: Cellulose Extraction & Pressed Disc (4 days)</h3>
<p>
Based on <a href="/hemp-bioplastic/process/#step-6">Protocol 2 (gentle cellulose extraction)</a>. Students perform a real alkaline treatment at room temperature using 5% NaOH, extract cellulose, mix with plasticizer, & press a bioplastic disc. Proper safety training required before handling chemicals.
</p>
<figure class="diagram">
<img src="../img/cellulose-extraction.svg" alt="Cellulose extraction process: prepare, alkali treat, wash, dry, press">
<figcaption>Stalks use Protocol 2: gentle 5% NaOH extraction at room temperature. no heating needed for extraction step.</figcaption>
</figure>
<h4>Day 1: Safety Training & Gather (~1 hour)</h4>
<div class="warning-box">
<b>Safety briefing (mandatory before touching any chemical).</b> Every student must:<br>
1. Wear chemical splash goggles (not safety glasses) for entire session on chemical days<br>
2. Wear elbow-length nitrile gloves whenever handling NaOH solution<br>
3. Know location of running water (within arm's reach)<br>
4. Know location of 2% vinegar neutralization bottle<br>
5. Understand: ALWAYS add NaOH pellets to water, NEVER water to NaOH<br>
6. Understand: if NaOH contacts skin, flush with running water for 15+ minutes, then notify adult immediately<br>
7. Work in a ventilated area (outdoors or near open windows)
</div>
<div class="recipe-box">
<b>Inputs:</b> hemp fiber, NaOH pellets, glycerol, pH strips, safety gear, scissors or grinder, kitchen scale, stainless steel pot<br><br>
<b>Process:</b><br>
1. Safety briefing: cover all 7 points above. Practice putting on goggles & gloves. Locate water source & vinegar bottle. Quiz each student before proceeding. (~20 min, everyone)<br>
2. Students chop 50g hemp bast fiber into 2-3 cm lengths. If a blender or coffee grinder stands available, grind to a coarse powder. Bag it. Set aside a small sample of raw fiber for Day 4 comparison. (~20 min, students active)<br>
3. Students weigh 50g NaOH pellets into a sealed, labeled container. Goggles & gloves on for this step. Discuss: NaOH absorbs moisture from air, so container stays sealed until Day 2. (~10 min, students active, adult supervises)<br>
4. Students measure 10 mL glycerol into a labeled jar. Review the 4-day plan: gather → extract → dry & mix → press. Each day's output feeds the next. (~10 min, students active)<br><br>
<b>Output:</b> bag of chopped fiber + sealed container of weighed NaOH + jar of glycerol + raw fiber sample + safety-trained students.<br><br>
<b>Hands-on:</b> ~40 minutes student labor. All students handle materials (goggles & gloves for NaOH weighing). Adult supervises NaOH step.
</div>
<h4>Day 2: Extract Cellulose (~3 hours with long soak break)</h4>
<div class="recipe-box">
<b>Inputs:</b> chopped fiber from Day 1, NaOH from Day 1, 1 liter water, stainless steel pot (NOT aluminum), pH strips, fine mesh strainer, goggles & gloves<br><br>
<b>Process:</b><br>
1. Goggles & gloves on. Students pour 1 liter of water into stainless steel pot. Students slowly add NaOH pellets from Day 1 container while stirring. Add in small amounts (10g at a time). Solution will warm as NaOH dissolves. This gives 5% NaOH by weight.<sup id="ref2"><a href="#fn2">[2]</a></sup> (~10 min, students active, adult supervises)<br>
2. Students add chopped fiber from Day 1 to NaOH solution. Stir to submerge all fiber. Start a 2-hour soak at room temperature. No heating needed. (~5 min, students active)<br>
3. <b>BREAK (2 hours).</b> Fiber soaks. Students stir every 30 minutes (gloves on, ~2 min each time). Use for lunch, chemistry lesson on pH & cellulose structure, or independent study. Observe: solution turns brown as lignin dissolves out of fiber.<br>
4. Students pour solution through fine mesh strainer (gloves on). Rinse fiber under running water. Rinse 4-6 times. Test wash water with pH strip after each rinse. Keep washing until pH reads 7 (neutral). This step matters: residual NaOH weakens the final product. Most satisfying hands-on stretch: students watch fiber change color rinse by rinse & track pH dropping toward neutral. (~30 min, students active, adult supervises)<br>
5. Squeeze excess water from fiber. Spread washed fiber on a tray or plate. Store in fridge overnight. (~5 min, students active)<br>
6. Clean chemical equipment. Students neutralize all NaOH waste with vinegar (pour slowly, stir, test pH). Verify pH 7 with strips before pouring down drain. (~15 min, students active, adult supervises)<br><br>
<b>Output:</b> washed cellulose fiber (wet, stored in fridge). NaOH waste neutralized & disposed.<br><br>
<b>Hands-on:</b> ~1 hour student labor out of 3 hours. Students handle all chemistry with goggles & gloves. Adult stays present during all NaOH steps but students perform every action.
</div>
<h4>Day 3: Dry & Mix (~1 hour 30 minutes)</h4>
<div class="recipe-box">
<b>Inputs:</b> wet cellulose from Day 2, glycerol from Day 1, baking sheet, oven, kitchen scale<br><br>
<b>Process:</b><br>
1. Students weigh wet cellulose on kitchen scale. Record weight. Spread fiber evenly on a baking sheet. (~5 min, students active)<br>
2. Adult loads oven at 80C. Dry for 1 hour, or until fiber feels completely dry. (~2 min, adult handles oven)<br>
3. <b>BREAK (55 min).</b> Fiber dries in oven. Good time for science notebook: draw the process so far, write observations about color change from Day 2, predict how much weight the fiber lost.<br>
4. Adult removes baking sheet. Students weigh dried fiber. Compare to wet weight from step 1 & original 50g from Day 1. Expect roughly 50-60% of starting weight (lost lignin & hemicellulose). Discuss: where did the missing weight go? (~10 min, students active)<br>
5. Students add 10 mL glycerol from Day 1 jar to dried cellulose. Add just enough water to form a thick paste. Stir thoroughly for 5 minutes. (~10 min, students active)<br>
6. Store cellulose paste in a sealed container overnight. Glycerol continues to absorb into fiber. (~2 min, students active)<br><br>
<b>Output:</b> cellulose paste (fiber + glycerol), sealed & ready for pressing on Day 4.<br><br>
<b>Hands-on:</b> ~30 minutes student labor out of 1.5 hours. Adult handles oven only (~5 min).
</div>
<h4>Day 4: Press & Demold (~1 hour + slow cool)</h4>
<div class="recipe-box">
<b>Inputs:</b> cellulose paste from Day 3, metal mold or soap mold, vegetable oil, baking sheet, oven, raw fiber sample from Day 1<br><br>
<b>Process:</b><br>
1. Students coat mold interior with thin layer of vegetable oil. Pack cellulose paste into mold firmly, pressing out air pockets. Place mold on baking sheet. (~10 min, students active)<br>
2. Adult loads oven at 150C. If a bench vise or C-clamps exist, students clamp mold for added pressure during heating. 30 minutes at temperature. (~2 min, adult handles oven)<br>
3. <b>BREAK (30 min).</b> Oven runs. Write lab report: document each day's inputs, process, & outputs. Compare raw fiber sample from Day 1 with a small bit of leftover cellulose paste. Predict what the pressed result will look & feel like.<br>
4. Adult turns oven off. Leave mold inside. Let cool slowly (1 hour minimum). Rapid cooling causes cracking. Session can end here; demold tomorrow or take mold home. (~2 min, adult handles oven)<br>
5. Once fully cool, students demold. If material sticks, place in freezer for 10 minutes, then try again. (~5 min, students active)<br>
6. Compare all samples side by side: raw fiber (Day 1), dried cellulose (Day 3), finished pressed disc (today). Discussion: what changed at each step? What role did NaOH play? What role did heat & pressure play? Pack take-home bag. (~10 min, everyone)<br><br>
<b>Output:</b> 1 pressed bioplastic disc (~7 cm diameter, ~5mm thick) or 1 small container per student.<br><br>
<b>Hands-on:</b> ~25 minutes student labor out of 1 hour (plus slow cool). Adult handles oven only (~5 min).
</div>
<p>
<b>What happens inside:</b> NaOH (lye) on Day 2 breaks hydrogen bonds in lignin & hemicellulose, dissolving them into solution while leaving cellulose chains intact.<sup id="ref3"><a href="#fn3">[3]</a></sup> Washing removes dissolved material. Glycerol molecules on Day 3 insert between cellulose chains, acting as a plasticizer that prevents brittleness. Heat & pressure on Day 4 force cellulose chains close together, forming new hydrogen bonds that lock shape.
</p>
<!-- ============================================================ -->
<!-- SAFETY NOTES -->
<!-- ============================================================ -->
<span class="step-label">SAFETY</span>
<h3>Safety Notes by Age Group</h3>
<h4>Sprouts (ages 3-7)</h4>
<div class="recipe-box">
<b>Adult handles:</b> stove & oven on Day 3 only. Nothing else requires adult hands across all 4 days.<br>
<b>Kids handle:</b> exploring (Day 1), all measuring & tearing (Day 2), stirring & molding (Day 3), demolding & decorating (Day 4).<br>
<b>Watch for:</b> kids putting fiber or starch mixture in mouths. All ingredients stay food-safe but taste terrible.<br>
<b>Allergens:</b> check for corn & seaweed allergies before Day 1.
</div>
<h4>Shoots (ages 8-12)</h4>
<div class="recipe-box">
<b>Adult handles:</b> oven on Day 3 only. Craft knife supervision on Day 4 if needed.<br>
<b>Students handle:</b> all chopping & measuring (Day 1), all soaking & paper-making (Day 2), all crosslinking & soaking (Day 3), all washing & cutting (Day 4). All solutions stay food-safe (lemon juice & glycerol).<br>
<b>Watch for:</b> lemon juice in eyes on Day 3 (stings but not dangerous). Keep a damp cloth nearby.<br>
<b>Allergens:</b> citrus sensitivity. Glycerol stays hypoallergenic.
</div>
<h4>Stalks (ages 13-18)</h4>
<div class="warning-box">
<b>Adult supervises all steps involving NaOH (Days 1-2).</b> Students perform every action; adult stays present & ready to intervene.<br>
<b>Students handle:</b> all chopping & weighing (Day 1), all chemistry & washing (Day 2), all mixing (Day 3), all molding (Day 4). Goggles & gloves on during chemical steps (Days 1-2).<br>
<b>NaOH at 5% concentration:</b> causes chemical burns on prolonged skin contact. Not immediately dangerous at brief contact but requires immediate washing. Much safer than 12-17.5% concentrations used in full extraction protocols.<br>
<b>Spill protocol:</b> pour 2% vinegar over spill to neutralize, then wipe with paper towels. For skin contact: flush with running water for 15+ minutes.<br>
<b>Waste disposal (end of Day 2):</b> neutralize all NaOH waste to pH 7 with vinegar before pouring down drain. Verify with pH strips.
</div>
<!-- ============================================================ -->
<!-- TROUBLESHOOTING -->
<!-- ============================================================ -->
<span class="step-label">TROUBLESHOOTING</span>
<h3>What Went Wrong?</h3>
<table>
<thead>
<tr><th>Problem</th><th>Cause</th><th>Fix</th></tr>
</thead>
<tbody>
<tr>
<td>Coaster crumbles apart (Sprouts)</td>
<td>Not enough bioresin, or oven too hot</td>
<td>Add more starch/agar mixture next time. Keep oven at 150C, not higher.</td>
</tr>
<tr>
<td>Coaster stays soft & bendy (Sprouts)</td>
<td>Too much water, not dried long enough</td>
<td>Return to oven for 10 more minutes. Pack molds more firmly next time.</td>
</tr>
<tr>
<td>Tile feels like paper, not plastic (Shoots)</td>
<td>Citric acid solution too dilute, or curing time too short</td>
<td>Use full-strength lemon juice concentrate, not diluted. Cure for full 45 minutes at 140C.</td>
</tr>
<tr>
<td>Tile warps during curing (Shoots)</td>
<td>Uneven thickness or uneven pressure</td>
<td>Press more evenly before curing. Use a flat weight that covers the entire sheet.</td>
</tr>
<tr>
<td>Disc has bubbles or spongy texture (Stalks)</td>
<td>Material not dry enough before pressing</td>
<td>Dry longer on Day 3. Weigh before & after: weight should stop changing. Steam from trapped water creates voids.<sup id="ref4"><a href="#fn4">[4]</a></sup></td>
</tr>
<tr>
<td>Disc cracks when cooling (Stalks)</td>
<td>Cooled too fast, or not enough glycerol</td>
<td>Let cool slowly inside oven on Day 4 (1 hour minimum). Increase glycerol to 15 mL on Day 3 next time.</td>
</tr>
<tr>
<td>Fiber still brown after washing (Stalks)</td>
<td>Lignin not fully dissolved</td>
<td>Soak longer in NaOH on Day 2 (up to 4 hours). Or accept the color: brown means some lignin remains, but the material still works.</td>
</tr>
<tr>
<td>pH won't reach 7 after washing (Stalks)</td>
<td>Need more rinse cycles</td>
<td>Keep washing on Day 2. Can take 6-8 rinses. Residual NaOH weakens the final product, so this step matters.</td>
</tr>
</tbody>
</table>
<!-- ============================================================ -->
<!-- TAKE HOME CHECKLIST -->
<!-- ============================================================ -->
<span class="step-label">TAKE HOME</span>
<h3>Take Home Checklist</h3>
<div class="recipe-box">
<b>Sprouts take home (Day 4):</b><br>
&#9744; 1 decorated hemp fiber coaster or 2-3 ornaments<br>
&#9744; A piece of raw hemp fiber to compare with finished product<br><br>
<b>Shoots take home (Day 4):</b><br>
&#9744; 2-3 citric acid tiles, bookmarks, or plant labels<br>
&#9744; Raw hemp fiber sample (saved Day 1)<br>
&#9744; Untreated hemp paper sample (saved Day 2)<br><br>
<b>Stalks take home (Day 4, plus slow cool):</b><br>
&#9744; 1 pressed bioplastic disc or container<br>
&#9744; Raw hemp fiber sample (saved Day 1)<br>
&#9744; Dried cellulose sample (saved Day 3)<br>
&#9744; pH strip showing final wash reached neutral (Day 2)
</div>
<!-- ============================================================ -->
<!-- SOURCES -->
<!-- ============================================================ -->
<hr>
<h3>Sources</h3>
<div class="footnotes">
<ol>
<li id="fn1">Beluns et al. (2023), "Sustainable hemp-based bioplastics with tunable properties via reversible thermal crosslinking of cellulose," <a href="https://pubmed.ncbi.nlm.nih.gov/37245763/" target="_blank"><i>Int J Biol Macromol</i></a>. Citric acid crosslinking at 140C achieves up to 70 MPa tensile strength. <a href="#ref1">&#8617;</a></li>
<li id="fn2">Dhakal et al. (2022), <a href="https://pmc.ncbi.nlm.nih.gov/articles/PMC9182753/" target="_blank">PMC 9182753</a>. 5% NaOH treatment of hemp at room temperature for 1-4 hours. Gentlest effective protocol for cellulose extraction. <a href="#ref2">&#8617;</a></li>
<li id="fn3">Chalannavar et al. (2025), "Industrial Cannabis sativa: Hemp Cellulose Based Bioplastic Production," <a href="https://magnascientiapub.com/journals/msabp/sites/default/files/MSABP-2025-0067.pdf" target="_blank">Magna Scientia</a>. Comprehensive review of NaOH cellulose extraction protocols. <a href="#ref3">&#8617;</a></li>
<li id="fn4">Robert Murray-Smith, <a href="https://www.youtube.com/watch?v=REqqJOaE30U" target="_blank">"Hot Press Molding Hemp Casein Plastic"</a> (2020). On moisture & pressing: "if it's wet and you heat it and press it, you'll press off a lot of steam and it won't form properly." <a href="#ref4">&#8617;</a></li>
</ol>
</div>
<p>
Full chemistry, equipment lists, & scaling details: <a href="/hemp-bioplastic/process/">hemp bioplastic process (recipe)</a>.
</p>
<hr>
<p><a href="/hemp-bioplastic/process/">&#8592; recipe (full process)</a> · <a href="/hemp-bioplastic/process/factory/">factory</a> · <a href="/hemp-bioplastic/">hemp bioplastic overview</a> · <a href="/single-use-plastics/">single-use plastics</a></p>
</main>
<footer>
<center><a href="/software/" class="unturf-brand">unturf. software</a></center>
<center>Russell Ballestrini | <span class="unturf-brand">unturf.</span> &copy; 2025</center>
</footer>
<script src="/js/diagram-zoom.js"></script>
<script src="https://uncloseai.com/uncloseai.js" type="module"></script>
</body>
</html>

View file

@ -1,56 +0,0 @@
digraph cellulose_extraction {
bgcolor="#1a1a2e"
rankdir=TB
node [fontname="Helvetica" fontsize=10 style=filled shape=box]
edge [color="#888888" fontname="Helvetica" fontsize=9 fontcolor="#aaaaaa"]
subgraph cluster_prep {
label="PREPARE" fontcolor="#4CAF50" fontsize=11 fontname="Helvetica Bold"
color="#4CAF50" style=dashed
dry [label="dry bast fiber\n50°C until constant weight" fillcolor="#2E7D32" fontcolor="white"]
cut [label="cut to 2-3 cm lengths" fillcolor="#388E3C" fontcolor="white"]
grind [label="grind & sieve\nthrough 1.5mm mesh" fillcolor="#43A047" fontcolor="white"]
weigh [label="weigh 50g powder\n(test batch)" fillcolor="#66BB6A" fontcolor="white"]
}
subgraph cluster_alkali {
label="ALKALI TREATMENT" fontcolor="#2196F3" fontsize=11 fontname="Helvetica Bold"
color="#2196F3" style=dashed
naoh [label="dissolve 90g NaOH\nin 750 mL water\n= 12% solution" fillcolor="#1565C0" fontcolor="white"]
bath [label="add hemp powder\n80°C, stir at 500 rpm\n3 hours" fillcolor="#1976D2" fontcolor="white"]
filter1 [label="vacuum filter\nwash 4-5 times\nuntil pH neutral" fillcolor="#1E88E5" fontcolor="white"]
}
subgraph cluster_bleach {
label="BLEACH (optional)" fontcolor="#9C27B0" fontsize=11 fontname="Helvetica Bold"
color="#9C27B0" style=dashed
h2o2 [label="8% hydrogen peroxide\nadjust pH to 12 with NaOH\n40°C for 1 hour\nrepeat 4 cycles" fillcolor="#7B1FA2" fontcolor="white"]
filter2 [label="wash until neutral\nvacuum filter" fillcolor="#8E24AA" fontcolor="white"]
}
subgraph cluster_purify {
label="PURIFY" fontcolor="#FF9800" fontsize=11 fontname="Helvetica Bold"
color="#FF9800" style=dashed
hemi [label="17.5% NaOH solution\nroom temperature\n5 hours, stir at 500 rpm\nremoves hemicellulose" fillcolor="#E65100" fontcolor="white"]
filter3 [label="vacuum filter\nwash 3 times\ndry at 60°C overnight" fillcolor="#F57C00" fontcolor="white"]
result [label="~25g pure cellulose\nwhite fibrous material\n~50% yield from bast" fillcolor="#FF9800" fontcolor="white"]
}
dry -> cut -> grind -> weigh
weigh -> naoh [label="add to"]
naoh -> bath
bath -> filter1 [label="lignin\ndissolved"]
filter1 -> h2o2
h2o2 -> filter2
filter2 -> hemi
hemi -> filter3 [label="hemicellulose\nremoved"]
filter3 -> result
waste [label="waste liquor\nneutralize to pH 7\nbefore disposal\nlignin is compostable" fillcolor="#37474F" fontcolor="#aaaaaa" shape=ellipse]
bath -> waste [style=dashed color="#555555"]
hemi -> waste [style=dashed color="#555555"]
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 93 KiB

View file

@ -1,217 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.43.0 (0)
-->
<!-- Title: cellulose_extraction Pages: 1 -->
<svg width="346pt" height="1090pt"
viewBox="0.00 0.00 345.56 1089.54" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 1085.54)">
<title>cellulose_extraction</title>
<polygon fill="#1a1a2e" stroke="transparent" points="-4,4 -4,-1085.54 341.56,-1085.54 341.56,4 -4,4"/>
<g id="clust1" class="cluster">
<title>cluster_prep</title>
<polygon fill="#1a1a2e" stroke="#4caf50" stroke-dasharray="5,2" points="12,-782.54 12,-1073.54 174,-1073.54 174,-782.54 12,-782.54"/>
<text text-anchor="middle" x="93" y="-1060.74" font-family="Helvetica Bold" font-size="11.00" fill="#4caf50">PREPARE</text>
</g>
<g id="clust2" class="cluster">
<title>cluster_alkali</title>
<polygon fill="#1a1a2e" stroke="#2196f3" stroke-dasharray="5,2" points="25,-502.54 25,-754.54 161,-754.54 161,-502.54 25,-502.54"/>
<text text-anchor="middle" x="93" y="-741.74" font-family="Helvetica Bold" font-size="11.00" fill="#2196f3">ALKALI TREATMENT</text>
</g>
<g id="clust3" class="cluster">
<title>cluster_bleach</title>
<polygon fill="#1a1a2e" stroke="#9c27b0" stroke-dasharray="5,2" points="8,-322.54 8,-483.54 170,-483.54 170,-322.54 8,-322.54"/>
<text text-anchor="middle" x="89" y="-470.74" font-family="Helvetica Bold" font-size="11.00" fill="#9c27b0">BLEACH (optional)</text>
</g>
<g id="clust4" class="cluster">
<title>cluster_purify</title>
<polygon fill="#1a1a2e" stroke="#ff9800" stroke-dasharray="5,2" points="10,-8 10,-303.54 158,-303.54 158,-8 10,-8"/>
<text text-anchor="middle" x="84" y="-290.74" font-family="Helvetica Bold" font-size="11.00" fill="#ff9800">PURIFY</text>
</g>
<!-- dry -->
<g id="node1" class="node">
<title>dry</title>
<polygon fill="#2e7d32" stroke="black" points="166,-1045.54 20,-1045.54 20,-1009.54 166,-1009.54 166,-1045.54"/>
<text text-anchor="middle" x="93" y="-1030.54" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">dry bast fiber</text>
<text text-anchor="middle" x="93" y="-1019.54" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">50°C until constant weight</text>
</g>
<!-- cut -->
<g id="node2" class="node">
<title>cut</title>
<polygon fill="#388e3c" stroke="black" points="153,-972.54 33,-972.54 33,-936.54 153,-936.54 153,-972.54"/>
<text text-anchor="middle" x="93" y="-952.04" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">cut to 2&#45;3 cm lengths</text>
</g>
<!-- dry&#45;&gt;cut -->
<g id="edge1" class="edge">
<title>dry&#45;&gt;cut</title>
<path fill="none" stroke="#888888" d="M93,-1009.35C93,-1001.33 93,-991.59 93,-982.61"/>
<polygon fill="#888888" stroke="#888888" points="96.5,-982.57 93,-972.57 89.5,-982.57 96.5,-982.57"/>
</g>
<!-- grind -->
<g id="node3" class="node">
<title>grind</title>
<polygon fill="#43a047" stroke="black" points="154,-899.54 32,-899.54 32,-863.54 154,-863.54 154,-899.54"/>
<text text-anchor="middle" x="93" y="-884.54" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">grind &amp; sieve</text>
<text text-anchor="middle" x="93" y="-873.54" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">through 1.5mm mesh</text>
</g>
<!-- cut&#45;&gt;grind -->
<g id="edge2" class="edge">
<title>cut&#45;&gt;grind</title>
<path fill="none" stroke="#888888" d="M93,-936.35C93,-928.33 93,-918.59 93,-909.61"/>
<polygon fill="#888888" stroke="#888888" points="96.5,-909.57 93,-899.57 89.5,-909.57 96.5,-909.57"/>
</g>
<!-- weigh -->
<g id="node4" class="node">
<title>weigh</title>
<polygon fill="#66bb6a" stroke="black" points="146,-826.54 40,-826.54 40,-790.54 146,-790.54 146,-826.54"/>
<text text-anchor="middle" x="93" y="-811.54" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">weigh 50g powder</text>
<text text-anchor="middle" x="93" y="-800.54" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">(test batch)</text>
</g>
<!-- grind&#45;&gt;weigh -->
<g id="edge3" class="edge">
<title>grind&#45;&gt;weigh</title>
<path fill="none" stroke="#888888" d="M93,-863.35C93,-855.33 93,-845.59 93,-836.61"/>
<polygon fill="#888888" stroke="#888888" points="96.5,-836.57 93,-826.57 89.5,-836.57 96.5,-836.57"/>
</g>
<!-- naoh -->
<g id="node5" class="node">
<title>naoh</title>
<polygon fill="#1565c0" stroke="black" points="148,-726.54 38,-726.54 38,-685.54 148,-685.54 148,-726.54"/>
<text text-anchor="middle" x="93" y="-714.54" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">dissolve 90g NaOH</text>
<text text-anchor="middle" x="93" y="-703.54" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">in 750 mL water</text>
<text text-anchor="middle" x="93" y="-692.54" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">= 12% solution</text>
</g>
<!-- weigh&#45;&gt;naoh -->
<g id="edge4" class="edge">
<title>weigh&#45;&gt;naoh</title>
<path fill="none" stroke="#888888" d="M93,-790.49C93,-775.84 93,-754.36 93,-736.87"/>
<polygon fill="#888888" stroke="#888888" points="96.5,-736.58 93,-726.58 89.5,-736.58 96.5,-736.58"/>
<text text-anchor="middle" x="108" y="-765.34" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#aaaaaa">add to</text>
</g>
<!-- bath -->
<g id="node6" class="node">
<title>bath</title>
<polygon fill="#1976d2" stroke="black" points="152.5,-648.54 33.5,-648.54 33.5,-607.54 152.5,-607.54 152.5,-648.54"/>
<text text-anchor="middle" x="93" y="-636.54" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">add hemp powder</text>
<text text-anchor="middle" x="93" y="-625.54" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">80°C, stir at 500 rpm</text>
<text text-anchor="middle" x="93" y="-614.54" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">3 hours</text>
</g>
<!-- naoh&#45;&gt;bath -->
<g id="edge5" class="edge">
<title>naoh&#45;&gt;bath</title>
<path fill="none" stroke="#888888" d="M93,-685.47C93,-677.31 93,-667.66 93,-658.67"/>
<polygon fill="#888888" stroke="#888888" points="96.5,-658.54 93,-648.54 89.5,-658.54 96.5,-658.54"/>
</g>
<!-- filter1 -->
<g id="node7" class="node">
<title>filter1</title>
<polygon fill="#1e88e5" stroke="black" points="137,-551.54 45,-551.54 45,-510.54 137,-510.54 137,-551.54"/>
<text text-anchor="middle" x="91" y="-539.54" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">vacuum filter</text>
<text text-anchor="middle" x="91" y="-528.54" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">wash 4&#45;5 times</text>
<text text-anchor="middle" x="91" y="-517.54" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">until pH neutral</text>
</g>
<!-- bath&#45;&gt;filter1 -->
<g id="edge6" class="edge">
<title>bath&#45;&gt;filter1</title>
<path fill="none" stroke="#888888" d="M92.59,-607.36C92.31,-594.24 91.94,-576.74 91.63,-561.92"/>
<polygon fill="#888888" stroke="#888888" points="95.12,-561.62 91.41,-551.7 88.13,-561.77 95.12,-561.62"/>
<text text-anchor="middle" x="114" y="-582.34" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#aaaaaa">lignin</text>
<text text-anchor="middle" x="114" y="-572.34" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#aaaaaa">dissolved</text>
</g>
<!-- waste -->
<g id="node13" class="node">
<title>waste</title>
<ellipse fill="#37474f" stroke="black" cx="252" cy="-130.77" rx="85.62" ry="36.54"/>
<text text-anchor="middle" x="252" y="-144.77" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#aaaaaa">waste liquor</text>
<text text-anchor="middle" x="252" y="-133.77" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#aaaaaa">neutralize to pH 7</text>
<text text-anchor="middle" x="252" y="-122.77" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#aaaaaa">before disposal</text>
<text text-anchor="middle" x="252" y="-111.77" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#aaaaaa">lignin is compostable</text>
</g>
<!-- bath&#45;&gt;waste -->
<g id="edge12" class="edge">
<title>bath&#45;&gt;waste</title>
<path fill="none" stroke="#555555" stroke-dasharray="5,2" d="M151.84,-607.43C184.26,-592.52 218,-568.29 218,-532.04 218,-532.04 218,-532.04 218,-248.54 218,-224.1 224.95,-197.88 232.57,-176.49"/>
<polygon fill="#555555" stroke="#555555" points="235.88,-177.62 236.1,-167.03 229.32,-175.18 235.88,-177.62"/>
</g>
<!-- h2o2 -->
<g id="node8" class="node">
<title>h2o2</title>
<polygon fill="#7b1fa2" stroke="black" points="162,-455.54 16,-455.54 16,-403.54 162,-403.54 162,-455.54"/>
<text text-anchor="middle" x="89" y="-443.54" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">8% hydrogen peroxide</text>
<text text-anchor="middle" x="89" y="-432.54" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">adjust pH to 12 with NaOH</text>
<text text-anchor="middle" x="89" y="-421.54" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">40°C for 1 hour</text>
<text text-anchor="middle" x="89" y="-410.54" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">repeat 4 cycles</text>
</g>
<!-- filter1&#45;&gt;h2o2 -->
<g id="edge7" class="edge">
<title>filter1&#45;&gt;h2o2</title>
<path fill="none" stroke="#888888" d="M90.6,-510.38C90.35,-497.8 90.02,-481.11 89.72,-466.25"/>
<polygon fill="#888888" stroke="#888888" points="93.21,-465.76 89.51,-455.83 86.21,-465.9 93.21,-465.76"/>
</g>
<!-- filter2 -->
<g id="node9" class="node">
<title>filter2</title>
<polygon fill="#8e24aa" stroke="black" points="139,-366.54 35,-366.54 35,-330.54 139,-330.54 139,-366.54"/>
<text text-anchor="middle" x="87" y="-351.54" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">wash until neutral</text>
<text text-anchor="middle" x="87" y="-340.54" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">vacuum filter</text>
</g>
<!-- h2o2&#45;&gt;filter2 -->
<g id="edge8" class="edge">
<title>h2o2&#45;&gt;filter2</title>
<path fill="none" stroke="#888888" d="M88.36,-403.11C88.14,-394.74 87.91,-385.39 87.69,-376.88"/>
<polygon fill="#888888" stroke="#888888" points="91.19,-376.6 87.43,-366.69 84.19,-376.77 91.19,-376.6"/>
</g>
<!-- hemi -->
<g id="node10" class="node">
<title>hemi</title>
<polygon fill="#e65100" stroke="black" points="149.5,-275.54 18.5,-275.54 18.5,-223.54 149.5,-223.54 149.5,-275.54"/>
<text text-anchor="middle" x="84" y="-263.54" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">17.5% NaOH solution</text>
<text text-anchor="middle" x="84" y="-252.54" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">room temperature</text>
<text text-anchor="middle" x="84" y="-241.54" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">5 hours, stir at 500 rpm</text>
<text text-anchor="middle" x="84" y="-230.54" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">removes hemicellulose</text>
</g>
<!-- filter2&#45;&gt;hemi -->
<g id="edge9" class="edge">
<title>filter2&#45;&gt;hemi</title>
<path fill="none" stroke="#888888" d="M86.46,-330.2C86.08,-317.89 85.56,-300.94 85.09,-285.83"/>
<polygon fill="#888888" stroke="#888888" points="88.59,-285.64 84.78,-275.75 81.59,-285.86 88.59,-285.64"/>
</g>
<!-- filter3 -->
<g id="node11" class="node">
<title>filter3</title>
<polygon fill="#f57c00" stroke="black" points="145,-151.27 23,-151.27 23,-110.27 145,-110.27 145,-151.27"/>
<text text-anchor="middle" x="84" y="-139.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">vacuum filter</text>
<text text-anchor="middle" x="84" y="-128.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">wash 3 times</text>
<text text-anchor="middle" x="84" y="-117.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">dry at 60°C overnight</text>
</g>
<!-- hemi&#45;&gt;filter3 -->
<g id="edge10" class="edge">
<title>hemi&#45;&gt;filter3</title>
<path fill="none" stroke="#888888" d="M84,-223.49C84,-205.28 84,-180.57 84,-161.39"/>
<polygon fill="#888888" stroke="#888888" points="87.5,-161.37 84,-151.37 80.5,-161.37 87.5,-161.37"/>
<text text-anchor="middle" x="114.5" y="-198.34" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#aaaaaa">hemicellulose</text>
<text text-anchor="middle" x="114.5" y="-188.34" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#aaaaaa">removed</text>
</g>
<!-- hemi&#45;&gt;waste -->
<g id="edge13" class="edge">
<title>hemi&#45;&gt;waste</title>
<path fill="none" stroke="#555555" stroke-dasharray="5,2" d="M122.31,-223.54C131.12,-217.69 140.42,-211.45 149,-205.54 166.05,-193.8 184.48,-180.73 200.97,-168.88"/>
<polygon fill="#555555" stroke="#555555" points="203.33,-171.5 209.4,-162.81 199.24,-165.81 203.33,-171.5"/>
</g>
<!-- result -->
<g id="node12" class="node">
<title>result</title>
<polygon fill="#ff9800" stroke="black" points="146,-57 22,-57 22,-16 146,-16 146,-57"/>
<text text-anchor="middle" x="84" y="-45" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">~25g pure cellulose</text>
<text text-anchor="middle" x="84" y="-34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">white fibrous material</text>
<text text-anchor="middle" x="84" y="-23" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">~50% yield from bast</text>
</g>
<!-- filter3&#45;&gt;result -->
<g id="edge11" class="edge">
<title>filter3&#45;&gt;result</title>
<path fill="none" stroke="#888888" d="M84,-110.2C84,-97.72 84,-81.31 84,-67.24"/>
<polygon fill="#888888" stroke="#888888" points="87.5,-67.04 84,-57.04 80.5,-67.04 87.5,-67.04"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 14 KiB

View file

@ -1,45 +0,0 @@
digraph equipment {
bgcolor="#1a1a2e"
rankdir=TB
node [fontname="Helvetica" fontsize=10 style=filled shape=box]
edge [style=invis]
label=<<B><FONT COLOR="#cccccc" POINT-SIZE="14">equipment for a 50g test batch</FONT></B>>
labelloc=t
subgraph cluster_chem {
label="CHEMISTRY" fontcolor="#2196F3" fontsize=11 fontname="Helvetica Bold"
color="#2196F3" style=dashed
e1 [label="stainless steel pot\n2-5 liter\nNOT aluminum" fillcolor="#1565C0" fontcolor="white"]
e2 [label="hot plate\n80-100°C capable" fillcolor="#1976D2" fontcolor="white"]
e3 [label="digital thermometer\n0-200°C" fillcolor="#1E88E5" fontcolor="white"]
e4 [label="pH strips\nrange 1-14" fillcolor="#42A5F5" fontcolor="white"]
e5 [label="vacuum filter setup\nBuchner funnel + flask" fillcolor="#64B5F6" fontcolor="#1a1a2e"]
e1 -> e2 -> e3 -> e4 -> e5
}
subgraph cluster_press {
label="PRESSING" fontcolor="#FF9800" fontsize=11 fontname="Helvetica Bold"
color="#FF9800" style=dashed
p1 [label="metal mold\naluminum soap mold works" fillcolor="#E65100" fontcolor="white"]
p2 [label="oven (140-200°C)\nor rosin press ($200-500)" fillcolor="#F57C00" fontcolor="white"]
p3 [label="bench vise or\nhydraulic press\nfor clamping force" fillcolor="#FF9800" fontcolor="white"]
p4 [label="heat-resistant gloves\nrated 200°C+" fillcolor="#FFC107" fontcolor="#1a1a2e"]
p1 -> p2 -> p3 -> p4
}
subgraph cluster_safety {
label="SAFETY" fontcolor="#F44336" fontsize=11 fontname="Helvetica Bold"
color="#F44336" style=dashed
s1 [label="chemical splash goggles\nnot just safety glasses" fillcolor="#B71C1C" fontcolor="white"]
s2 [label="nitrile gloves\nelbow length" fillcolor="#C62828" fontcolor="white"]
s3 [label="ventilated workspace\nfume hood or outdoors" fillcolor="#D32F2F" fontcolor="white"]
s4 [label="2% vinegar nearby\nfor NaOH spill neutralization" fillcolor="#E53935" fontcolor="white"]
s1 -> s2 -> s3 -> s4
}
cost [label="total equipment cost\n$500-2,000\nfor basic workshop setup" fillcolor="#263238" fontcolor="#CDDC39" shape=note]
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

View file

@ -1,142 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.43.0 (0)
-->
<!-- Title: equipment Pages: 1 -->
<svg width="664pt" height="417pt"
viewBox="0.00 0.00 663.50 417.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 413)">
<title>equipment</title>
<polygon fill="#1a1a2e" stroke="transparent" points="-4,4 -4,-413 659.5,-413 659.5,4 -4,4"/>
<text text-anchor="start" x="205.75" y="-394.8" font-family="Times,serif" font-weight="bold" font-size="14.00" fill="#cccccc">equipment for a 50g test batch</text>
<g id="clust1" class="cluster">
<title>cluster_chem</title>
<polygon fill="#1a1a2e" stroke="#2196f3" stroke-dasharray="5,2" points="8,-8 8,-378 152,-378 152,-8 8,-8"/>
<text text-anchor="middle" x="80" y="-365.2" font-family="Helvetica Bold" font-size="11.00" fill="#2196f3">CHEMISTRY</text>
</g>
<g id="clust2" class="cluster">
<title>cluster_press</title>
<polygon fill="#1a1a2e" stroke="#ff9800" stroke-dasharray="5,2" points="160,-80 160,-375.5 328,-375.5 328,-80 160,-80"/>
<text text-anchor="middle" x="244" y="-362.7" font-family="Helvetica Bold" font-size="11.00" fill="#ff9800">PRESSING</text>
</g>
<g id="clust3" class="cluster">
<title>cluster_safety</title>
<polygon fill="#1a1a2e" stroke="#f44336" stroke-dasharray="5,2" points="336,-80 336,-375.5 508,-375.5 508,-80 336,-80"/>
<text text-anchor="middle" x="422" y="-362.7" font-family="Helvetica Bold" font-size="11.00" fill="#f44336">SAFETY</text>
</g>
<!-- e1 -->
<g id="node1" class="node">
<title>e1</title>
<polygon fill="#1565c0" stroke="black" points="133,-350 27,-350 27,-309 133,-309 133,-350"/>
<text text-anchor="middle" x="80" y="-338" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">stainless steel pot</text>
<text text-anchor="middle" x="80" y="-327" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">2&#45;5 liter</text>
<text text-anchor="middle" x="80" y="-316" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">NOT aluminum</text>
</g>
<!-- e2 -->
<g id="node2" class="node">
<title>e2</title>
<polygon fill="#1976d2" stroke="black" points="132,-273 28,-273 28,-237 132,-237 132,-273"/>
<text text-anchor="middle" x="80" y="-258" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">hot plate</text>
<text text-anchor="middle" x="80" y="-247" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">80&#45;100°C capable</text>
</g>
<!-- e1&#45;&gt;e2 -->
<!-- e3 -->
<g id="node3" class="node">
<title>e3</title>
<polygon fill="#1e88e5" stroke="black" points="137.5,-198.5 22.5,-198.5 22.5,-162.5 137.5,-162.5 137.5,-198.5"/>
<text text-anchor="middle" x="80" y="-183.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">digital thermometer</text>
<text text-anchor="middle" x="80" y="-172.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">0&#45;200°C</text>
</g>
<!-- e2&#45;&gt;e3 -->
<!-- e4 -->
<g id="node4" class="node">
<title>e4</title>
<polygon fill="#42a5f5" stroke="black" points="114.5,-124 45.5,-124 45.5,-88 114.5,-88 114.5,-124"/>
<text text-anchor="middle" x="80" y="-109" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">pH strips</text>
<text text-anchor="middle" x="80" y="-98" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">range 1&#45;14</text>
</g>
<!-- e3&#45;&gt;e4 -->
<!-- e5 -->
<g id="node5" class="node">
<title>e5</title>
<polygon fill="#64b5f6" stroke="black" points="144,-52 16,-52 16,-16 144,-16 144,-52"/>
<text text-anchor="middle" x="80" y="-37" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#1a1a2e">vacuum filter setup</text>
<text text-anchor="middle" x="80" y="-26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#1a1a2e">Buchner funnel + flask</text>
</g>
<!-- e4&#45;&gt;e5 -->
<!-- p1 -->
<g id="node6" class="node">
<title>p1</title>
<polygon fill="#e65100" stroke="black" points="320,-347.5 168,-347.5 168,-311.5 320,-311.5 320,-347.5"/>
<text text-anchor="middle" x="244" y="-332.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">metal mold</text>
<text text-anchor="middle" x="244" y="-321.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">aluminum soap mold works</text>
</g>
<!-- p2 -->
<g id="node7" class="node">
<title>p2</title>
<polygon fill="#f57c00" stroke="black" points="313.5,-273 174.5,-273 174.5,-237 313.5,-237 313.5,-273"/>
<text text-anchor="middle" x="244" y="-258" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">oven (140&#45;200°C)</text>
<text text-anchor="middle" x="244" y="-247" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">or rosin press ($200&#45;500)</text>
</g>
<!-- p1&#45;&gt;p2 -->
<!-- p3 -->
<g id="node8" class="node">
<title>p3</title>
<polygon fill="#ff9800" stroke="black" points="297,-201 191,-201 191,-160 297,-160 297,-201"/>
<text text-anchor="middle" x="244" y="-189" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">bench vise or</text>
<text text-anchor="middle" x="244" y="-178" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">hydraulic press</text>
<text text-anchor="middle" x="244" y="-167" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">for clamping force</text>
</g>
<!-- p2&#45;&gt;p3 -->
<!-- p4 -->
<g id="node9" class="node">
<title>p4</title>
<polygon fill="#ffc107" stroke="black" points="304,-124 184,-124 184,-88 304,-88 304,-124"/>
<text text-anchor="middle" x="244" y="-109" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#1a1a2e">heat&#45;resistant gloves</text>
<text text-anchor="middle" x="244" y="-98" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#1a1a2e">rated 200°C+</text>
</g>
<!-- p3&#45;&gt;p4 -->
<!-- s1 -->
<g id="node10" class="node">
<title>s1</title>
<polygon fill="#b71c1c" stroke="black" points="490.5,-347.5 353.5,-347.5 353.5,-311.5 490.5,-311.5 490.5,-347.5"/>
<text text-anchor="middle" x="422" y="-332.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">chemical splash goggles</text>
<text text-anchor="middle" x="422" y="-321.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">not just safety glasses</text>
</g>
<!-- s2 -->
<g id="node11" class="node">
<title>s2</title>
<polygon fill="#c62828" stroke="black" points="462,-273 382,-273 382,-237 462,-237 462,-273"/>
<text text-anchor="middle" x="422" y="-258" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">nitrile gloves</text>
<text text-anchor="middle" x="422" y="-247" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">elbow length</text>
</g>
<!-- s1&#45;&gt;s2 -->
<!-- s3 -->
<g id="node12" class="node">
<title>s3</title>
<polygon fill="#d32f2f" stroke="black" points="486,-198.5 358,-198.5 358,-162.5 486,-162.5 486,-198.5"/>
<text text-anchor="middle" x="422" y="-183.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">ventilated workspace</text>
<text text-anchor="middle" x="422" y="-172.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">fume hood or outdoors</text>
</g>
<!-- s2&#45;&gt;s3 -->
<!-- s4 -->
<g id="node13" class="node">
<title>s4</title>
<polygon fill="#e53935" stroke="black" points="499.5,-124 344.5,-124 344.5,-88 499.5,-88 499.5,-124"/>
<text text-anchor="middle" x="422" y="-109" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">2% vinegar nearby</text>
<text text-anchor="middle" x="422" y="-98" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">for NaOH spill neutralization</text>
</g>
<!-- s3&#45;&gt;s4 -->
<!-- cost -->
<g id="node14" class="node">
<title>cost</title>
<polygon fill="#263238" stroke="black" points="649.5,-350 516.5,-350 516.5,-309 655.5,-309 655.5,-344 649.5,-350"/>
<polyline fill="none" stroke="black" points="649.5,-350 649.5,-344 "/>
<polyline fill="none" stroke="black" points="655.5,-344 649.5,-344 "/>
<text text-anchor="middle" x="586" y="-338" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#cddc39">total equipment cost</text>
<text text-anchor="middle" x="586" y="-327" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#cddc39">$500&#45;2,000</text>
<text text-anchor="middle" x="586" y="-316" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#cddc39">for basic workshop setup</text>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 8.4 KiB

View file

@ -1,42 +0,0 @@
digraph plant_anatomy {
bgcolor="#1a1a2e"
rankdir=TB
node [fontname="Helvetica" fontsize=10 style=filled shape=box]
edge [color="#888888" fontname="Helvetica" fontsize=9 fontcolor="#aaaaaa"]
label=<<B><FONT COLOR="#cccccc" POINT-SIZE="14">which parts of hemp we harvest</FONT></B>>
labelloc=t
plant [label="hemp plant\n120 day crop" fillcolor="#2E7D32" fontcolor="white" shape=ellipse]
subgraph cluster_use {
label="WE USE" fontcolor="#4CAF50" fontsize=12 fontname="Helvetica Bold"
color="#4CAF50" style=dashed
stalk [label="STALK\n(main stem)\n80-90% of harvest" fillcolor="#388E3C" fontcolor="white"]
subgraph cluster_stalk {
label="" color=transparent
bast [label="BAST FIBER\nouter bark layer\n~30% of stalk\n77% cellulose\nthis makes bioplastic" fillcolor="#43A047" fontcolor="white"]
hurd [label="HURD (core)\ninner woody pith\n~70% of stalk\n44% cellulose\nlower grade, still usable" fillcolor="#795548" fontcolor="white"]
}
}
subgraph cluster_byproduct {
label="BYPRODUCTS" fontcolor="#FF9800" fontsize=12 fontname="Helvetica Bold"
color="#FF9800" style=dashed
leaves [label="LEAVES\nnot used for bioplastic\ncompost or mulch" fillcolor="#827717" fontcolor="white"]
seeds [label="SEEDS\nnot used for bioplastic\nfood, oil, or next crop" fillcolor="#F57C00" fontcolor="white"]
roots [label="ROOTS\nstay in ground\nimprove soil structure\nbreak up compaction" fillcolor="#4E342E" fontcolor="white"]
}
plant -> stalk [label="harvest stems"]
plant -> leaves [label="strip"]
plant -> seeds [label="collect"]
plant -> roots [label="leave in soil"]
stalk -> bast [label="outer layer"]
stalk -> hurd [label="inner core"]
note [label="bioplastic comes from stalk only\nspecifically bast fiber (outer bark)\nhurd works but yields less cellulose\nleaves, seeds, & roots serve other purposes" fillcolor="#263238" fontcolor="#CDDC39" shape=note fontsize=9]
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 76 KiB

View file

@ -1,141 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.43.0 (0)
-->
<!-- Title: plant_anatomy Pages: 1 -->
<svg width="763pt" height="329pt"
viewBox="0.00 0.00 763.00 329.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 325)">
<title>plant_anatomy</title>
<polygon fill="#1a1a2e" stroke="transparent" points="-4,4 -4,-325 759,-325 759,4 -4,4"/>
<text text-anchor="start" x="252.5" y="-306.8" font-family="Times,serif" font-weight="bold" font-size="14.00" fill="#cccccc">which parts of hemp we harvest</text>
<g id="clust1" class="cluster">
<title>cluster_use</title>
<polygon fill="#1a1a2e" stroke="#4caf50" stroke-dasharray="5,2" points="8,-8 8,-208.5 312,-208.5 312,-8 8,-8"/>
<text text-anchor="middle" x="160" y="-194.9" font-family="Helvetica Bold" font-size="12.00" fill="#4caf50">WE USE</text>
</g>
<g id="clust2" class="cluster">
<title>cluster_stalk</title>
<polygon fill="#1a1a2e" stroke="transparent" stroke-dasharray="5,2" points="16,-16 16,-95 304,-95 304,-16 16,-16"/>
</g>
<g id="clust3" class="cluster">
<title>cluster_byproduct</title>
<polygon fill="#1a1a2e" stroke="#ff9800" stroke-dasharray="5,2" points="320,-125 320,-214 747,-214 747,-125 320,-125"/>
<text text-anchor="middle" x="533.5" y="-200.4" font-family="Helvetica Bold" font-size="12.00" fill="#ff9800">BYPRODUCTS</text>
</g>
<!-- plant -->
<g id="node1" class="node">
<title>plant</title>
<ellipse fill="#2e7d32" stroke="black" cx="438" cy="-274" rx="56.64" ry="21.43"/>
<text text-anchor="middle" x="438" y="-277" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">hemp plant</text>
<text text-anchor="middle" x="438" y="-266" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">120 day crop</text>
</g>
<!-- stalk -->
<g id="node2" class="node">
<title>stalk</title>
<polygon fill="#388e3c" stroke="black" points="282.5,-179.5 175.5,-179.5 175.5,-138.5 282.5,-138.5 282.5,-179.5"/>
<text text-anchor="middle" x="229" y="-167.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">STALK</text>
<text text-anchor="middle" x="229" y="-156.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">(main stem)</text>
<text text-anchor="middle" x="229" y="-145.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">80&#45;90% of harvest</text>
</g>
<!-- plant&#45;&gt;stalk -->
<g id="edge1" class="edge">
<title>plant&#45;&gt;stalk</title>
<path fill="none" stroke="#888888" d="M402.65,-257.38C386.22,-249.95 366.48,-240.78 349,-232 320.89,-217.88 290.53,-199.63 267.37,-185.03"/>
<polygon fill="#888888" stroke="#888888" points="269.19,-182.04 258.87,-179.64 265.44,-187.95 269.19,-182.04"/>
<text text-anchor="middle" x="381" y="-224.8" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#aaaaaa">harvest stems</text>
</g>
<!-- leaves -->
<g id="node5" class="node">
<title>leaves</title>
<polygon fill="#827717" stroke="black" points="453.5,-179.5 328.5,-179.5 328.5,-138.5 453.5,-138.5 453.5,-179.5"/>
<text text-anchor="middle" x="391" y="-167.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">LEAVES</text>
<text text-anchor="middle" x="391" y="-156.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">not used for bioplastic</text>
<text text-anchor="middle" x="391" y="-145.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">compost or mulch</text>
</g>
<!-- plant&#45;&gt;leaves -->
<g id="edge2" class="edge">
<title>plant&#45;&gt;leaves</title>
<path fill="none" stroke="#888888" d="M429.6,-252.8C422.2,-235.01 411.34,-208.91 403.02,-188.91"/>
<polygon fill="#888888" stroke="#888888" points="406.24,-187.54 399.17,-179.65 399.78,-190.23 406.24,-187.54"/>
<text text-anchor="middle" x="430.5" y="-224.8" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#aaaaaa">strip</text>
</g>
<!-- seeds -->
<g id="node6" class="node">
<title>seeds</title>
<polygon fill="#f57c00" stroke="black" points="596.5,-179.5 471.5,-179.5 471.5,-138.5 596.5,-138.5 596.5,-179.5"/>
<text text-anchor="middle" x="534" y="-167.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">SEEDS</text>
<text text-anchor="middle" x="534" y="-156.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">not used for bioplastic</text>
<text text-anchor="middle" x="534" y="-145.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">food, oil, or next crop</text>
</g>
<!-- plant&#45;&gt;seeds -->
<g id="edge3" class="edge">
<title>plant&#45;&gt;seeds</title>
<path fill="none" stroke="#888888" d="M454.5,-253.57C470.03,-235.3 493.42,-207.77 510.81,-187.29"/>
<polygon fill="#888888" stroke="#888888" points="513.58,-189.44 517.39,-179.55 508.25,-184.91 513.58,-189.44"/>
<text text-anchor="middle" x="495" y="-224.8" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#aaaaaa">collect</text>
</g>
<!-- roots -->
<g id="node7" class="node">
<title>roots</title>
<polygon fill="#4e342e" stroke="black" points="739,-185 615,-185 615,-133 739,-133 739,-185"/>
<text text-anchor="middle" x="677" y="-173" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">ROOTS</text>
<text text-anchor="middle" x="677" y="-162" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">stay in ground</text>
<text text-anchor="middle" x="677" y="-151" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">improve soil structure</text>
<text text-anchor="middle" x="677" y="-140" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">break up compaction</text>
</g>
<!-- plant&#45;&gt;roots -->
<g id="edge4" class="edge">
<title>plant&#45;&gt;roots</title>
<path fill="none" stroke="#888888" d="M478.21,-258.96C527.44,-241.77 604.52,-214.8 606,-214 617.73,-207.68 629.59,-199.52 640.17,-191.46"/>
<polygon fill="#888888" stroke="#888888" points="642.64,-193.97 648.36,-185.05 638.32,-188.46 642.64,-193.97"/>
<text text-anchor="middle" x="606" y="-224.8" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#aaaaaa">leave in soil</text>
</g>
<!-- bast -->
<g id="node3" class="node">
<title>bast</title>
<polygon fill="#43a047" stroke="black" points="144,-87 24,-87 24,-24 144,-24 144,-87"/>
<text text-anchor="middle" x="84" y="-75" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">BAST FIBER</text>
<text text-anchor="middle" x="84" y="-64" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">outer bark layer</text>
<text text-anchor="middle" x="84" y="-53" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">~30% of stalk</text>
<text text-anchor="middle" x="84" y="-42" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">77% cellulose</text>
<text text-anchor="middle" x="84" y="-31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">this makes bioplastic</text>
</g>
<!-- stalk&#45;&gt;bast -->
<g id="edge5" class="edge">
<title>stalk&#45;&gt;bast</title>
<path fill="none" stroke="#888888" d="M201.04,-138.43C182.65,-125.56 158.02,-108.32 136.1,-92.97"/>
<polygon fill="#888888" stroke="#888888" points="138.05,-90.06 127.85,-87.19 134.03,-95.8 138.05,-90.06"/>
<text text-anchor="middle" x="190.5" y="-107.8" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#aaaaaa">outer layer</text>
</g>
<!-- hurd -->
<g id="node4" class="node">
<title>hurd</title>
<polygon fill="#795548" stroke="black" points="296,-87 162,-87 162,-24 296,-24 296,-87"/>
<text text-anchor="middle" x="229" y="-75" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">HURD (core)</text>
<text text-anchor="middle" x="229" y="-64" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">inner woody pith</text>
<text text-anchor="middle" x="229" y="-53" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">~70% of stalk</text>
<text text-anchor="middle" x="229" y="-42" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">44% cellulose</text>
<text text-anchor="middle" x="229" y="-31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">lower grade, still usable</text>
</g>
<!-- stalk&#45;&gt;hurd -->
<g id="edge6" class="edge">
<title>stalk&#45;&gt;hurd</title>
<path fill="none" stroke="#888888" d="M229,-138.43C229,-126.75 229,-111.47 229,-97.27"/>
<polygon fill="#888888" stroke="#888888" points="232.5,-97.19 229,-87.19 225.5,-97.19 232.5,-97.19"/>
<text text-anchor="middle" x="252" y="-107.8" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#aaaaaa">inner core</text>
</g>
<!-- note -->
<g id="node8" class="node">
<title>note</title>
<polygon fill="#263238" stroke="black" points="719,-298 513,-298 513,-250 725,-250 725,-292 719,-298"/>
<polyline fill="none" stroke="black" points="719,-298 719,-292 "/>
<polyline fill="none" stroke="black" points="725,-292 719,-292 "/>
<text text-anchor="middle" x="619" y="-286.8" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cddc39">bioplastic comes from stalk only</text>
<text text-anchor="middle" x="619" y="-276.8" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cddc39">specifically bast fiber (outer bark)</text>
<text text-anchor="middle" x="619" y="-266.8" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cddc39">hurd works but yields less cellulose</text>
<text text-anchor="middle" x="619" y="-256.8" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cddc39">leaves, seeds, &amp; roots serve other purposes</text>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 9.5 KiB

View file

@ -1,26 +0,0 @@
digraph pressing {
bgcolor="#1a1a2e"
rankdir=TB
node [fontname="Helvetica" fontsize=10 style=filled shape=box]
edge [color="#888888" fontname="Helvetica" fontsize=9 fontcolor="#aaaaaa"]
label=<<B><FONT COLOR="#cccccc" POINT-SIZE="14">mixing &amp; hot pressing</FONT></B>>
labelloc=t
cellulose [label="dried cellulose\nweighed" fillcolor="#1E88E5" fontcolor="white"]
glycerol [label="add glycerol\n15% = rigid\n30% = flexible" fillcolor="#7B1FA2" fontcolor="white"]
mix [label="stir at 80°C\nfor 60 minutes\nuntil homogeneous" fillcolor="#9C27B0" fontcolor="white"]
dry2 [label="DRY COMPLETELY\nthis step is critical\n60°C overnight\ngrind to breadcrumb texture" fillcolor="#F44336" fontcolor="white"]
mold [label="fill metal mold\ncompress lightly\nadd lid" fillcolor="#E65100" fontcolor="white"]
heat [label="heat to 150°C\nin oven or heat press" fillcolor="#FF9800" fontcolor="white"]
press [label="apply maximum pressure\nbench vise, hydraulic press,\nor C-clamps\nhold 10-30 minutes" fillcolor="#FFC107" fontcolor="#1a1a2e"]
cool [label="release pressure\ncool slowly in mold\ndo not rush" fillcolor="#795548" fontcolor="white"]
demold [label="remove bioplastic\nfrom mold" fillcolor="#4E342E" fontcolor="white"]
cellulose -> glycerol -> mix -> dry2 -> mold -> heat -> press -> cool -> demold
fail1 [label="WET = FAIL\nsteam creates voids\nspongy, porous result\nmust be bone dry" fillcolor="#B71C1C" fontcolor="white" shape=octagon]
dry2 -> fail1 [style=dashed color="#F44336" label="if skipped"]
tip [label="coat mold interior\nwith vegetable oil\nto prevent sticking" fillcolor="#263238" fontcolor="#CDDC39" shape=note fontsize=9]
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 65 KiB

View file

@ -1,159 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.43.0 (0)
-->
<!-- Title: pressing Pages: 1 -->
<svg width="337pt" height="753pt"
viewBox="0.00 0.00 337.37 752.60" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 748.6)">
<title>pressing</title>
<polygon fill="#1a1a2e" stroke="transparent" points="-4,4 -4,-748.6 333.37,-748.6 333.37,4 -4,4"/>
<text text-anchor="start" x="77.19" y="-730.4" font-family="Times,serif" font-weight="bold" font-size="14.00" fill="#cccccc">mixing &amp; hot pressing</text>
<!-- cellulose -->
<g id="node1" class="node">
<title>cellulose</title>
<polygon fill="#1e88e5" stroke="black" points="200,-720.6 112,-720.6 112,-684.6 200,-684.6 200,-720.6"/>
<text text-anchor="middle" x="156" y="-705.6" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">dried cellulose</text>
<text text-anchor="middle" x="156" y="-694.6" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">weighed</text>
</g>
<!-- glycerol -->
<g id="node2" class="node">
<title>glycerol</title>
<polygon fill="#7b1fa2" stroke="black" points="200.5,-646.6 111.5,-646.6 111.5,-605.6 200.5,-605.6 200.5,-646.6"/>
<text text-anchor="middle" x="156" y="-634.6" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">add glycerol</text>
<text text-anchor="middle" x="156" y="-623.6" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">15% = rigid</text>
<text text-anchor="middle" x="156" y="-612.6" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">30% = flexible</text>
</g>
<!-- cellulose&#45;&gt;glycerol -->
<g id="edge1" class="edge">
<title>cellulose&#45;&gt;glycerol</title>
<path fill="none" stroke="#888888" d="M156,-684.32C156,-676.14 156,-666.13 156,-656.78"/>
<polygon fill="#888888" stroke="#888888" points="159.5,-656.65 156,-646.65 152.5,-656.65 159.5,-656.65"/>
</g>
<!-- mix -->
<g id="node3" class="node">
<title>mix</title>
<polygon fill="#9c27b0" stroke="black" points="211,-568.6 101,-568.6 101,-527.6 211,-527.6 211,-568.6"/>
<text text-anchor="middle" x="156" y="-556.6" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">stir at 80°C</text>
<text text-anchor="middle" x="156" y="-545.6" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">for 60 minutes</text>
<text text-anchor="middle" x="156" y="-534.6" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">until homogeneous</text>
</g>
<!-- glycerol&#45;&gt;mix -->
<g id="edge2" class="edge">
<title>glycerol&#45;&gt;mix</title>
<path fill="none" stroke="#888888" d="M156,-605.53C156,-597.37 156,-587.72 156,-578.73"/>
<polygon fill="#888888" stroke="#888888" points="159.5,-578.6 156,-568.6 152.5,-578.6 159.5,-578.6"/>
</g>
<!-- dry2 -->
<g id="node4" class="node">
<title>dry2</title>
<polygon fill="#f44336" stroke="black" points="233,-490.6 79,-490.6 79,-438.6 233,-438.6 233,-490.6"/>
<text text-anchor="middle" x="156" y="-478.6" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">DRY COMPLETELY</text>
<text text-anchor="middle" x="156" y="-467.6" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">this step is critical</text>
<text text-anchor="middle" x="156" y="-456.6" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">60°C overnight</text>
<text text-anchor="middle" x="156" y="-445.6" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">grind to breadcrumb texture</text>
</g>
<!-- mix&#45;&gt;dry2 -->
<g id="edge3" class="edge">
<title>mix&#45;&gt;dry2</title>
<path fill="none" stroke="#888888" d="M156,-527.37C156,-519.36 156,-509.86 156,-500.74"/>
<polygon fill="#888888" stroke="#888888" points="159.5,-500.71 156,-490.71 152.5,-500.71 159.5,-500.71"/>
</g>
<!-- mold -->
<g id="node5" class="node">
<title>mold</title>
<polygon fill="#e65100" stroke="black" points="125,-373.3 27,-373.3 27,-332.3 125,-332.3 125,-373.3"/>
<text text-anchor="middle" x="76" y="-361.3" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">fill metal mold</text>
<text text-anchor="middle" x="76" y="-350.3" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">compress lightly</text>
<text text-anchor="middle" x="76" y="-339.3" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">add lid</text>
</g>
<!-- dry2&#45;&gt;mold -->
<g id="edge4" class="edge">
<title>dry2&#45;&gt;mold</title>
<path fill="none" stroke="#888888" d="M137.65,-438.41C125.28,-421.43 108.96,-399.03 96.22,-381.55"/>
<polygon fill="#888888" stroke="#888888" points="99,-379.42 90.28,-373.4 93.34,-383.54 99,-379.42"/>
</g>
<!-- fail1 -->
<g id="node10" class="node">
<title>fail1</title>
<polygon fill="#b71c1c" stroke="black" points="329.25,-336.4 329.25,-369.2 274.63,-392.4 197.37,-392.4 142.75,-369.2 142.75,-336.4 197.37,-313.2 274.63,-313.2 329.25,-336.4"/>
<text text-anchor="middle" x="236" y="-366.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">WET = FAIL</text>
<text text-anchor="middle" x="236" y="-355.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">steam creates voids</text>
<text text-anchor="middle" x="236" y="-344.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">spongy, porous result</text>
<text text-anchor="middle" x="236" y="-333.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">must be bone dry</text>
</g>
<!-- dry2&#45;&gt;fail1 -->
<g id="edge9" class="edge">
<title>dry2&#45;&gt;fail1</title>
<path fill="none" stroke="#f44336" stroke-dasharray="5,2" d="M174.35,-438.41C182.45,-427.29 192.24,-413.85 201.62,-400.99"/>
<polygon fill="#f44336" stroke="#f44336" points="204.63,-402.79 207.69,-392.65 198.97,-398.67 204.63,-402.79"/>
<text text-anchor="middle" x="216" y="-413.4" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#aaaaaa">if skipped</text>
</g>
<!-- heat -->
<g id="node6" class="node">
<title>heat</title>
<polygon fill="#ff9800" stroke="black" points="135.5,-276 16.5,-276 16.5,-240 135.5,-240 135.5,-276"/>
<text text-anchor="middle" x="76" y="-261" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">heat to 150°C</text>
<text text-anchor="middle" x="76" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">in oven or heat press</text>
</g>
<!-- mold&#45;&gt;heat -->
<g id="edge5" class="edge">
<title>mold&#45;&gt;heat</title>
<path fill="none" stroke="#888888" d="M76,-332.12C76,-318.76 76,-300.92 76,-286.21"/>
<polygon fill="#888888" stroke="#888888" points="79.5,-286.16 76,-276.16 72.5,-286.16 79.5,-286.16"/>
</g>
<!-- press -->
<g id="node7" class="node">
<title>press</title>
<polygon fill="#ffc107" stroke="black" points="152,-203 0,-203 0,-151 152,-151 152,-203"/>
<text text-anchor="middle" x="76" y="-191" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#1a1a2e">apply maximum pressure</text>
<text text-anchor="middle" x="76" y="-180" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#1a1a2e">bench vise, hydraulic press,</text>
<text text-anchor="middle" x="76" y="-169" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#1a1a2e">or C&#45;clamps</text>
<text text-anchor="middle" x="76" y="-158" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#1a1a2e">hold 10&#45;30 minutes</text>
</g>
<!-- heat&#45;&gt;press -->
<g id="edge6" class="edge">
<title>heat&#45;&gt;press</title>
<path fill="none" stroke="#888888" d="M76,-239.86C76,-232.08 76,-222.57 76,-213.37"/>
<polygon fill="#888888" stroke="#888888" points="79.5,-213.21 76,-203.21 72.5,-213.21 79.5,-213.21"/>
</g>
<!-- cool -->
<g id="node8" class="node">
<title>cool</title>
<polygon fill="#795548" stroke="black" points="131.5,-114 20.5,-114 20.5,-73 131.5,-73 131.5,-114"/>
<text text-anchor="middle" x="76" y="-102" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">release pressure</text>
<text text-anchor="middle" x="76" y="-91" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">cool slowly in mold</text>
<text text-anchor="middle" x="76" y="-80" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">do not rush</text>
</g>
<!-- press&#45;&gt;cool -->
<g id="edge7" class="edge">
<title>press&#45;&gt;cool</title>
<path fill="none" stroke="#888888" d="M76,-150.66C76,-142.29 76,-132.9 76,-124.23"/>
<polygon fill="#888888" stroke="#888888" points="79.5,-124.13 76,-114.13 72.5,-124.13 79.5,-124.13"/>
</g>
<!-- demold -->
<g id="node9" class="node">
<title>demold</title>
<polygon fill="#4e342e" stroke="black" points="128,-36 24,-36 24,0 128,0 128,-36"/>
<text text-anchor="middle" x="76" y="-21" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">remove bioplastic</text>
<text text-anchor="middle" x="76" y="-10" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">from mold</text>
</g>
<!-- cool&#45;&gt;demold -->
<g id="edge8" class="edge">
<title>cool&#45;&gt;demold</title>
<path fill="none" stroke="#888888" d="M76,-72.8C76,-64.7 76,-55.18 76,-46.41"/>
<polygon fill="#888888" stroke="#888888" points="79.5,-46.25 76,-36.25 72.5,-46.25 79.5,-46.25"/>
</g>
<!-- tip -->
<g id="node11" class="node">
<title>tip</title>
<polygon fill="#263238" stroke="black" points="314,-721.6 218,-721.6 218,-683.6 320,-683.6 320,-715.6 314,-721.6"/>
<polyline fill="none" stroke="black" points="314,-721.6 314,-715.6 "/>
<polyline fill="none" stroke="black" points="320,-715.6 314,-715.6 "/>
<text text-anchor="middle" x="269" y="-710.4" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cddc39">coat mold interior</text>
<text text-anchor="middle" x="269" y="-700.4" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cddc39">with vegetable oil</text>
<text text-anchor="middle" x="269" y="-690.4" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cddc39">to prevent sticking</text>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 9.9 KiB

View file

@ -1,34 +0,0 @@
digraph retting_test {
bgcolor="#1a1a2e"
rankdir=LR
node [fontname="Helvetica" fontsize=10 style=filled shape=box]
edge [color="#888888" fontname="Helvetica" fontsize=9 fontcolor="#aaaaaa"]
label=<<B><FONT COLOR="#cccccc" POINT-SIZE="14">retting: how to tell when stalks are ready</FONT></B>>
labelloc=t
subgraph cluster_method {
label="DEW RETTING" fontcolor="#4CAF50" fontsize=11 fontname="Helvetica Bold"
color="#4CAF50" style=dashed
lay [label="lay stalks on grass\nexpose to rain & dew\nturn every few days" fillcolor="#2E7D32" fontcolor="white"]
temp [label="duration by temperature\n37°C → 3 days\n20°C → 7-8 days\n12°C → 15-17 days\n7°C → 30-45 days" fillcolor="#388E3C" fontcolor="white"]
lay -> temp
}
subgraph cluster_tests {
label="THREE TESTS" fontcolor="#CDDC39" fontsize=11 fontname="Helvetica Bold"
color="#CDDC39" style=dashed
t1 [label="BEND TEST\nbend stalk back & forth\nhurd should crack & fall\nfiber should NOT break" fillcolor="#827717" fontcolor="white"]
t2 [label="PEEL TEST\npeel fiber at base\nshould separate easily\nfor several inches" fillcolor="#9E9D24" fontcolor="white"]
t3 [label="COLOR TEST\nfiber bundles\nturning white\nmeans ready" fillcolor="#AFB42B" fontcolor="white"]
}
temp -> t1 [label="test"]
t1 -> t2 [style=invis]
t2 -> t3 [style=invis]
under [label="UNDER-RETTED\nfiber sticks to hurd\nhard to separate\n→ keep retting" fillcolor="#B71C1C" fontcolor="white" shape=octagon]
over [label="OVER-RETTED\nfiber breaks easily\nweak & mushy\n→ start over" fillcolor="#B71C1C" fontcolor="white" shape=octagon]
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 57 KiB

View file

@ -1,102 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.43.0 (0)
-->
<!-- Title: retting_test Pages: 1 -->
<svg width="829pt" height="325pt"
viewBox="0.00 0.00 828.79 324.80" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 320.8)">
<title>retting_test</title>
<polygon fill="#1a1a2e" stroke="transparent" points="-4,4 -4,-320.8 824.79,-320.8 824.79,4 -4,4"/>
<text text-anchor="start" x="247.89" y="-302.6" font-family="Times,serif" font-weight="bold" font-size="14.00" fill="#cccccc">retting: how to tell when stalks are ready</text>
<g id="clust1" class="cluster">
<title>cluster_method</title>
<polygon fill="#1a1a2e" stroke="#4caf50" stroke-dasharray="5,2" points="13.89,-8 13.89,-108 344.79,-108 344.79,-8 13.89,-8"/>
<text text-anchor="middle" x="179.34" y="-95.2" font-family="Helvetica Bold" font-size="11.00" fill="#4caf50">DEW RETTING</text>
</g>
<g id="clust2" class="cluster">
<title>cluster_tests</title>
<polygon fill="#1a1a2e" stroke="#cddc39" stroke-dasharray="5,2" points="382.79,-14 382.79,-102 812.79,-102 812.79,-14 382.79,-14"/>
<text text-anchor="middle" x="597.79" y="-89.2" font-family="Helvetica Bold" font-size="11.00" fill="#cddc39">THREE TESTS</text>
</g>
<!-- lay -->
<g id="node1" class="node">
<title>lay</title>
<polygon fill="#2e7d32" stroke="black" points="141.89,-68.5 21.89,-68.5 21.89,-27.5 141.89,-27.5 141.89,-68.5"/>
<text text-anchor="middle" x="81.89" y="-56.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">lay stalks on grass</text>
<text text-anchor="middle" x="81.89" y="-45.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">expose to rain &amp; dew</text>
<text text-anchor="middle" x="81.89" y="-34.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">turn every few days</text>
</g>
<!-- temp -->
<g id="node2" class="node">
<title>temp</title>
<polygon fill="#388e3c" stroke="black" points="336.79,-79.5 200.79,-79.5 200.79,-16.5 336.79,-16.5 336.79,-79.5"/>
<text text-anchor="middle" x="268.79" y="-67.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">duration by temperature</text>
<text text-anchor="middle" x="268.79" y="-56.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">37°C → 3 days</text>
<text text-anchor="middle" x="268.79" y="-45.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">20°C → 7&#45;8 days</text>
<text text-anchor="middle" x="268.79" y="-34.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">12°C → 15&#45;17 days</text>
<text text-anchor="middle" x="268.79" y="-23.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">7°C → 30&#45;45 days</text>
</g>
<!-- lay&#45;&gt;temp -->
<g id="edge1" class="edge">
<title>lay&#45;&gt;temp</title>
<path fill="none" stroke="#888888" d="M141.9,-48C157.4,-48 174.33,-48 190.62,-48"/>
<polygon fill="#888888" stroke="#888888" points="190.66,-51.5 200.66,-48 190.66,-44.5 190.66,-51.5"/>
</g>
<!-- t1 -->
<g id="node3" class="node">
<title>t1</title>
<polygon fill="#827717" stroke="black" points="522.79,-74 390.79,-74 390.79,-22 522.79,-22 522.79,-74"/>
<text text-anchor="middle" x="456.79" y="-62" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">BEND TEST</text>
<text text-anchor="middle" x="456.79" y="-51" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">bend stalk back &amp; forth</text>
<text text-anchor="middle" x="456.79" y="-40" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">hurd should crack &amp; fall</text>
<text text-anchor="middle" x="456.79" y="-29" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">fiber should NOT break</text>
</g>
<!-- temp&#45;&gt;t1 -->
<g id="edge2" class="edge">
<title>temp&#45;&gt;t1</title>
<path fill="none" stroke="#888888" d="M336.94,-48C351.01,-48 365.93,-48 380.28,-48"/>
<polygon fill="#888888" stroke="#888888" points="380.6,-51.5 390.6,-48 380.6,-44.5 380.6,-51.5"/>
<text text-anchor="middle" x="363.79" y="-50.8" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#aaaaaa">test</text>
</g>
<!-- t2 -->
<g id="node4" class="node">
<title>t2</title>
<polygon fill="#9e9d24" stroke="black" points="686.79,-74 559.79,-74 559.79,-22 686.79,-22 686.79,-74"/>
<text text-anchor="middle" x="623.29" y="-62" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">PEEL TEST</text>
<text text-anchor="middle" x="623.29" y="-51" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">peel fiber at base</text>
<text text-anchor="middle" x="623.29" y="-40" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">should separate easily</text>
<text text-anchor="middle" x="623.29" y="-29" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">for several inches</text>
</g>
<!-- t1&#45;&gt;t2 -->
<!-- t3 -->
<g id="node5" class="node">
<title>t3</title>
<polygon fill="#afb42b" stroke="black" points="804.79,-74 723.79,-74 723.79,-22 804.79,-22 804.79,-74"/>
<text text-anchor="middle" x="764.29" y="-62" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">COLOR TEST</text>
<text text-anchor="middle" x="764.29" y="-51" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">fiber bundles</text>
<text text-anchor="middle" x="764.29" y="-40" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">turning white</text>
<text text-anchor="middle" x="764.29" y="-29" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">means ready</text>
</g>
<!-- t2&#45;&gt;t3 -->
<!-- under -->
<g id="node6" class="node">
<title>under</title>
<polygon fill="#b71c1c" stroke="black" points="163.68,-139.6 163.68,-172.4 115.77,-195.6 48.02,-195.6 0.11,-172.4 0.11,-139.6 48.02,-116.4 115.77,-116.4 163.68,-139.6"/>
<text text-anchor="middle" x="81.89" y="-170" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">UNDER&#45;RETTED</text>
<text text-anchor="middle" x="81.89" y="-159" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">fiber sticks to hurd</text>
<text text-anchor="middle" x="81.89" y="-148" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">hard to separate</text>
<text text-anchor="middle" x="81.89" y="-137" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">→ keep retting</text>
</g>
<!-- over -->
<g id="node7" class="node">
<title>over</title>
<polygon fill="#b71c1c" stroke="black" points="163.68,-237.6 163.68,-270.4 115.77,-293.6 48.02,-293.6 0.11,-270.4 0.11,-237.6 48.02,-214.4 115.77,-214.4 163.68,-237.6"/>
<text text-anchor="middle" x="81.89" y="-268" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">OVER&#45;RETTED</text>
<text text-anchor="middle" x="81.89" y="-257" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">fiber breaks easily</text>
<text text-anchor="middle" x="81.89" y="-246" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">weak &amp; mushy</text>
<text text-anchor="middle" x="81.89" y="-235" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">→ start over</text>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 7.2 KiB

View file

@ -1,45 +0,0 @@
digraph three_approaches {
bgcolor="#1a1a2e"
rankdir=TB
node [fontname="Helvetica" fontsize=10 style=filled shape=box]
edge [style=invis]
label=<<B><FONT COLOR="#cccccc" POINT-SIZE="14">three approaches to hemp bioplastic</FONT></B>>
labelloc=t
subgraph cluster_a {
label="A: CELLULOSE EXTRACTION\n(most documented)" fontcolor="#2196F3" fontsize=11 fontname="Helvetica Bold"
color="#2196F3" style=dashed
a1 [label="ret & decorticate stalks" fillcolor="#1565C0" fontcolor="white"]
a2 [label="NaOH bath to dissolve lignin" fillcolor="#1976D2" fontcolor="white"]
a3 [label="bleach & purify cellulose" fillcolor="#1E88E5" fontcolor="white"]
a4 [label="mix with glycerol" fillcolor="#42A5F5" fontcolor="white"]
a5 [label="hot press at 150°C" fillcolor="#64B5F6" fontcolor="#1a1a2e"]
a_note [label="highest quality\nmost chemistry\n2-3 day process" fillcolor="#263238" fontcolor="#2196F3" shape=note]
a1 -> a2 -> a3 -> a4 -> a5 -> a_note
}
subgraph cluster_b {
label="B: FIBER + BIORESIN COMPOSITE\n(Robert Murray-Smith)" fontcolor="#4CAF50" fontsize=11 fontname="Helvetica Bold"
color="#4CAF50" style=dashed
b1 [label="prepare hemp fiber mat" fillcolor="#2E7D32" fontcolor="white"]
b2 [label="make bioresin:\nseaweed + corn starch" fillcolor="#388E3C" fontcolor="white"]
b3 [label="impregnate fiber with resin" fillcolor="#43A047" fontcolor="white"]
b4 [label="dry at 150-200°C" fillcolor="#66BB6A" fontcolor="white"]
b_note [label="simpler chemistry\ncomposite (not pure)\n1 day process" fillcolor="#263238" fontcolor="#4CAF50" shape=note]
b1 -> b2 -> b3 -> b4 -> b_note
}
subgraph cluster_c {
label="C: CITRIC ACID CROSSLINKING\n(Beluns et al. 2023)" fontcolor="#FF9800" fontsize=11 fontname="Helvetica Bold"
color="#FF9800" style=dashed
c1 [label="make hemp paper\nfrom chopped fiber" fillcolor="#E65100" fontcolor="white"]
c2 [label="soak in glycerol +\ncitric acid solution" fillcolor="#F57C00" fontcolor="white"]
c3 [label="cure at 140°C\nunder weight" fillcolor="#FF9800" fontcolor="white"]
c_note [label="no NaOH needed\nsafest approach\nup to 70 MPa strength" fillcolor="#263238" fontcolor="#FF9800" shape=note]
c1 -> c2 -> c3 -> c_note
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 74 KiB

View file

@ -1,150 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.43.0 (0)
-->
<!-- Title: three_approaches Pages: 1 -->
<svg width="602pt" height="506pt"
viewBox="0.00 0.00 602.00 506.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 502)">
<title>three_approaches</title>
<polygon fill="#1a1a2e" stroke="transparent" points="-4,4 -4,-502 598,-502 598,4 -4,4"/>
<text text-anchor="start" x="153" y="-483.8" font-family="Times,serif" font-weight="bold" font-size="14.00" fill="#cccccc">three approaches to hemp bioplastic</text>
<g id="clust1" class="cluster">
<title>cluster_a</title>
<polygon fill="#1a1a2e" stroke="#2196f3" stroke-dasharray="5,2" points="8,-8 8,-467 182,-467 182,-8 8,-8"/>
<text text-anchor="middle" x="95" y="-454.2" font-family="Helvetica Bold" font-size="11.00" fill="#2196f3">A: CELLULOSE EXTRACTION</text>
<text text-anchor="middle" x="95" y="-442.2" font-family="Helvetica Bold" font-size="11.00" fill="#2196f3">(most documented)</text>
</g>
<g id="clust2" class="cluster">
<title>cluster_b</title>
<polygon fill="#1a1a2e" stroke="#4caf50" stroke-dasharray="5,2" points="190,-85 190,-467 391,-467 391,-85 190,-85"/>
<text text-anchor="middle" x="290.5" y="-454.2" font-family="Helvetica Bold" font-size="11.00" fill="#4caf50">B: FIBER + BIORESIN COMPOSITE</text>
<text text-anchor="middle" x="290.5" y="-442.2" font-family="Helvetica Bold" font-size="11.00" fill="#4caf50">(Robert Murray&#45;Smith)</text>
</g>
<g id="clust3" class="cluster">
<title>cluster_c</title>
<polygon fill="#1a1a2e" stroke="#ff9800" stroke-dasharray="5,2" points="399,-162 399,-467 586,-467 586,-162 399,-162"/>
<text text-anchor="middle" x="492.5" y="-454.2" font-family="Helvetica Bold" font-size="11.00" fill="#ff9800">C: CITRIC ACID CROSSLINKING</text>
<text text-anchor="middle" x="492.5" y="-442.2" font-family="Helvetica Bold" font-size="11.00" fill="#ff9800">(Beluns et al. 2023)</text>
</g>
<!-- a1 -->
<g id="node1" class="node">
<title>a1</title>
<polygon fill="#1565c0" stroke="black" points="160.5,-427 29.5,-427 29.5,-391 160.5,-391 160.5,-427"/>
<text text-anchor="middle" x="95" y="-406.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">ret &amp; decorticate stalks</text>
</g>
<!-- a2 -->
<g id="node2" class="node">
<title>a2</title>
<polygon fill="#1976d2" stroke="black" points="173,-355 17,-355 17,-319 173,-319 173,-355"/>
<text text-anchor="middle" x="95" y="-334.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">NaOH bath to dissolve lignin</text>
</g>
<!-- a1&#45;&gt;a2 -->
<!-- a3 -->
<g id="node3" class="node">
<title>a3</title>
<polygon fill="#1e88e5" stroke="black" points="163.5,-283 26.5,-283 26.5,-247 163.5,-247 163.5,-283"/>
<text text-anchor="middle" x="95" y="-262.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">bleach &amp; purify cellulose</text>
</g>
<!-- a2&#45;&gt;a3 -->
<!-- a4 -->
<g id="node4" class="node">
<title>a4</title>
<polygon fill="#42a5f5" stroke="black" points="145.5,-208.5 44.5,-208.5 44.5,-172.5 145.5,-172.5 145.5,-208.5"/>
<text text-anchor="middle" x="95" y="-188" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">mix with glycerol</text>
</g>
<!-- a3&#45;&gt;a4 -->
<!-- a5 -->
<g id="node5" class="node">
<title>a5</title>
<polygon fill="#64b5f6" stroke="black" points="148.5,-131.5 41.5,-131.5 41.5,-95.5 148.5,-95.5 148.5,-131.5"/>
<text text-anchor="middle" x="95" y="-111" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#1a1a2e">hot press at 150°C</text>
</g>
<!-- a4&#45;&gt;a5 -->
<!-- a_note -->
<g id="node6" class="node">
<title>a_note</title>
<polygon fill="#263238" stroke="black" points="136,-57 48,-57 48,-16 142,-16 142,-51 136,-57"/>
<polyline fill="none" stroke="black" points="136,-57 136,-51 "/>
<polyline fill="none" stroke="black" points="142,-51 136,-51 "/>
<text text-anchor="middle" x="95" y="-45" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#2196f3">highest quality</text>
<text text-anchor="middle" x="95" y="-34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#2196f3">most chemistry</text>
<text text-anchor="middle" x="95" y="-23" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#2196f3">2&#45;3 day process</text>
</g>
<!-- a5&#45;&gt;a_note -->
<!-- b1 -->
<g id="node7" class="node">
<title>b1</title>
<polygon fill="#2e7d32" stroke="black" points="356,-427 224,-427 224,-391 356,-391 356,-427"/>
<text text-anchor="middle" x="290" y="-406.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">prepare hemp fiber mat</text>
</g>
<!-- b2 -->
<g id="node8" class="node">
<title>b2</title>
<polygon fill="#388e3c" stroke="black" points="354,-355 226,-355 226,-319 354,-319 354,-355"/>
<text text-anchor="middle" x="290" y="-340" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">make bioresin:</text>
<text text-anchor="middle" x="290" y="-329" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">seaweed + corn starch</text>
</g>
<!-- b1&#45;&gt;b2 -->
<!-- b3 -->
<g id="node9" class="node">
<title>b3</title>
<polygon fill="#43a047" stroke="black" points="364.5,-283 215.5,-283 215.5,-247 364.5,-247 364.5,-283"/>
<text text-anchor="middle" x="290" y="-262.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">impregnate fiber with resin</text>
</g>
<!-- b2&#45;&gt;b3 -->
<!-- b4 -->
<g id="node10" class="node">
<title>b4</title>
<polygon fill="#66bb6a" stroke="black" points="340,-208.5 240,-208.5 240,-172.5 340,-172.5 340,-208.5"/>
<text text-anchor="middle" x="290" y="-188" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">dry at 150&#45;200°C</text>
</g>
<!-- b3&#45;&gt;b4 -->
<!-- b_note -->
<g id="node11" class="node">
<title>b_note</title>
<polygon fill="#263238" stroke="black" points="343.5,-134 230.5,-134 230.5,-93 349.5,-93 349.5,-128 343.5,-134"/>
<polyline fill="none" stroke="black" points="343.5,-134 343.5,-128 "/>
<polyline fill="none" stroke="black" points="349.5,-128 343.5,-128 "/>
<text text-anchor="middle" x="290" y="-122" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#4caf50">simpler chemistry</text>
<text text-anchor="middle" x="290" y="-111" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#4caf50">composite (not pure)</text>
<text text-anchor="middle" x="290" y="-100" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#4caf50">1 day process</text>
</g>
<!-- b4&#45;&gt;b_note -->
<!-- c1 -->
<g id="node12" class="node">
<title>c1</title>
<polygon fill="#e65100" stroke="black" points="546.5,-427 437.5,-427 437.5,-391 546.5,-391 546.5,-427"/>
<text text-anchor="middle" x="492" y="-412" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">make hemp paper</text>
<text text-anchor="middle" x="492" y="-401" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">from chopped fiber</text>
</g>
<!-- c2 -->
<g id="node13" class="node">
<title>c2</title>
<polygon fill="#f57c00" stroke="black" points="545,-355 439,-355 439,-319 545,-319 545,-355"/>
<text text-anchor="middle" x="492" y="-340" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">soak in glycerol +</text>
<text text-anchor="middle" x="492" y="-329" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">citric acid solution</text>
</g>
<!-- c1&#45;&gt;c2 -->
<!-- c3 -->
<g id="node14" class="node">
<title>c3</title>
<polygon fill="#ff9800" stroke="black" points="533.5,-283 450.5,-283 450.5,-247 533.5,-247 533.5,-283"/>
<text text-anchor="middle" x="492" y="-268" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">cure at 140°C</text>
<text text-anchor="middle" x="492" y="-257" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">under weight</text>
</g>
<!-- c2&#45;&gt;c3 -->
<!-- c_note -->
<g id="node15" class="node">
<title>c_note</title>
<polygon fill="#263238" stroke="black" points="547.5,-211 430.5,-211 430.5,-170 553.5,-170 553.5,-205 547.5,-211"/>
<polyline fill="none" stroke="black" points="547.5,-211 547.5,-205 "/>
<polyline fill="none" stroke="black" points="553.5,-205 547.5,-205 "/>
<text text-anchor="middle" x="492" y="-199" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ff9800">no NaOH needed</text>
<text text-anchor="middle" x="492" y="-188" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ff9800">safest approach</text>
<text text-anchor="middle" x="492" y="-177" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ff9800">up to 70 MPa strength</text>
</g>
<!-- c3&#45;&gt;c_note -->
</g>
</svg>

Before

Width:  |  Height:  |  Size: 8.6 KiB

View file

@ -1,38 +0,0 @@
digraph troubleshooting {
bgcolor="#1a1a2e"
rankdir=TB
node [fontname="Helvetica" fontsize=10 style=filled shape=box]
edge [color="#888888" fontname="Helvetica" fontsize=9 fontcolor="#aaaaaa"]
label=<<B><FONT COLOR="#cccccc" POINT-SIZE="14">what goes wrong &amp; how to fix it</FONT></B>>
labelloc=t
subgraph cluster_problems {
label="" color=transparent
p1 [label="CRUMBLES\nafter pressing" fillcolor="#B71C1C" fontcolor="white"]
f1 [label="too dry, low pressure,\nor temperature too low\n→ add glycerol (15%+)\n→ increase pressure\n→ verify 140-150°C" fillcolor="#263238" fontcolor="#4CAF50"]
p2 [label="SPONGY\nporous texture" fillcolor="#B71C1C" fontcolor="white"]
f2 [label="moisture remained\nsteam created voids\n→ dry overnight at 60°C\n→ verify weight is stable\nbefore pressing" fillcolor="#263238" fontcolor="#4CAF50"]
p3 [label="BROWN\nafter extraction" fillcolor="#B71C1C" fontcolor="white"]
f3 [label="lignin remains\ninsufficient delignification\n→ repeat NaOH bath\n→ add bleaching step\n→ check NaOH concentration" fillcolor="#263238" fontcolor="#4CAF50"]
p4 [label="DISSOLVES\nin water" fillcolor="#B71C1C" fontcolor="white"]
f4 [label="no crosslinking\nglycerol is water-soluble\n→ add citric acid (5%)\n→ cure at 140°C\n→ or reduce glycerol" fillcolor="#263238" fontcolor="#4CAF50"]
p5 [label="BRITTLE\nshatters on impact" fillcolor="#B71C1C" fontcolor="white"]
f5 [label="too little plasticizer\nor cellulose degraded\n→ increase glycerol to 25-30%\n→ use gentler NaOH (<7.5%)" fillcolor="#263238" fontcolor="#4CAF50"]
p6 [label="LOW YIELD\n(<20% cellulose)" fillcolor="#B71C1C" fontcolor="white"]
f6 [label="NaOH too concentrated\nor temperature too high\n→ use 5% NaOH protocol\n→ stay under 80°C\n→ use bast fiber not hurd" fillcolor="#263238" fontcolor="#4CAF50"]
p1 -> f1
p2 -> f2
p3 -> f3
p4 -> f4
p5 -> f5
p6 -> f6
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 53 KiB

View file

@ -1,155 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.43.0 (0)
-->
<!-- Title: troubleshooting Pages: 1 -->
<svg width="994pt" height="198pt"
viewBox="0.00 0.00 994.00 198.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 194)">
<title>troubleshooting</title>
<polygon fill="#1a1a2e" stroke="transparent" points="-4,4 -4,-194 990,-194 990,4 -4,4"/>
<text text-anchor="start" x="370" y="-175.8" font-family="Times,serif" font-weight="bold" font-size="14.00" fill="#cccccc">what goes wrong &amp; how to fix it</text>
<g id="clust1" class="cluster">
<title>cluster_problems</title>
<polygon fill="#1a1a2e" stroke="transparent" points="8,-8 8,-159 978,-159 978,-8 8,-8"/>
</g>
<!-- p1 -->
<g id="node1" class="node">
<title>p1</title>
<polygon fill="#b71c1c" stroke="black" points="946.5,-151 863.5,-151 863.5,-115 946.5,-115 946.5,-151"/>
<text text-anchor="middle" x="905" y="-136" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">CRUMBLES</text>
<text text-anchor="middle" x="905" y="-125" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">after pressing</text>
</g>
<!-- f1 -->
<g id="node2" class="node">
<title>f1</title>
<polygon fill="#263238" stroke="black" points="969.5,-79 840.5,-79 840.5,-16 969.5,-16 969.5,-79"/>
<text text-anchor="middle" x="905" y="-67" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#4caf50">too dry, low pressure,</text>
<text text-anchor="middle" x="905" y="-56" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#4caf50">or temperature too low</text>
<text text-anchor="middle" x="905" y="-45" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#4caf50">→ add glycerol (15%+)</text>
<text text-anchor="middle" x="905" y="-34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#4caf50">→ increase pressure</text>
<text text-anchor="middle" x="905" y="-23" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#4caf50">→ verify 140&#45;150°C</text>
</g>
<!-- p1&#45;&gt;f1 -->
<g id="edge1" class="edge">
<title>p1&#45;&gt;f1</title>
<path fill="none" stroke="#888888" d="M905,-114.7C905,-107.27 905,-98.25 905,-89.29"/>
<polygon fill="#888888" stroke="#888888" points="908.5,-89.28 905,-79.28 901.5,-89.28 908.5,-89.28"/>
</g>
<!-- p2 -->
<g id="node3" class="node">
<title>p2</title>
<polygon fill="#b71c1c" stroke="black" points="798,-151 710,-151 710,-115 798,-115 798,-151"/>
<text text-anchor="middle" x="754" y="-136" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">SPONGY</text>
<text text-anchor="middle" x="754" y="-125" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">porous texture</text>
</g>
<!-- f2 -->
<g id="node4" class="node">
<title>f2</title>
<polygon fill="#263238" stroke="black" points="822,-79 686,-79 686,-16 822,-16 822,-79"/>
<text text-anchor="middle" x="754" y="-67" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#4caf50">moisture remained</text>
<text text-anchor="middle" x="754" y="-56" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#4caf50">steam created voids</text>
<text text-anchor="middle" x="754" y="-45" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#4caf50">→ dry overnight at 60°C</text>
<text text-anchor="middle" x="754" y="-34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#4caf50">→ verify weight is stable</text>
<text text-anchor="middle" x="754" y="-23" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#4caf50">before pressing</text>
</g>
<!-- p2&#45;&gt;f2 -->
<g id="edge2" class="edge">
<title>p2&#45;&gt;f2</title>
<path fill="none" stroke="#888888" d="M754,-114.7C754,-107.27 754,-98.25 754,-89.29"/>
<polygon fill="#888888" stroke="#888888" points="757.5,-89.28 754,-79.28 750.5,-89.28 757.5,-89.28"/>
</g>
<!-- p3 -->
<g id="node5" class="node">
<title>p3</title>
<polygon fill="#b71c1c" stroke="black" points="635,-151 543,-151 543,-115 635,-115 635,-151"/>
<text text-anchor="middle" x="589" y="-136" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">BROWN</text>
<text text-anchor="middle" x="589" y="-125" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">after extraction</text>
</g>
<!-- f3 -->
<g id="node6" class="node">
<title>f3</title>
<polygon fill="#263238" stroke="black" points="668,-79 510,-79 510,-16 668,-16 668,-79"/>
<text text-anchor="middle" x="589" y="-67" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#4caf50">lignin remains</text>
<text text-anchor="middle" x="589" y="-56" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#4caf50">insufficient delignification</text>
<text text-anchor="middle" x="589" y="-45" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#4caf50">→ repeat NaOH bath</text>
<text text-anchor="middle" x="589" y="-34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#4caf50">→ add bleaching step</text>
<text text-anchor="middle" x="589" y="-23" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#4caf50">→ check NaOH concentration</text>
</g>
<!-- p3&#45;&gt;f3 -->
<g id="edge3" class="edge">
<title>p3&#45;&gt;f3</title>
<path fill="none" stroke="#888888" d="M589,-114.7C589,-107.27 589,-98.25 589,-89.29"/>
<polygon fill="#888888" stroke="#888888" points="592.5,-89.28 589,-79.28 585.5,-89.28 592.5,-89.28"/>
</g>
<!-- p4 -->
<g id="node7" class="node">
<title>p4</title>
<polygon fill="#b71c1c" stroke="black" points="458,-151 388,-151 388,-115 458,-115 458,-151"/>
<text text-anchor="middle" x="423" y="-136" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">DISSOLVES</text>
<text text-anchor="middle" x="423" y="-125" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">in water</text>
</g>
<!-- f4 -->
<g id="node8" class="node">
<title>f4</title>
<polygon fill="#263238" stroke="black" points="491.5,-79 354.5,-79 354.5,-16 491.5,-16 491.5,-79"/>
<text text-anchor="middle" x="423" y="-67" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#4caf50">no crosslinking</text>
<text text-anchor="middle" x="423" y="-56" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#4caf50">glycerol is water&#45;soluble</text>
<text text-anchor="middle" x="423" y="-45" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#4caf50">→ add citric acid (5%)</text>
<text text-anchor="middle" x="423" y="-34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#4caf50">→ cure at 140°C</text>
<text text-anchor="middle" x="423" y="-23" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#4caf50">→ or reduce glycerol</text>
</g>
<!-- p4&#45;&gt;f4 -->
<g id="edge4" class="edge">
<title>p4&#45;&gt;f4</title>
<path fill="none" stroke="#888888" d="M423,-114.7C423,-107.27 423,-98.25 423,-89.29"/>
<polygon fill="#888888" stroke="#888888" points="426.5,-89.28 423,-79.28 419.5,-89.28 426.5,-89.28"/>
</g>
<!-- p5 -->
<g id="node9" class="node">
<title>p5</title>
<polygon fill="#b71c1c" stroke="black" points="308,-151 200,-151 200,-115 308,-115 308,-151"/>
<text text-anchor="middle" x="254" y="-136" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">BRITTLE</text>
<text text-anchor="middle" x="254" y="-125" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">shatters on impact</text>
</g>
<!-- f5 -->
<g id="node10" class="node">
<title>f5</title>
<polygon fill="#263238" stroke="black" points="336,-73.5 172,-73.5 172,-21.5 336,-21.5 336,-73.5"/>
<text text-anchor="middle" x="254" y="-61.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#4caf50">too little plasticizer</text>
<text text-anchor="middle" x="254" y="-50.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#4caf50">or cellulose degraded</text>
<text text-anchor="middle" x="254" y="-39.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#4caf50">→ increase glycerol to 25&#45;30%</text>
<text text-anchor="middle" x="254" y="-28.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#4caf50">→ use gentler NaOH (&lt;7.5%)</text>
</g>
<!-- p5&#45;&gt;f5 -->
<g id="edge5" class="edge">
<title>p5&#45;&gt;f5</title>
<path fill="none" stroke="#888888" d="M254,-114.7C254,-105.81 254,-94.65 254,-84.03"/>
<polygon fill="#888888" stroke="#888888" points="257.5,-83.7 254,-73.7 250.5,-83.7 257.5,-83.7"/>
</g>
<!-- p6 -->
<g id="node11" class="node">
<title>p6</title>
<polygon fill="#b71c1c" stroke="black" points="135.5,-151 34.5,-151 34.5,-115 135.5,-115 135.5,-151"/>
<text text-anchor="middle" x="85" y="-136" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">LOW YIELD</text>
<text text-anchor="middle" x="85" y="-125" font-family="Helvetica,sans-Serif" font-size="10.00" fill="white">(&lt;20% cellulose)</text>
</g>
<!-- f6 -->
<g id="node12" class="node">
<title>f6</title>
<polygon fill="#263238" stroke="black" points="154,-79 16,-79 16,-16 154,-16 154,-79"/>
<text text-anchor="middle" x="85" y="-67" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#4caf50">NaOH too concentrated</text>
<text text-anchor="middle" x="85" y="-56" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#4caf50">or temperature too high</text>
<text text-anchor="middle" x="85" y="-45" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#4caf50">→ use 5% NaOH protocol</text>
<text text-anchor="middle" x="85" y="-34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#4caf50">→ stay under 80°C</text>
<text text-anchor="middle" x="85" y="-23" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#4caf50">→ use bast fiber not hurd</text>
</g>
<!-- p6&#45;&gt;f6 -->
<g id="edge6" class="edge">
<title>p6&#45;&gt;f6</title>
<path fill="none" stroke="#888888" d="M85,-114.7C85,-107.27 85,-98.25 85,-89.29"/>
<polygon fill="#888888" stroke="#888888" points="88.5,-89.28 85,-79.28 81.5,-89.28 88.5,-89.28"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 9.9 KiB

View file

@ -1,472 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>hemp bioplastic process &#8212; unturf.</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="theme-color" content="#5871ad">
<meta charset="utf-8">
<link rel="stylesheet" href="/css/chunkfive/stylesheet.css" type="text/css" charset="utf-8" />
<link rel="stylesheet" href="/css/pico.classless.min.css">
<link rel="stylesheet" href="/css/unturf.css">
</head>
<body>
<main class="content-wide">
<center><a href="/"><h1 class="site-title">unturf.</h1></a></center>
<center><h3>grow food not lawn</h3></center>
<center class="nav-links"><small><a href="/let-us-define-a-permacomputer/">manifesto</a> · <a href="/eight-forms-of-capital/">eight forms of capital</a> · <a href="/single-use-plastics/">single-use plastics</a> · <a href="/hemp-bioplastic/">hemp bioplastic</a> · <a href="/hemp-bioplastic/process/" aria-current="page">recipe</a> · <a href="/software/">free software</a></small></center>
<h2>Hemp Bioplastic: Process</h2>
<p>
A step-by-step recipe for turning hemp stalks into bioplastic. Three approaches exist — from full cellulose extraction (most chemistry) to citric acid crosslinking (least chemistry). This page covers all three with exact quantities, temperatures, times, & safety notes.
</p>
<p>
Start with a 50g test batch. Expect 2-3 days from stalk to finished object. Expect to fail the first time. Expect to learn why.
</p>
<!-- ============================================================ -->
<!-- PLANT ANATOMY -->
<!-- ============================================================ -->
<span class="step-label">STEP 1</span>
<h3>Which Parts of Hemp We Harvest</h3>
<p>
Hemp bioplastic comes from <b>stalks only</b> — specifically bast fiber, the outer bark layer of the main stem. Not leaves. Not seeds. Not roots. Each part serves a different purpose.
</p>
<figure class="diagram">
<img src="img/plant-anatomy.svg" alt="Hemp plant anatomy: which parts we use for bioplastic">
<figcaption>bioplastic comes from stalk bast fiber. everything else serves other purposes.</figcaption>
</figure>
<table>
<thead>
<tr><th>Plant Part</th><th>Use for Bioplastic?</th><th>What It Does Instead</th></tr>
</thead>
<tbody>
<tr><td><b>Stalk — bast fiber</b></td><td>Yes — primary source</td><td>77% cellulose, highest quality</td></tr>
<tr><td><b>Stalk — hurd (core)</b></td><td>Yes — lower grade</td><td>44% cellulose, or use for hempcrete, animal bedding, garden mulch</td></tr>
<tr><td>Leaves</td><td>No</td><td>Compost, mulch, animal feed</td></tr>
<tr><td>Seeds</td><td>No</td><td>Food (hemp hearts), oil, or save for next crop</td></tr>
<tr><td>Roots</td><td>No</td><td>Stay in ground — improve soil structure, break compaction, add organic matter</td></tr>
<tr><td>Flowers</td><td>No</td><td>Fiber varieties produce minimal flower; if present, compost or dry</td></tr>
</tbody>
</table>
<p>
Harvest stalks when they reach full height (2-4 meters, ~120 days). Cut at ground level. Leave roots in soil — they decompose & feed next season's crop. Strip leaves & set aside for compost. Collect seeds if needed for replanting.
</p>
<!-- ============================================================ -->
<!-- THREE APPROACHES -->
<!-- ============================================================ -->
<span class="step-label">STEP 2</span>
<h3>Three Approaches</h3>
<p>
No single canonical recipe exists. Research reveals three distinct paths, each with different tradeoffs between chemistry complexity & material quality.<sup id="ref1"><a href="#fn1">[1]</a></sup>
</p>
<figure class="diagram">
<img src="img/three-approaches.svg" alt="Three approaches: cellulose extraction, fiber composite, citric acid crosslinking">
<figcaption>pick your path based on equipment, chemistry comfort, & desired result.</figcaption>
</figure>
<table>
<thead>
<tr><th>Approach</th><th>Chemistry</th><th>Time</th><th>Strength</th><th>Best For</th></tr>
</thead>
<tbody>
<tr><td>A: Cellulose extraction</td><td>NaOH + acid + bleach</td><td>2-3 days</td><td>2-7 MPa</td><td>Pure bioplastic objects</td></tr>
<tr><td>B: Fiber + bioresin</td><td>Seaweed + starch (no NaOH)</td><td>1 day</td><td>Moderate</td><td>Panels, flat sheets</td></tr>
<tr><td>C: Citric acid crosslink</td><td>Citric acid + glycerol (no NaOH)</td><td>1 day</td><td>Up to 70 MPa</td><td>Strongest result, safest chemistry</td></tr>
</tbody>
</table>
<div class="recipe-box">
<b>Recommendation for first attempt:</b> Approach C (citric acid crosslinking) avoids all NaOH, all acid work, & all bleaching while producing material up to 70 MPa tensile strength.<sup id="ref5"><a href="#fn5">[5]</a></sup> If you want to understand full cellulose extraction, try Approach A on a second batch.
</div>
<!-- ============================================================ -->
<!-- EQUIPMENT -->
<!-- ============================================================ -->
<span class="step-label">STEP 3</span>
<h3>Equipment</h3>
<figure class="diagram">
<img src="img/equipment.svg" alt="Equipment needed for a 50g test batch">
<figcaption>total equipment cost: $500-2,000 for basic workshop setup.</figcaption>
</figure>
<h4>Chemistry (Approach A only)</h4>
<ul>
<li>Stainless steel pot, 2-5 liter — <b>NOT aluminum</b> (reacts with NaOH)</li>
<li>Hot plate capable of 80-100°C</li>
<li>Digital thermometer, 0-200°C range</li>
<li>pH strips, range 1-14</li>
<li>Vacuum filtration: Buchner funnel + vacuum flask + water aspirator</li>
<li>Kitchen scale, 0.1g precision</li>
<li>Mortar & pestle or coffee grinder for fiber size reduction</li>
<li>Metal sieve, 1.5mm mesh</li>
<li>Multiple large buckets for washing</li>
</ul>
<h4>Pressing (all approaches)</h4>
<ul>
<li>Metal mold — aluminum soap mold works for test batches</li>
<li>Oven capable of 140-200°C, or a rosin press ($200-500)</li>
<li>Bench vise, hydraulic press, or heavy C-clamps for pressure</li>
<li>Heat-resistant gloves rated 200°C+</li>
</ul>
<h4>Safety (non-negotiable)</h4>
<ul>
<li>Chemical splash goggles — not just safety glasses</li>
<li>Nitrile gloves, elbow length</li>
<li>Ventilated workspace — fume hood or work outdoors</li>
<li>Bottle of 2% vinegar nearby for NaOH spill neutralization</li>
<li>Running water within arm's reach</li>
</ul>
<!-- ============================================================ -->
<!-- RETTING -->
<!-- ============================================================ -->
<span class="step-label">STEP 4</span>
<h3>Retting (Preparing Stalks)</h3>
<p>
Before separating fiber from stalk, retting partially breaks down the pectin that binds bast fiber to hurd. Skip this & decortication becomes very difficult.<sup id="ref12"><a href="#fn12">[12]</a></sup>
</p>
<figure class="diagram">
<img src="img/retting-test.svg" alt="Retting process and three tests to check readiness">
<figcaption>dew retting takes 3-45 days depending on temperature. three tests confirm readiness.</figcaption>
</figure>
<h4>Dew Retting (simplest)</h4>
<ol>
<li>Lay harvested stalks on grass, exposed to rain & dew</li>
<li>Turn stalks every few days for even breakdown</li>
<li>Maintain ~30% moisture — sprinkle with water if dry</li>
<li>Duration depends on temperature:
<ul>
<li>37°C → 3 days</li>
<li>20°C → 7-8 days</li>
<li>12°C → 15-17 days</li>
<li>7°C → 30-45 days</li>
<li>Below 5°C → retting stops</li>
</ul>
</li>
</ol>
<h4>Water Retting (faster)</h4>
<ol>
<li>Submerge stalks in warm water for ~10 days</li>
<li>Change water periodically — it will smell</li>
<li>Bacteria in water accelerate pectin breakdown</li>
</ol>
<h4>Three Tests for Readiness</h4>
<div class="recipe-box">
<b>Bend test:</b> Bend dried stalks back & forth. Hurd should crack & fall free. Fiber should NOT break when shaken.<br><br>
<b>Peel test:</b> Peel fiber at base of stem. Should separate easily for several inches. If fiber breaks after a few inches, retting needs more time.<br><br>
<b>Color test:</b> Fiber bundles turning white signals readiness.
</div>
<div class="warning-box">
<b>Over-retting weakens fiber.</b> Under-retting makes separation very difficult. Test every 2-3 days. When in doubt, under-ret — you can always ret longer but cannot un-ret.
</div>
<!-- ============================================================ -->
<!-- DECORTICATION -->
<!-- ============================================================ -->
<span class="step-label">STEP 5</span>
<h3>Decortication (Separating Fiber)</h3>
<p>
After retting, separate bast fiber from hurd by hand.<sup id="ref9"><a href="#fn9">[9]</a></sup> Target: 95% clean bast fiber with 5% or less hurd contamination.
</p>
<ol>
<li><b>Break:</b> Bend & snap dried retted stalks repeatedly. Woody hurd should crack & fall away from flexible bast fiber.</li>
<li><b>Shake:</b> Shake vigorously to dislodge hurd fragments.</li>
<li><b>Scutch:</b> Beat fibers against a hard surface to remove remaining hurd.</li>
<li><b>Hackle:</b> Pull fibers through coarse wire brushes or metal combs to remove short fibers & debris.</li>
</ol>
<p>
For fresh (un-retted) stalks: use a knife at the base to separate the green outer fiber layer from the woody core. Peel bast fiber upward toward the tip. Slower but works without retting.
</p>
<!-- ============================================================ -->
<!-- APPROACH A: CELLULOSE EXTRACTION -->
<!-- ============================================================ -->
<span class="step-label">STEP 6</span>
<h3>Approach A: Cellulose Extraction</h3>
<p>
Full chemical extraction produces the purest cellulose. Three protocols exist — start with Protocol 2 (gentlest) for a first attempt.<sup id="ref1b"><a href="#fn1">[1]</a></sup>
</p>
<figure class="diagram">
<img src="img/cellulose-extraction.svg" alt="Cellulose extraction process: prepare, alkali treat, bleach, purify">
<figcaption>50g hemp powder yields ~25g pure cellulose through 4 stages.</figcaption>
</figure>
<h4>Size Reduction</h4>
<ol>
<li>Dry separated bast fibers at 50°C until constant weight</li>
<li>Cut to 2-3 cm lengths</li>
<li>Grind using blender, coffee grinder, or mortar & pestle</li>
<li>Pass through 1.5mm metal sieve</li>
<li>Weigh 50g of powder (test batch)</li>
</ol>
<h4>Protocol 1: Full Extraction (highest purity)</h4>
<div class="recipe-box">
<b>Alkali treatment:</b><sup id="ref2"><a href="#fn2">[2]</a></sup><br>
50g hemp powder + 750 mL of 12% NaOH solution (= 90g NaOH pellets dissolved in 750 mL water). Solid/liquid ratio 1:15. Heat to 80°C with continuous stirring at 500 rpm. Hold for 3 hours. Vacuum filter. Wash with deionized water 4-5 times until wash water reaches neutral pH. Dry at 60°C overnight.<br><br>
<b>Bleaching (optional but recommended):</b><sup id="ref3"><a href="#fn3">[3]</a></sup><br>
8% hydrogen peroxide solution, pH adjusted to 12 with NaOH. 40°C, solution/solid ratio 30:1. 1 hour per cycle, repeat 4 cycles. Wash until neutral. Safer than sodium chlorite for workshop use.<br><br>
<b>Hemicellulose removal:</b><br>
Treat bleached product with 17.5% NaOH solution. Room temperature. 5 hours with continuous stirring at 500 rpm. Vacuum filter. Wash 3 times with deionized water. Dry at 60°C overnight.
</div>
<h4>Protocol 2: Gentle Extraction (best for beginners)</h4>
<div class="recipe-box">
<b>Alkali treatment:</b><sup id="ref6"><a href="#fn6">[6]</a></sup><br>
5% NaOH solution (= 50g NaOH per liter of water). Soak hemp fibers at room temperature (23°C) for 4 hours. No heating required. Wash with tap water until pH ~7. Oven dry at 80°C until constant weight.<br><br>
This protocol found 5% NaOH for 1 hour nearly as effective as 4 hours. Start with 1 hour, check results, extend if needed.
</div>
<div class="warning-box">
<b>NaOH safety.</b> ALWAYS add NaOH pellets to water, NEVER water to NaOH. Dissolution generates heat & can spatter violently. At 12-17.5% concentration, NaOH solution dissolves skin on contact. Wear splash goggles & elbow-length nitrile gloves. Keep running water within arm's reach. If skin contact occurs, flush with water for 15+ minutes. Store NaOH pellets in airtight containers — they absorb moisture from air.
</div>
<!-- ============================================================ -->
<!-- APPROACH B: BIORESIN COMPOSITE -->
<!-- ============================================================ -->
<span class="step-label">STEP 7</span>
<h3>Approach B: Fiber + Bioresin Composite</h3>
<p>
Robert Murray-Smith's method skips all chemical extraction.<sup id="ref4"><a href="#fn4">[4]</a></sup> Instead, hemp fiber acts as reinforcement inside a bioresin matrix made from seaweed & corn starch.
</p>
<div class="recipe-box">
<b>Bioresin recipe:</b><br>
25g dried seaweed (carrageenan or agar) + 50g corn starch + 1 liter water. Heat & stir until dissolved into a viscous liquid.<br><br>
<b>Process:</b><br>
1. Prepare a hemp fiber mat (loose fiber spread into a flat layer)<br>
2. Pour bioresin over fiber mat<br>
3. Roll with a roller until resin penetrates fully through the mat<br>
4. Dry in oven at 150-200°C for 20 minutes<br>
5. Result: a rigid composite panel<br><br>
<b>Variant:</b> Replace seaweed/starch with casein (milk protein) + tannin (from strong tea or chestnut extract) for a harder result. Murray-Smith describes this as "quite hard, quite plastic."
</div>
<p>
This produces a composite — not pure bioplastic. Hemp fiber (30-50% by weight) reinforces a starch or protein matrix. Simpler chemistry, fewer hazards, one-day process. Tradeoff: less versatile shapes, works best for flat panels & sheets.
</p>
<!-- ============================================================ -->
<!-- APPROACH C: CITRIC ACID CROSSLINKING -->
<!-- ============================================================ -->
<span class="step-label">STEP 8</span>
<h3>Approach C: Citric Acid Crosslinking</h3>
<p>
Developed by Beluns et al. at Riga Technical University (2023).<sup id="ref5b"><a href="#fn5">[5]</a></sup> No NaOH. No acid baths. No bleach. Produces material up to 70 MPa tensile strength — comparable to commodity petroleum plastics. The safest & strongest approach.
</p>
<div class="recipe-box">
<b>Process:</b><br>
1. Chop hemp stalks (bast + hurd together works) & soak in water<br>
2. Spread fibers on a screen, press flat, dry — making a rough hemp paper<br>
3. Prepare impregnation solution: 2g glycerol + 1g citric acid + small amount of PEG (polyethylene glycol), dissolved in minimal water<br>
4. Soak hemp paper in solution until saturated<br>
5. Place on a metal sheet, cover with another sheet<br>
6. Cure at 140°C in oven for 30-60 minutes under weight (a brick or cast iron pan on top)<br>
7. Wash in water for 24-48 hours to remove unreacted material<br>
8. Dry at room temperature
</div>
<p>
Tradeoff: requires xylan (hemicellulose powder) & PEG (polyethylene glycol) — specialty chemicals, but non-hazardous & available from lab suppliers online. The citric acid crosslinks cellulose chains, creating thermal bonds that reduce water uptake 7-fold versus untreated hemp paper. These bonds reverse at high temperature, making the material theoretically recyclable by re-heating.
</p>
<!-- ============================================================ -->
<!-- MIXING & PRESSING -->
<!-- ============================================================ -->
<span class="step-label">STEP 9</span>
<h3>Mixing & Hot Pressing (Approach A)</h3>
<p>
After extracting cellulose via Approach A, mix with plasticizer & press into shapes.
</p>
<figure class="diagram">
<img src="img/pressing.svg" alt="Mixing cellulose with glycerol and hot pressing into molds">
<figcaption>the material MUST be completely dry before pressing. this is the most common failure point.</figcaption>
</figure>
<div class="recipe-box">
<b>Mixing:</b><br>
1. Weigh dried cellulose<br>
2. Add glycerol: 15% by weight for rigid, 30% for flexible<br>
3. Add water to make a workable slurry<br>
4. Stir at 80°C for 60 minutes until homogeneous<br>
5. Optional: add 5% citric acid by weight for water resistance<br><br>
<b>Drying (critical):</b><br>
6. Spread mixture on a tray<br>
7. Dry at 60°C overnight — or until weight stabilizes<br>
8. Grind to a breadcrumb/sawdust consistency<br><br>
<b>Pressing:</b><sup id="ref11"><a href="#fn11">[11]</a></sup><br>
9. Coat mold interior with thin layer of vegetable oil<br>
10. Fill mold with dry material, compress lightly by hand, add lid<br>
11. Heat to 150°C (oven or heat press)<br>
12. Once at temperature, apply maximum pressure — bench vise, hydraulic press, or C-clamps<br>
13. Hold at temperature & pressure for 10-30 minutes (30 min gave best strength in testing)<br>
14. Release pressure<br>
15. Cool slowly in mold — do not rush, rapid cooling causes cracking<br>
16. Demold
</div>
<div class="warning-box">
<b>If material stays wet when pressed:</b> Steam creates voids. Result becomes spongy & porous. This represents the most common failure mode. Murray-Smith emphasizes: "if it's wet and you heat it and press it, you'll press off a lot of steam and it won't form properly."<sup id="ref4b"><a href="#fn4">[4]</a></sup> Dry overnight. Verify weight has stopped changing. Then press.
</div>
<!-- ============================================================ -->
<!-- TROUBLESHOOTING -->
<!-- ============================================================ -->
<span class="step-label">STEP 10</span>
<h3>Troubleshooting</h3>
<figure class="diagram">
<img src="img/troubleshooting.svg" alt="Common problems and solutions">
<figcaption>every failure teaches something. expect the first batch to teach more than it produces.</figcaption>
</figure>
<h4>Quality Indicators</h4>
<table>
<thead>
<tr><th>Check</th><th>Good</th><th>Bad</th></tr>
</thead>
<tbody>
<tr><td>Color after extraction</td><td>White to off-white</td><td>Brown/yellow (lignin remains)</td></tr>
<tr><td>Texture when dry</td><td>Fibrous, fluffy, crumbly</td><td>Stiff hard chunks (hurd contamination)</td></tr>
<tr><td>Weight loss from original</td><td>40-50% for bast (normal)</td><td>&gt;70% (over-treated) or &lt;30% (under-treated)</td></tr>
<tr><td>Surface after pressing</td><td>Smooth, glossy</td><td>Rough, porous, bubbled (wet)</td></tr>
<tr><td>Sound when tapped</td><td>Solid "click"</td><td>Hollow "thud" (voids inside)</td></tr>
<tr><td>Water drop test</td><td>Water beads or absorbs slowly</td><td>Instantly absorbs & softens (needs crosslinking)</td></tr>
</tbody>
</table>
<!-- ============================================================ -->
<!-- SCALING -->
<!-- ============================================================ -->
<span class="step-label">STEP 11</span>
<h3>Scaling Up</h3>
<table>
<thead>
<tr><th>Scale</th><th>Input</th><th>Yield</th><th>Time</th><th>Notes</th></tr>
</thead>
<tbody>
<tr><td>Test batch</td><td>50g bast fiber</td><td>~25g cellulose</td><td>2-3 days</td><td>One soap-mold-sized object. $5-10 in chemicals.</td></tr>
<tr><td>Useful batch</td><td>2 kg bast fiber</td><td>~1 kg cellulose</td><td>3-5 days</td><td>10-20 liter reaction vessel needed. ~100+ liters wash water.</td></tr>
<tr><td>Community batch</td><td>20 kg bast fiber</td><td>~10 kg cellulose</td><td>5-7 days</td><td>Needs mechanical stirring, larger press, waste handling plan.</td></tr>
</tbody>
</table>
<div class="warning-box">
<b>Scaling NaOH:</b> Dissolution stays exothermic. At larger volumes, add pellets slowly & monitor temperature. A 20-liter NaOH batch generates significant heat. Never dump all pellets at once.
</div>
<p>
Approach C (citric acid crosslinking) scales most easily — no chemical extraction means no waste liquor management. Just make more hemp paper, apply more solution, cure in a larger oven. A community could run this with minimal training.
</p>
<hr>
<h3>Honest Summary</h3>
<p>
Making hemp bioplastic at home stays possible but labor-intensive. A 50g test batch costs $5-10 in chemicals & takes 2-3 days. Results will vary. First batches teach more than they produce. Approach C (citric acid) offers the safest entry point with the strongest results. Approach A (full extraction) teaches the most about cellulose chemistry. Approach B (bioresin composite) produces useful panels fastest.
</p>
<p>
None of this replaces buying groceries in glass jars or using cloth bags — those remain easier. But for seed trays, plant pots, serving ware, & packaging where you want a compostable container made from your own land, this process closes a cycle. Grow it. Process it. Use it. Compost it. Grow again.
</p>
<hr>
<h3>Sources</h3>
<div class="footnotes">
<ol>
<li id="fn1">Chalannavar et al. (2025), "Industrial Cannabis sativa: Hemp Cellulose Based Bioplastic Production," <a href="https://magnascientiapub.com/journals/msabp/sites/default/files/MSABP-2025-0067.pdf" target="_blank">Magna Scientia</a>. Comprehensive review reproducing Liao protocol with 50g/12% NaOH/1:15 ratio/80°C/3h parameters. <a href="#ref1">&#8617;</a></li>
<li id="fn2">Liao (2022), <a href="https://escholarship.mcgill.ca/downloads/cz30pz65p.pdf" target="_blank">McGill University thesis</a>. Hemp nanocellulose extraction: 49.6% yield from bast fiber at 97% purity. Detailed NaOH protocol with exact quantities. <a href="#ref2">&#8617;</a></li>
<li id="fn3">Hydrogen peroxide bleaching protocol from <a href="https://pmc.ncbi.nlm.nih.gov/articles/PMC10611065/" target="_blank">PMC 10611065</a>. Safer alternative to sodium chlorite for workshop-scale cellulose bleaching. <a href="#ref3">&#8617;</a></li>
<li id="fn4">Robert Murray-Smith, <a href="https://www.youtube.com/watch?v=UCuPwBYyYKE" target="_blank">"A Hemp And Seaweed Bioplastic"</a> (2020) & <a href="https://www.youtube.com/watch?v=REqqJOaE30U" target="_blank">"Hot Press Molding Hemp Casein Plastic"</a> (2020). Workshop demonstrations with bioresin composite & casein-tannin approaches at 150°C. <a href="#ref4">&#8617;</a></li>
<li id="fn5">Beluns et al. (2023), "Sustainable hemp-based bioplastics with tunable properties via reversible thermal crosslinking of cellulose," <a href="https://pubmed.ncbi.nlm.nih.gov/37245763/" target="_blank"><i>Int J Biol Macromol</i></a>. No chemical pretreatment, citric acid crosslinking at 140°C, achieving up to 70 MPa tensile strength & 7-fold water uptake reduction. <a href="#ref5">&#8617;</a></li>
<li id="fn6">Dhakal et al. (2022), <a href="https://pmc.ncbi.nlm.nih.gov/articles/PMC9182753/" target="_blank">PMC 9182753</a>. 5% NaOH treatment of hemp at room temperature for 1-4 hours — gentlest effective protocol. <a href="#ref6">&#8617;</a></li>
<li id="fn7"><a href="https://pmc.ncbi.nlm.nih.gov/articles/PMC12073554/" target="_blank">PMC 12073554</a> (2025). Hemp waste cellulose extraction via alternating 2% NaOH & 1M HCl treatments. Milder protocol with 47% yield. <a href="#ref7">&#8617;</a></li>
<li id="fn8"><a href="https://pmc.ncbi.nlm.nih.gov/articles/PMC5456901/" target="_blank">PMC 5456901</a>. Abraham et al. (2016), hemp hurd cellulose microfiber extraction via alkaline & acid hydrolysis. <a href="#ref8">&#8617;</a></li>
<li id="fn9">Hemp In A Pot, <a href="https://www.youtube.com/watch?v=iywsYqBxrPY" target="_blank">"Manual Decortication of Hemp Stalks By Hand"</a> (2020). Practical video demonstration of hand decortication. <a href="#ref9">&#8617;</a></li>
<li id="fn10">Solis Garcia et al. (2025), <a href="http://scielo.senescyt.gob.ec/scielo.php?pid=S2477-91052025000100024&script=sci_abstract&tlng=en" target="_blank">"Extraction of cellulose fibers from hemp stalk by chemical treatment"</a>. Optimal at 10% NaOH / 120 min yielding 75.11% alpha-cellulose. <a href="#ref10">&#8617;</a></li>
<li id="fn11"><a href="https://bio-protocol.org/exchange/minidetail?id=21294617&type=30" target="_blank">Bio-protocol</a> (2025). Hemp cellulose + glycerol + NaOH, stirred 60 min at 80°C, hot pressed at 240°C for 10 min. <a href="#ref11">&#8617;</a></li>
<li id="fn12">Robert A. Nelson, <a href="http://www.rexresearch.com/hhusb/hh3fiber.htm" target="_blank">"Hemp Husbandry, Chapter 3: Hemp Fiber"</a>. Comprehensive retting reference with temperature/duration data. <a href="#ref12">&#8617;</a></li>
</ol>
</div>
<hr>
<p><a href="/hemp-bioplastic/">&#8592; hemp bioplastic overview</a> · <a href="/hemp-bioplastic/process/homeschool/">homeschool recipe</a> · <a href="/hemp-bioplastic/process/factory/">factory</a> · <a href="/single-use-plastics/">single-use plastics</a> · <a href="/let-us-define-a-permacomputer/">manifesto</a></p>
</main>
<footer>
<center><a href="/software/" class="unturf-brand">unturf. software</a></center>
<center>Russell Ballestrini | <span class="unturf-brand">unturf.</span> &copy; 2025</center>
</footer>
<script src="/js/diagram-zoom.js"></script>
<script src="https://uncloseai.com/uncloseai.js" type="module"></script>
</body>
</html>

View file

@ -4,6 +4,5 @@
<meta http-equiv="Refresh" content="0; url='/let-us-define-a-permacomputer/'" /> <meta http-equiv="Refresh" content="0; url='/let-us-define-a-permacomputer/'" />
</head> </head>
<body> <body>
<script src="https://uncloseai.com/uncloseai.js" type="module"></script>
</body> </body>
</html> </html>

Some files were not shown because too many files have changed in this diff Show more