more translation

This commit is contained in:
Aron Petau 2025-10-06 18:01:45 +02:00
parent 2ce9ca50b5
commit a41be821c1
997 changed files with 33247 additions and 32490 deletions

View file

@ -1,82 +1,223 @@
# Copilot Instructions for AI Agents
## Project Overview
- This is a Zola static site, using the "Duckquill" theme (see `themes/duckquill`).
- Content is organized in Markdown files under `content/` (with language variants like `.de.md` for German).
- Static assets (images, CSS, JS) are in `public/` and `static/`.
- Theme customizations and templates are in `themes/duckquill/` and `templates/`.
- Configuration is managed via `config.toml` and language files in `i18n/`.
This is **aron.petau.net**, a multilingual personal portfolio and blog built with:
- **Framework**: [Zola](https://www.getzola.org/) static site generator (v0.19+)
- **Theme**: Customized [Duckquill](https://duckquill.daudix.one) theme
- **Languages**: English (default) and German (`.de.md` suffixed files)
- **Deployment**: Manual build process, `public/` directory is version controlled
- **URL**: https://aron.petau.net/
- **Source**: Hosted on self-hosted Forgejo at https://forgejo.petau.net/aron/awebsite
## Key Workflows
- **Build the site:** Use Zola (`zola build`) to generate static files. Output goes to `public/`.
- **Serve locally:** Use `zola serve` for local development with live reload.
- **Content updates:** Add/edit Markdown files in `content/` (use `.de.md` for German, `.md` for English).
- **Theme changes:** Edit files in `themes/duckquill/` or `templates/` for layout and style.
- **Static assets:** Place images, CSS, JS in `static/` (copied as-is to output).
- **SASS/SCSS:** Source styles in `sass/`, compiled by Zola if referenced in theme.
- **Scripts:** Shell scripts in `scripts/` automate content and frontmatter management (e.g., `add_update_frontmatter.sh`).
## Architecture & File Structure
### Content Layer (`content/`)
- `_index.md` / `_index.de.md` - Homepage content
- `pages/` - Static pages (About, CV, Contact, Privacy, etc.)
- `project/` - Blog posts and projects, organized by date folders
- Format: `YYYY-MM-DD-slug/index.md` and `index.de.md`
- Each project is self-contained with its own images
### Template Layer
- `themes/duckquill/templates/` - Base theme templates (DO NOT MODIFY)
- `templates/` - Custom template overrides (use this for customization)
- `templates/shortcodes/` - Custom shortcodes (gallery, mermaid, skills, timeline)
### Style Layer
- `sass/` - Custom SCSS source files (compiled by Zola)
- `themes/duckquill/sass/` - Theme SCSS (DO NOT MODIFY)
- `static/css/` - Pre-built CSS for shortcodes (gallery, mermaid, skills, timeline)
### Static Assets
- `static/` - Raw files copied as-is to output (images, documents, fonts, CSS, JS)
- `static/documents/` - PDFs and downloadable files
- `static/images/` - Site-wide images
- `static/css/` - Custom CSS for shortcodes
- `public/` - **Generated output** (version controlled, pushed to server)
### Configuration
- `config.toml` - Main Zola configuration
- Base URL: `https://aron.petau.net/`
- Theme: `duckquill`
- Features: RSS/Atom feeds, search index, taxonomy (tags)
- Custom styles loaded: timeline, mermaid, skills, gallery
- `i18n/de.toml` - German translations for UI elements
## Critical Workflows
### Development
```bash
# Serve with live reload on localhost:1111
zola serve
# Build site (output to public/)
zola build
# Run comprehensive tests (build, link checking, etc.)
./scripts/test_site.sh
```
### Content Management
```bash
# Create German stubs for all existing English content
./scripts/create_german_stubs.sh
# Update frontmatter across content files
./scripts/add_update_frontmatter.sh
# Organize content (details in script)
./scripts/organize.sh
```
### Content Creation
**New Project/Blog Post:**
1. Create folder: `content/project/YYYY-MM-DD-slug/`
2. Create `index.md` (English) and `index.de.md` (German)
3. Add required frontmatter:
```toml
+++
title = "Project Title"
authors = ["Aron Petau"]
date = 2025-10-06
description = "Brief description"
[taxonomies]
tags = ["tag1", "tag2"]
[extra]
show_copyright = true
show_shares = true
+++
```
4. Place images in the same directory as the markdown file
5. Build and test locally before committing
**New Page:**
1. Create in `content/pages/`: `pagename.md` and `pagename.de.md`
2. Add frontmatter (same structure as above)
3. Ensure both language versions have matching content structure
**Adding Documents (PDFs, etc.):**
- Place in `static/documents/`
- Reference as `/documents/filename.pdf` in content
- **DO NOT** use external CDN dependencies (Adobe, etc.)
## Project-Specific Conventions
- **Multilingual content:** Each page has `.md` (English) and `.de.md` (German) variants. Use matching filenames for translations.
- **Frontmatter:** All Markdown files require Zola-compatible TOML frontmatter.
- **Directory structure:**
- `content/pages/` for main site pages
- `content/project/` for project posts (each project in its own subfolder)
- **Theme:** Only modify `themes/duckquill/` for theme changes; avoid editing Zola core files.
- **Static files:** Use `static/` for assets that should be copied verbatim to the output.
## Integration Points
- **Zola:** All builds and local serving use Zola CLI.
- **External links:** Theme and documentation reference [Duckquill demo](https://duckquill.daudix.one).
- **CI/CD:** No explicit CI/CD config found; manual builds expected.
### Multilingual Content
- **Every page must have both `.md` (English) and `.de.md` (German)**
- Filenames must match exactly (except for language suffix)
- German translations should match English structure and tone
- Use `./scripts/create_german_stubs.sh` to generate initial German files
## Examples
- To add a new German page: create `content/pages/newpage.de.md` with TOML frontmatter.
- To update theme CSS: edit `themes/duckquill/static/css/` or `sass/` and rebuild.
- To run locally: `zola serve` from project root.
### Frontmatter Requirements
All markdown files require TOML frontmatter with:
- `title` - Page/post title
- `authors` - Array, typically `["Aron Petau"]`
- `date` - ISO format (YYYY-MM-DD)
- `description` - Brief summary (for SEO and cards)
- `[taxonomies]` - tags array
- `[extra]` - Optional settings (show_copyright, show_shares, etc.)
### Directory Structure Conventions
- `content/pages/` - Static site pages
- `content/project/` - Blog posts and projects (date-prefixed folders)
- `static/documents/` - PDFs and downloadable files
- `static/images/` - Site-wide images
- `static/css/` - Shortcode-specific CSS
- Project images go in same folder as `index.md`
### Theme Customization Rules
- **NEVER modify** `themes/duckquill/` directly
- Use `templates/` for template overrides
- Use `sass/` for style customizations
- Use `static/` for additional assets
- Theme updates can overwrite changes in `themes/` directory
### Asset References
- Static files: `/path/from/static/` (e.g., `/documents/file.pdf`)
- Images in same folder: `./image.jpg`
- Processed images: Zola handles automatically
- External links: Use full URLs with https://
## Custom Shortcodes
The site provides several custom shortcodes for content enhancement:
### Gallery Shortcode
Used for creating image galleries with lightbox support:
The site provides four custom shortcodes in `templates/shortcodes/`:
### 1. Gallery Shortcode
Creates responsive image galleries with lightbox support.
**Location**: `templates/shortcodes/gallery.html`
**CSS**: `static/css/gallery.css`
```md
{% gallery() %}
[
{"file": "image1.jpg", "alt": "Description", "title": "Optional Caption"},
{"file": "image2.jpg", "alt": "Description"}
{"file": "image2.jpg", "alt": "Description", "title": "Another caption"}
]
{% end %}
```
Images must be in the same directory as the content file.
### Mermaid Shortcode
For rendering diagrams:
**Requirements:**
- Images must be in the same directory as the content file
- Use `./imagename.jpg` for relative paths
- All images must have `alt` text for accessibility
- `title` is optional and appears in lightbox
### 2. Mermaid Shortcode
Renders diagrams using Mermaid.js syntax.
**Location**: `templates/shortcodes/mermaid.html`
**CSS**: `static/css/mermaid.css`
```md
{% mermaid() %}
graph TD
A[Start] --> B[End]
A[Start] --> B[Process]
B --> C{Decision}
C -->|Yes| D[End]
C -->|No| A
{% end %}
```
### Skills Shortcode
For displaying categorized skills with optional icons and links:
**Supported diagrams:** flowchart, sequence, class, state, ER, Gantt, pie, etc.
### 3. Skills Shortcode
Displays categorized skills with optional icons and links.
**Location**: `templates/shortcodes/skills.html`
**CSS**: `static/css/skills.css`
```md
{% skills() %}
[
{
"name": "Category Name",
"name": "Programming",
"skills": [
{"name": "Skill Name", "icon": "fa-icon-class", "link": "optional-url"},
{"name": "Another Skill"}
{"name": "Python", "icon": "fab fa-python", "link": "https://python.org"},
{"name": "JavaScript", "icon": "fab fa-js"}
]
},
{
"name": "Design",
"skills": [
{"name": "Figma"},
{"name": "Adobe XD", "link": "https://adobe.com/xd"}
]
}
]
{% end %}
```
### Timeline Shortcode
For chronological events and experiences:
**Properties:**
- `name` (required) - Skill name
- `icon` (optional) - FontAwesome class
- `link` (optional) - External URL
### 4. Timeline Shortcode
Displays chronological events and experiences.
**Location**: `templates/shortcodes/timeline.html`
**CSS**: `static/css/timeline.css`
```md
{% timeline() %}
[
@ -84,20 +225,208 @@ For chronological events and experiences:
"from": "2025-01",
"to": "2025-12",
"title": "Event Title",
"location": "Optional Location",
"icon": "optional-icon-class",
"body": "Event description",
"link": "optional-url"
"location": "Berlin, Germany",
"icon": "fas fa-briefcase",
"body": "Description of the event or experience",
"link": "https://example.com"
},
{
"from": "2024-06",
"to": "present",
"title": "Current Position",
"location": "Remote",
"body": "Ongoing work description"
}
]
{% end %}
```
## References
- Theme docs: `themes/duckquill/README.md`
- Main config: `config.toml`
- Scripts: `scripts/`
- Content: `content/`
**Properties:**
- `from` (required) - Start date (YYYY-MM format)
- `to` (required) - End date or "present"
- `title` (required) - Event title
- `location` (optional) - Physical location
- `icon` (optional) - FontAwesome class
- `body` (optional) - Detailed description
- `link` (optional) - External URL
## Build & Deployment Process
## Build & Deployment Process
### Local Development
1. **Serve locally** (live reload on port 1111):
```bash
zola serve
```
2. **Build site** (outputs to `public/`):
```bash
zola build
```
3. **Run tests** (comprehensive validation):
```bash
./scripts/test_site.sh
```
Tests include:
- Build validation
- Link checking (internal and external)
- Markdown linting
- Accessibility checks
### Deployment Workflow
1. Make content/code changes
2. Test locally with `zola serve`
3. Run `zola build` to generate `public/`
4. **Important**: `public/` is version controlled
5. Commit both source files AND generated `public/` directory
6. Push to Forgejo (self-hosted Git)
7. Server pulls and serves from `public/`
### Quality Checks
Before committing:
- [ ] Build succeeds without errors
- [ ] Both EN and DE versions exist and match structure
- [ ] Links are valid (run `./scripts/test_site.sh`)
- [ ] Images have alt text
- [ ] Frontmatter is complete and valid
- [ ] No external CDN dependencies added
## Common Tasks & Examples
### Add a new blog post/project
```bash
# 1. Create directory
mkdir -p content/project/2025-10-06-my-project
# 2. Create content files
touch content/project/2025-10-06-my-project/index.md
touch content/project/2025-10-06-my-project/index.de.md
# 3. Add images to same directory
cp ~/images/hero.jpg content/project/2025-10-06-my-project/
# 4. Edit markdown files with proper frontmatter
# 5. Test locally
zola serve
# 6. Build and commit
zola build
git add .
git commit -m "Add: My Project blog post"
git push
```
### Add a new static page
```bash
# Create both language versions
touch content/pages/newpage.md
touch content/pages/newpage.de.md
# Or use the German stub generator
./scripts/create_german_stubs.sh
```
### Update theme styles
```bash
# Add custom SCSS (never edit themes/duckquill/)
nano sass/_custom.scss
# Add to sass/style.scss imports
# Rebuild
zola build
```
### Add a PDF document
```bash
# Place in static directory
cp ~/Downloads/document.pdf static/documents/
# Reference in markdown
# Link: [Download PDF](/documents/document.pdf)
```
### Create a gallery in a post
```markdown
{% gallery() %}
[
{"file": "./hero.jpg", "alt": "Main image", "title": "Project hero image"},
{"file": "./detail1.jpg", "alt": "Detail view"},
{"file": "./detail2.jpg", "alt": "Another detail"}
]
{% end %}
```
## Troubleshooting
### Build fails
1. Check TOML frontmatter syntax (no smart quotes)
2. Ensure all referenced files exist
3. Check for unclosed shortcodes
4. Run `zola check` for detailed errors
### Links broken
1. Use absolute paths for static files (`/documents/file.pdf`)
2. Use relative paths for same-folder images (`./image.jpg`)
3. Run `./scripts/test_site.sh` to find broken links
### German version missing
```bash
./scripts/create_german_stubs.sh
```
### Images not showing
1. Check image is in same folder as markdown file
2. Use `./` prefix for relative images in gallery
3. Ensure proper JSON formatting in gallery shortcode
### Styles not applying
1. Check `config.toml` extra.styles array includes your CSS
2. Ensure CSS is in `static/css/` not `sass/`
3. Rebuild with `zola build`
4. Clear browser cache
## Key Files Reference
| File/Directory | Purpose | Edit? |
|---------------|---------|-------|
| `config.toml` | Main configuration | ✅ Yes |
| `content/` | All markdown content | ✅ Yes |
| `templates/` | Custom template overrides | ✅ Yes |
| `sass/` | Custom SCSS | ✅ Yes |
| `static/` | Static assets | ✅ Yes |
| `themes/duckquill/` | Base theme | ❌ No - override instead |
| `public/` | Generated output | 🤖 Auto-generated, but version controlled |
| `i18n/de.toml` | German UI translations | ✅ Yes |
| `scripts/*.sh` | Automation scripts | ✅ Yes |
## Integration Points
- **Zola CLI**: All builds use Zola v0.19+
- **Theme**: Duckquill ([docs](https://duckquill.daudix.one))
- **Version Control**: Self-hosted Forgejo at https://forgejo.petau.net/aron/awebsite
- **Hosting**: Static files served from `public/` directory
- **Search**: Fuse.js with index built by Zola
- **Math**: KaTeX for equations
- **Diagrams**: Mermaid.js via custom shortcode
- **Icons**: FontAwesome (loaded by theme)
## Notes for AI Agents
1. **Always create bilingual content** - Every `.md` needs a `.de.md`
2. **Never modify theme files directly** - Use overrides in `templates/` or `sass/`
3. **Version control `public/`** - Unlike typical Zola sites, this project commits build output
4. **No external dependencies** - Don't add CDN scripts (Adobe, etc.) - use local files
5. **Test before committing** - Run `./scripts/test_site.sh`
6. **Respect existing structure** - Projects in date-prefixed folders, pages in `pages/`
7. **Use shortcodes** - Gallery, timeline, skills, mermaid for rich content
8. **Accessibility matters** - Always include alt text, proper heading hierarchy
9. **Check frontmatter** - Required fields: title, authors, date, description
---
For detailed theme documentation, see `themes/duckquill/README.md`
- Static assets: `static/`, `public/`
- Custom shortcodes: `templates/shortcodes/`

View file

@ -0,0 +1,172 @@
# Tag Consolidation Summary
## Results
- **Before**: 353 unique tags
- **After**: 257 unique tags
- **Reduction**: 96 tags (27% reduction)
- **Files changed**: 49 files
- **Individual changes**: 148 tag modifications
## Key Consolidations Applied
### 1. Capitalization Standardization
All tags now use lowercase:
- `AI``ai`
- `Unity``unity`
- `VLF``vlf`
- `3D printing``3d printing`
- `Arduino``arduino`
- `Linux``linux`
### 2. Language Standardization (English Only)
Removed German tags from all files:
- `programmierung``programming`
- `mobile werkstatt``mobile workshop`
- `urbane intervention``urban intervention`
- `bildung``education`
### 3. Concept Consolidation
**3D Printing/Fabrication** (consolidated to `3d printing`):
- additive manufacturing
- filastruder
- filament
- design for printing
**Energy** (consolidated to `energy`):
- electricity
- solar
- grid
**Sustainability** (consolidated to `sustainability`):
- cradle-to-cradle
- circular
- environment (when context appropriate)
**Recycling** (consolidated to `recycling`):
- waste
- precious plastic
- shredder
- plastics-as-waste
- collaborative recycling
**Data** (consolidated appropriately):
- `data collection``data`
- `data viz``data visualization`
**Interactive** (consolidated to `interactive`):
- game
- 1st person
- 2 player
- 3rd person
**Infrastructure**:
- hosting → `infrastructure`
- decentral → `decentralized`
**Research/Academia**:
- university → `research`
- master thesis → `thesis`
**Programming/ML**:
- rust → `programming`
- physics → `programming` (when used in context)
- ml → `machine learning`
**Media Theory** (person names consolidated):
- geert lovink → `media theory`
- evgeny morozov → `media theory`
- lisa parks → `media theory`
- francis hunger → `media theory`
**Philosophy** (person names consolidated):
- alison jaggar → `philosophy`
- elizabeth anderson → `philosophy`
- elsa dorlin → `philosophy`
- francois ewald → `philosophy`
- josé medina → `philosophy`
- judith butler → `philosophy`
- michael foucault → `philosophy`
- miranda fricker → `philosophy`
**Other Consolidations**:
- automatic → `automation`
- automatic1111 → `stable diffusion`
- blogging → `communication`
- cyberpunk → `speculative design`
- scaling → `design`
- privat → `work`
### 4. Tags Removed
- `TODO, unfinished` - removed from 7 files (not a meaningful public tag)
## Top 30 Most Used Tags (After Consolidation)
1. university of the arts berlin (26)
2. 3d printing (23)
3. work (17)
4. private (17)
5. experiment (16)
6. university of osnabrück (14)
7. studio d+c (14)
8. democratic (14)
9. recycling (12)
10. engineering (12)
11. python (10)
12. interactive (10)
13. energy (10)
14. sustainability (8)
15. media theory (8)
16. making (8)
17. education (8)
18. einszwovier (7)
19. urban intervention (6)
20. unity (6)
21. thesis (6)
22. research (6)
23. radio (6)
24. programming (6)
25. plastics (6)
26. india (6)
27. decentralized (6)
28. technische universität berlin (4)
29. suv (4)
30. stable diffusion (4)
## Recommendations for Further Reduction
To reach closer to 50 tags, consider:
1. **Institution tags**: Keep only main institutions, remove specific departments
- Keep: `university of the arts berlin`, `university of osnabrück`
- Consider generalizing project-specific ones
2. **Tool-specific tags**: Consolidate specific tools into broader categories
- `google dialogflow`, `google cloud`, `google assistant``voice assistant` or `ai`
- `tensorflow`, `keras``machine learning`
3. **Material tags**: Group related materials
- `plastics`, `clay`, `iron``materials`
4. **Specific technologies**: Keep only if frequently used
- Consider removing one-off tools/libraries
5. **Geographic specificity**:
- `india`, `himalaya`, `iit kharagpur` → Consider just `india`
## Tag Guidelines Going Forward
1. **Always lowercase** - no exceptions
2. **English only** - never translate tags
3. **Use existing tags** - check the list before creating new ones
4. **Prefer general over specific** - unless the specific tag will be used 3+ times
5. **Remove person names** - use topic tags instead
6. **Avoid TODO/meta tags** - those belong in draft status, not tags
## Scripts Created
- `scripts/analyze_tags.sh` - Analyze and count tag usage
- `scripts/consolidate_tags.py` - Main consolidation script
- `scripts/final_tag_cleanup.py` - Final cleanup pass
- `scripts/tag_consolidation_map.txt` - Reference mapping document

View file

@ -29,6 +29,9 @@ paths_keep_dates = false
[search]
index_format = "fuse_json"
[markdown]
github_alerts = true
[extra]
styles = [
"/css/timeline.css",

View file

@ -9,7 +9,7 @@ description = "My 3D Printing journey and the societal implications of the techn
tags = [
"accessibility",
"creality",
"decentral",
"decentralized",
"democratic",
"engineering",
"experiment",
@ -21,9 +21,8 @@ tags = [
"slicing",
"private",
"work",
"additive manufacturing",
"3D printing",
"university of osnabrück"
"3d printing",
"university of osnabrück",
]
[extra]
banner = "prusa.jpg"

View file

@ -9,7 +9,7 @@ description = "My 3D Printing journey and the societal implications of the techn
tags = [
"accessibility",
"creality",
"decentral",
"decentralized",
"democratic",
"engineering",
"experiment",
@ -21,9 +21,8 @@ tags = [
"slicing",
"private",
"work",
"additive manufacturing",
"3D printing",
"university of osnabrück"
"3d printing",
"university of osnabrück",
]
[extra]
banner = "prusa.jpg"

View file

@ -6,8 +6,7 @@ description = "3D-Modellierung und -Scan mit Fusion360, Sketchfab und Photogramm
[taxonomies]
tags = [
"3D printing",
"design for printing",
"3d printing",
"functional design",
"fusion360",
"parametric modelling",

View file

@ -6,8 +6,7 @@ description = "Modelling and Scanning in 3D using Fusion360, Sketchfab, and Phot
[taxonomies]
tags = [
"3D printing",
"design for printing",
"3d printing",
"functional design",
"fusion360",
"parametric modelling",

View file

@ -7,24 +7,19 @@ authors = ["Aron Petau"]
description = "Dezentralisierung des Stromnetzes in unzugänglichen und abgelegenen Regionen"
[taxonomies]
tags = [
"data collection",
"data viz",
"democratic",
"electricity",
"engineering",
"energy",
"grid",
"himalaya",
"india",
"iit kharagpur",
"python",
"research",
"scaling",
"simulation",
"solar",
"university of osnabrück",
"decentral"
tags = [
"data",
"data visualization",
"democratic",
"energy",
"engineering",
"india",
"python",
"research",
"design",
"simulation",
"university of osnabrück",
"decentralized",
]
[extra]

View file

@ -7,23 +7,18 @@ description = "Decentralizing the Energy Grid in inaccessible and remote regions
[taxonomies]
tags = [
"data collection",
"data viz",
"data",
"data visualization",
"democratic",
"electricity",
"engineering",
"energy",
"grid",
"himalaya",
"engineering",
"india",
"iit kharagpur",
"python",
"research",
"scaling",
"design",
"simulation",
"solar",
"university of osnabrück",
"decentral"
"decentralized",
]
[extra]

View file

@ -6,27 +6,20 @@ authors = ["Aron Petau"]
description = "Ein Recyclingsystem inspiriert von Precious Plastic, Filastruder und Machine Learning"
[taxonomies]
tags = [
"3D printing",
"Arduino",
"Linux",
"automatic",
"circular",
"cradle-to-cradle",
"decentral",
"democratic",
"environment",
"filament",
"filastruder",
"master thesis",
"ml",
"plastics",
"precious plastic",
"private",
"recycling",
"shredder",
"sustainability",
"waste"
tags = [
"3d printing",
"arduino",
"linux",
"automation",
"sustainability",
"decentralized",
"democratic",
"environment",
"thesis",
"machine learning",
"plastics",
"recycling",
"private",
]
[extra]

View file

@ -7,26 +7,19 @@ description = "A recycling system inspired by Precious Plastic, Filastruder, and
[taxonomies]
tags = [
"3D printing",
"Arduino",
"Linux",
"automatic",
"circular",
"cradle-to-cradle",
"decentral",
"3d printing",
"arduino",
"linux",
"automation",
"sustainability",
"decentralized",
"democratic",
"environment",
"filament",
"filastruder",
"master thesis",
"ml",
"thesis",
"machine learning",
"plastics",
"precious plastic",
"private",
"recycling",
"shredder",
"sustainability",
"waste"
"private",
]
[extra]

View file

@ -5,19 +5,16 @@ authors = ["Aron Petau"]
description = "Ein 3D-Spielkonzept in Unity"
[taxonomies]
tags = [
"3D graphics",
"Unity",
"C#",
"cyberpunk",
"collaborative",
"game",
"physics",
"communication",
"1st person",
"3rd person",
"2 player",
"university of osnabrück"
tags = [
"3d graphics",
"unity",
"c#",
"speculative design",
"collaboration",
"interactive",
"programming",
"communication",
"university of osnabrück",
]
[extra]

View file

@ -6,18 +6,15 @@ description = "A 3D Game Concept in Unity"
[taxonomies]
tags = [
"3D graphics",
"Unity",
"C#",
"cyberpunk",
"collaborative",
"game",
"physics",
"3d graphics",
"unity",
"c#",
"speculative design",
"collaboration",
"interactive",
"programming",
"communication",
"1st person",
"3rd person",
"2 player",
"university of osnabrück"
"university of osnabrück",
]
[extra]
banner = "ballpark_menu.png"

View file

@ -6,7 +6,7 @@ description = "Ein sprachgesteuerter Meditations-Assistent und Stimmungs-Tracker
[taxonomies]
tags = [
"chatbot",
"data viz",
"data visualization",
"google assistant",
"google cloud",
"google dialogflow",
@ -18,7 +18,7 @@ tags = [
"sql",
"university of osnabrück",
"voice assistant",
"work"
"work",
]
[extra]

View file

@ -6,7 +6,7 @@ description = "A speech-controlled meditation assistant and sentiment tracker"
[taxonomies]
tags = [
"chatbot",
"data viz",
"data visualization",
"google assistant",
"google cloud",
"google dialogflow",
@ -18,7 +18,7 @@ tags = [
"sql",
"university of osnabrück",
"voice assistant",
"work"
"work",
]
[extra]

View file

@ -6,10 +6,10 @@ description = "Eine Auswahl von Coding-Projekten aus meinem Bachelor in Kognitio
[taxonomies]
tags = [
"AI",
"CNN",
"GOFAI",
"MTCNN",
"ai",
"cnn",
"gofai",
"mtcnn",
"computer vision",
"ethics",
"face detection",
@ -22,7 +22,7 @@ tags = [
"python",
"super resolution",
"tensorflow",
"university of osnabrück"
"university of osnabrück",
]
[extra]

View file

@ -6,10 +6,10 @@ description = "A selection of coding projects from my Bachelor's in Cognitive Sc
[taxonomies]
tags = [
"AI",
"CNN",
"GOFAI",
"MTCNN",
"ai",
"cnn",
"gofai",
"mtcnn",
"computer vision",
"ethics",
"face detection",
@ -22,7 +22,7 @@ tags = [
"python",
"super resolution",
"tensorflow",
"university of osnabrück"
"university of osnabrück",
]
[extra]

View file

@ -7,7 +7,7 @@ description = "Eindrücke von den International Smelting Days 2021"
[taxonomies]
tags = [
"ISD",
"isd",
"archeology",
"bloomery",
"clay",
@ -20,7 +20,7 @@ tags = [
"iron smelting",
"ore",
"private",
"technology"
"technology",
]
[extra]

View file

@ -7,7 +7,7 @@ description = "Impressions from the International Smelting Days 2021"
[taxonomies]
tags = [
"ISD",
"isd",
"archeology",
"bloomery",
"clay",
@ -20,7 +20,7 @@ tags = [
"iron smelting",
"ore",
"private",
"technology"
"technology",
]
[extra]

View file

@ -7,14 +7,13 @@ banner = "/images/dreamfusion/sd_pig.png"
[taxonomies]
tags = [
"3D graphics",
"TODO, unfinished",
"3d graphics",
"ai",
"dreamfusion",
"generative",
"mesh",
"studio d+c",
"university of the arts berlin"
"university of the arts berlin",
]
[extra]

View file

@ -7,14 +7,13 @@ banner = "/images/dreamfusion/sd_pig.png"
[taxonomies]
tags = [
"3D graphics",
"TODO, unfinished",
"3d graphics",
"ai",
"dreamfusion",
"generative",
"mesh",
"studio d+c",
"university of the arts berlin"
"university of the arts berlin",
]
[extra]

View file

@ -6,8 +6,7 @@ authors = ["Aron Petau"]
[taxonomies]
tags = [
"3D printing",
"TODO, unfinished",
"3d printing",
"grasshopper",
"lamp",
"lampshade",

View file

@ -6,8 +6,7 @@ authors = ["Aron Petau"]
[taxonomies]
tags = [
"3D printing",
"TODO, unfinished",
"3d printing",
"grasshopper",
"lamp",
"lampshade",

View file

@ -20,7 +20,6 @@ tags = [
"pattern recognition",
"privacy",
"studio d+c",
"TODO, unfinished",
"university of the arts berlin"
]
[extra]

View file

@ -14,7 +14,6 @@ tags = [
"micronation",
"nation",
"politics of design",
"TODO, unfinished",
"technische universität berlin",
"text-to-speech"
]

View file

@ -14,7 +14,6 @@ tags = [
"micronation",
"nation",
"politics of design",
"TODO, unfinished",
"technische universität berlin",
"text-to-speech"
]

View file

@ -6,7 +6,7 @@ authors = ["Aron Petau", "Milli Keil", "Marla Gaiser"]
[taxonomies]
tags = [
"3D printing",
"3d printing",
"action figure",
"aufstandlastgen",
"cars",

View file

@ -6,7 +6,7 @@ authors = ["Aron Petau", "Milli Keil", "Marla Gaiser"]
[taxonomies]
tags = [
"3D printing",
"3d printing",
"action figure",
"aufstandlastgen",
"cars",

View file

@ -1,6 +1,6 @@
+++
title = "Übersetzung: Postmaster"
description = "I now manage the domain petau.net with a mail server and attached sites."
title = "Postmaster"
description = "petau.net verwalten: Eine Familien-Domain mit föderierter E-Mail"
date = 2023-12-06
authors = ["Aron Petau"]
@ -24,28 +24,76 @@ show_shares = true
## Postmaster
Hello from [aron@petau.net](mailto:aron@petau.net)!
Hallo von [aron@petau.net](mailto:aron@petau.net)!
## Background
> [!NOTE]
> **Update 2025:** Der Service läuft seit über zwei Jahren reibungslos und
> verwaltet 30+ E-Mail-Accounts für Familie und Freunde. Die Migadu-Wahl war
> und ist goldrichtig!
Emails are a wondrous thing and I spend the last weeks digging a bit deeper in how they actually work.
Some people consider them the last domain of the decentralized dream the internet once had and that is now popping up again with federation and peer-to-peer networks as quite popular buzzwords.
## Hintergrund
We often forget that email is already a federated system and that it is likely the most important one we have.
It is the only way to communicate with people that do not use the same service as you do.
It has open standards and is not controlled by a single entity. Going without emails is unimaginable in today's world, yet most providers are the familiar few from the silicon valley. And really, who wants their entire decentralized, federated, peer-to-peer network to be controlled by a schmuck from the silicon valley? Mails used to be more than that and they can still be.
Arguably, the world of messanging has gotten quite complex since emails popped up and there are more anti-spam AI tools that I would care to count. But the core of it is still the same and it is still a federated system.
Yet, also with Emails, Capitalism has held many victories, and today many emails that are sent from a provider that does not belong to the 5 or so big names are likely to be marked as spam. This is a problem that is not easily solved, but it is a problem that is worth solving.
E-Mail ist eine wunderbare Sache, und ich habe die letzten Wochen damit
verbracht, tiefer zu verstehen, wie sie eigentlich funktioniert. Manche
betrachten sie als letzte Bastion des dezentralisierten Traums, den das
Internet einst hatte—ein Traum, der jetzt mit Föderation und Peer-to-Peer-
Netzwerken als populäre Schlagworte wieder auftaucht.
Another issue with emails is security, as it is somehow collectively agreed upon that emails are a valid way to communicate business informations, while Whatsapp and Signal are not. These, at least when talking about messaging services with end-to-end encryption, are likely to be way more secure than emails.
Wir vergessen oft, dass E-Mail *bereits* ein föderiertes System ist, und
wahrscheinlich das wichtigste, das wir haben. Es ist die einzige Möglichkeit,
mit Menschen zu kommunizieren, die nicht denselben Dienst nutzen wie du.
Es hat offene Standards und wird nicht von einer einzelnen Entität kontrolliert.
## The story
Ohne E-Mail zu leben ist in der heutigen Welt unvorstellbar, doch die
meisten Anbieter sind die üblichen Verdächtigen aus dem Silicon Valley.
Und mal ehrlich, wer will sein gesamtes dezentralisiertes, föderiertes,
Peer-to-Peer-Netzwerk von einem Tech-Giganten kontrollieren lassen?
E-Mails waren mal mehr als das, und sie können es immer noch sein.
So it came to pass, that I, as the only one in the family interested in operating it, "inherited" the family domain petau.net. All of our emails run through this service, that was previously managed by a web developer that was not interested in the domjobain anymore.
Zugegeben, die Welt des Messaging ist seit der Erfindung von E-Mail komplex
geworden—es gibt mehr Anti-Spam-KI-Tools, als mir lieb ist. Aber der Kern
bleibt derselbe: ein föderiertes System. Doch der Kapitalismus hat auch hier
viele Siege errungen. Heute werden E-Mails von Anbietern außerhalb der
großen Fünf oft als Spam markiert. Dieses Problem lässt sich nicht leicht
lösen, aber es ist es wert, gelöst zu werden.
With lots of really secure Mail Providers like Protonmail or Tutanota, I went on a research spree, as to how I would like to manage my own service. Soon noticing that secure emails virtually always come with a price or with lacking interoperability with clients like Thunderbird or Outlook, I decided to go for migadu, a swiss provider that offers a good balance between security and usability. They also offer a student tier, which is a big plus.
Ein weiteres Problem: Sicherheit. Es wurde irgendwie kollektiv vereinbart,
dass E-Mails für geschäftliche Kommunikation gültig sind, WhatsApp und
Signal aber nicht. Dabei sind Messaging-Dienste mit Ende-zu-Ende-
Verschlüsselung wahrscheinlich weitaus sicherer als traditionelle E-Mail.
While self-hosting seems like a great idea from a privacy perspective, it is also quite risky for a service that is usually the only way for any service to recover your password or your online identity.
Migadu it was then, and in the last three months of basically set it and forget it, i am proud to at least have a decently granular control over my emails and can consciously reflect on the server location of The skeleton service service that enables virtually my entire online existence.
## Die Geschichte
I certainly crave more open protocols in my life and am also findable on [Mastodon](https://mastodon.online/@reprintedAron), a microblogging network around the ActivityPub Protocol.
So kam es, dass ich als einziges Familienmitglied, das sich dafür
interessierte, die Familien-Domain **petau.net** "geerbt" habe. Alle unsere
E-Mails laufen über diesen Service, der zuvor von einem Webentwickler
verwaltet wurde, der das Interesse verloren hatte.
Mit sicheren E-Mail-Anbietern wie ProtonMail oder Tutanota auf dem Markt
begab ich mich auf eine Recherchereise, um zu bestimmen, wie ich unsere
Domain verwalten würde. Mir fiel schnell auf, dass "sichere" E-Mail quasi
immer mit einem Preisschild kommt oder keine Interoperabilität mit Clients
wie Thunderbird oder Outlook bietet.
Ich entschied mich für [Migadu](https://www.migadu.com/), einen Schweizer
Anbieter, der eine gute Balance zwischen Sicherheit und Benutzerfreundlichkeit
bietet. Sie haben auch einen Studententarif—ein großes Plus.
### Warum kein Self-Hosting?
Während Self-Hosting aus Datenschutzsicht ideal scheint, ist es riskant für
einen Dienst, der oft die *einzige* Möglichkeit ist, Passwörter oder die
Online-Identität wiederherzustellen. Wenn dein Server während eines kritischen
Passwort-Resets ausfällt... nun ja, viel Glück.
Also Migadu. Nach zwei Jahren "Set it and forget it" bin ich stolz darauf,
granulare Kontrolle über unsere E-Mails zu haben und dabei bewusst über den
Serverstandort dieses Skelettdienstes nachzudenken, der praktisch unsere
gesamte Online-Existenz ermöglicht.
## Jenseits der E-Mail
Ich sehne mich sicherlich nach mehr offenen Protokollen in meinem Leben.
Du findest mich auch auf [Mastodon](https://mastodon.online/@reprintedAron),
einem Microblogging-Netzwerk, das auf dem ActivityPub-Protokoll basiert—ein
weiterer Schritt in Richtung eines dezentraleren Internets.

View file

@ -1,6 +1,6 @@
+++
title = "Postmaster"
description = "I now manage the domain petau.net with a mail server and attached sites."
description = "Managing petau.net: A family domain with federated email"
date = 2023-12-06
authors = ["Aron Petau"]
@ -26,26 +26,68 @@ show_shares = true
Hello from [aron@petau.net](mailto:aron@petau.net)!
> [!NOTE]
> **Update 2025:** The service has been running smoothly for over two years
> now, managing 30+ email accounts for family and friends. Still loving the
> Migadu choice!
## Background
Emails are a wondrous thing and I spend the last weeks digging a bit deeper in how they actually work.
Some people consider them the last domain of the decentralized dream the internet once had and that is now popping up again with federation and peer-to-peer networks as quite popular buzzwords.
Email is a wondrous thing, and I've spent recent weeks digging deeper into
how it actually works. Some consider it the last bastion of the decentralized
dream the internet once had—a dream now resurfacing with federation and
peer-to-peer networks as popular buzzwords.
We often forget that email is already a federated system and that it is likely the most important one we have.
It is the only way to communicate with people that do not use the same service as you do.
It has open standards and is not controlled by a single entity. Going without emails is unimaginable in today's world, yet most providers are the familiar few from the silicon valley. And really, who wants their entire decentralized, federated, peer-to-peer network to be controlled by a schmuck from the silicon valley? Mails used to be more than that and they can still be.
Arguably, the world of messanging has gotten quite complex since emails popped up and there are more anti-spam AI tools that I would care to count. But the core of it is still the same and it is still a federated system.
Yet, also with Emails, Capitalism has held many victories, and today many emails that are sent from a provider that does not belong to the 5 or so big names are likely to be marked as spam. This is a problem that is not easily solved, but it is a problem that is worth solving.
We often forget that email is *already* a federated system, and likely the
most important one we have. It's the only way to communicate with people who
don't use the same service as you. It has open standards and isn't controlled
by a single entity.
Another issue with emails is security, as it is somehow collectively agreed upon that emails are a valid way to communicate business informations, while Whatsapp and Signal are not. These, at least when talking about messaging services with end-to-end encryption, are likely to be way more secure than emails.
Going without email is unimaginable in today's world, yet most providers are
the familiar few from Silicon Valley. And really, who wants their entire
decentralized, federated, peer-to-peer network controlled by a tech giant?
Emails used to be more than that, and they can still be.
## The story
Arguably, the world of messaging has grown complex since email's inception—
there are more anti-spam AI tools than I care to count. But the core remains
the same: a federated system. Yet capitalism has claimed many victories here
too. Today, emails sent from providers outside the big five are often flagged
as spam. This problem isn't easily solved, but it's worth solving.
So it came to pass, that I, as the only one in the family interested in operating it, "inherited" the family domain petau.net. All of our emails run through this service, that was previously managed by a web developer that was not interested in the domjobain anymore.
Another issue: security. It's somehow collectively agreed that emails are
valid for business communications, while WhatsApp and Signal are not. Yet
messaging services with end-to-end encryption are likely far more secure
than traditional email.
With lots of really secure Mail Providers like Protonmail or Tutanota, I went on a research spree, as to how I would like to manage my own service. Soon noticing that secure emails virtually always come with a price or with lacking interoperability with clients like Thunderbird or Outlook, I decided to go for migadu, a swiss provider that offers a good balance between security and usability. They also offer a student tier, which is a big plus.
## The Story
While self-hosting seems like a great idea from a privacy perspective, it is also quite risky for a service that is usually the only way for any service to recover your password or your online identity.
Migadu it was then, and in the last three months of basically set it and forget it, i am proud to at least have a decently granular control over my emails and can consciously reflect on the server location of The skeleton service service that enables virtually my entire online existence.
So it came to pass that I, as the only family member interested in operating
it, "inherited" the family domain **petau.net**. All our emails run through
this service, previously managed by a web developer who'd lost interest.
I certainly crave more open protocols in my life and am also findable on [Mastodon](https://mastodon.online/@reprintedAron), a microblogging network around the ActivityPub Protocol.
With secure mail providers like ProtonMail or Tutanota on the market, I
embarked on a research journey to determine how I'd manage our domain. I
quickly noticed that "secure" email virtually always comes with a price tag
or lacks interoperability with clients like Thunderbird or Outlook.
I settled on [Migadu](https://www.migadu.com/), a Swiss provider offering a
good balance between security and usability. They also have a student tier—
a significant plus.
### Why Not Self-Host?
While self-hosting seems ideal from a privacy perspective, it's risky for a
service that's often the *only* way to recover passwords or online identity.
If your server goes down during a critical password reset... well, good luck.
Migadu it was. After two years of essentially "set it and forget it," I'm
proud to have granular control over our emails while consciously reflecting
on the server location of this skeleton service that enables virtually our
entire online existence.
## Beyond Email
I certainly crave more open protocols in my life. You can also find me on
[Mastodon](https://mastodon.online/@reprintedAron), a microblogging network
built on the ActivityPub protocol—another step toward a more decentralized
internet.

View file

@ -1,7 +1,7 @@
+++
title = "Übersetzung: AIRASPI Build Log"
title = "AIRASPI Build-Protokoll"
authors = ["Aron Petau"]
description = "Utilizing an edge TPU to build an edge device for image recognition and object detection"
description = "Nutzung einer Edge-TPU zum Bau eines Edge-Geräts für Bilderkennung und Objektdetektion"
date = 2024-01-30
[taxonomies]
tags = [
@ -20,78 +20,81 @@ show_copyright = true
show_shares = true
+++
## AI-Raspi Build Log
## AI-Raspi Build-Protokoll
This should document the rough steps to recreate airaspi as I go along.
Dieses Dokument dokumentiert den Prozess des Baus eines maßgeschneiderten Edge-Computing-Geräts für Echtzeit-Bilderkennung und Objektdetektion. Das Ziel war es, ein portables, eigenständiges System zu schaffen, das unabhängig von Cloud-Infrastruktur funktionieren kann.
Rough Idea: Build an edge device with image recognition and object detection capabilites.\
It should be realtime, aiming for 30fps at 720p.\
Portability and usage at installations is a priority, so it has to function without active internet connection and be as small as possible.\
It would be a real Edge Device, with no computation happening in the cloud.
**Projektziele:**
Inspo from: [pose2art](https://github.com/MauiJerry/Pose2Art)
Bau eines Edge-Geräts mit Bilderkennung und Objektdetektion, das Video in Echtzeit verarbeiten kann, mit dem Ziel von 30fps bei 720p-Auflösung. Portabilität und autonomer Betrieb sind kritische Anforderungen—das Gerät muss ohne aktive Internetverbindung funktionieren und einen kompakten Formfaktor für Installationsumgebungen beibehalten. Alle Berechnungen finden lokal auf dem Gerät selbst statt, was es zu einer echten Edge-Computing-Lösung ohne Cloud-Abhängigkeit macht.
Dieses Projekt wurde inspiriert von [pose2art](https://github.com/MauiJerry/Pose2Art), das das kreative Potenzial der Echtzeit-Posenerkennung für interaktive Installationen demonstrierte.
## Hardware
- [Raspberry Pi 5](https://www.raspberrypi.com/products/raspberry-pi-5/)
- [Raspberry Pi Camera Module v1.3](https://www.raspberrypi.com/documentation/accessories/camera.html)
- [Raspberry Pi GlobalShutter Camera](https://www.raspberrypi.com/documentation/accessories/camera.html)
- 2x CSI FPC Cable (needs one compact side to fit pi 5)
- 2x CSI FPC Kabel (benötigt eine kompakte Seite, um in Pi 5 zu passen)
- [Pineberry AI Hat (m.2 E key)](https://pineberrypi.com/products/hat-ai-for-raspberry-pi-5)
- [Coral Dual Edge TPU (m.2 E key)](https://www.coral.ai/products/m2-accelerator-dual-edgetpu)
- Raspi Official 5A Power Supply
- Raspi active cooler
- Raspi Official 5A Netzteil
- Raspi aktiver Kühler
## Setup
### Most important sources used
### Hauptressourcen
[coral.ai](https://www.coral.ai/docs/m2/get-started/#requirements)
[Jeff Geerling](https://www.jeffgeerling.com/blog/2023/pcie-coral-tpu-finally-works-on-raspberry-pi-5)
[Frigate NVR](https://docs.frigate.video)
Dieser Build wäre ohne die exzellente Dokumentation und Troubleshooting-Anleitungen aus der Community nicht möglich gewesen. Die Hauptquellen, auf die ich mich während dieses Projekts verlassen habe, waren:
### Raspberry Pi OS
- [coral.ai offizielle Dokumentation](https://www.coral.ai/docs/m2/get-started/#requirements) - Googles offizieller Setup-Leitfaden für die M.2 Edge TPU
- [Jeff Geerlings Blog](https://www.jeffgeerling.com/blog/2023/pcie-coral-tpu-finally-works-on-raspberry-pi-5) - Kritische PCIe-Konfigurationseinblicke für Raspberry Pi 5
- [Frigate NVR Dokumentation](https://docs.frigate.video) - Umfassender Leitfaden für die Network-Video-Recorder-Software
I used the Raspberry Pi Imager to flash the latest Raspberry Pi OS Lite to a SD Card.
### Raspberry Pi OS Installation
Needs to be Debian Bookworm.\
Needs to be the full arm64 image (with desktop), otherwise you will get into camera driver hell.
{: .notice}
Ich habe den Raspberry Pi Imager verwendet, um das neueste Raspberry Pi OS auf eine SD-Karte zu flashen. Die OS-Wahl ist kritisch für die Kamerakompatibilität.
Settings applied:
> [!IMPORTANT]
> Muss Debian Bookworm sein.
> Muss das vollständige arm64-Image (mit Desktop) sein, sonst gerät man in die
> Kameratreiber-Hölle.
- used the default arm64 image (with desktop)
- enable custom settings:
- enable ssh
- set wifi country
- set wifi ssid and password
- set locale
- set hostname: airaspi
**Initiale Konfigurationseinstellungen:**
### update
Mit den erweiterten Einstellungen des Raspberry Pi Imager habe ich vor dem Flashen Folgendes konfiguriert:
This is always good practice on a fresh install. It takes quite long with the full os image.
- Verwendung des Standard-arm64-Images (mit Desktop) - kritisch für Kameratreiber-Kompatibilität
- Aktivierung benutzerdefinierter Einstellungen für Headless-Betrieb
- Aktivierung von SSH für Fernzugriff
- Konfiguration des WiFi-Ländercodes für rechtliche Compliance
- Festlegung von WiFi-SSID und Passwort für automatische Netzwerkverbindung
- Konfiguration der Locale-Einstellungen für richtige Zeitzone und Tastaturlayout
- Festlegung eines benutzerdefinierten Hostnamens: `airaspi` für einfache Netzwerkidentifikation
### System-Update
Nach dem ersten Boot ist das Aktualisieren des Systems unerlässlich. Dieser Prozess kann mit dem vollständigen Desktop-Image beträchtliche Zeit in Anspruch nehmen, stellt aber sicher, dass alle Pakete aktuell sind und Sicherheitspatches angewendet werden.
```zsh
sudo apt update && sudo apt upgrade -y && sudo reboot
```
### prep system for coral
### Vorbereitung des Systems für Coral TPU
Thanks again @Jeff Geerling, this is completely out of my comfort zone, I rely on people writing solid tutorials like this one.
Die PCIe-Schnittstelle des Raspberry Pi 5 erfordert eine spezifische Konfiguration, um mit der Coral Edge TPU zu funktionieren. Dieser Abschnitt war technisch am anspruchsvollsten und umfasste Kernel-Modifikationen und Device-Tree-Änderungen. Ein großes Dankeschön an Jeff Geerling für die Dokumentation dieses Prozesses—ohne sein detailliertes Troubleshooting wäre dies nahezu unmöglich gewesen.
```zsh
# check kernel version
# Kernel-Version prüfen
uname -a
```
```zsh
# modify config.txt
# config.txt modifizieren
sudo nano /boot/firmware/config.txt
```
While in the file, add the following lines:
Während man in der Datei ist, folgende Zeilen hinzufügen:
```config
kernel=kernel8.img
@ -99,80 +102,99 @@ dtparam=pciex1
dtparam=pciex1_gen=2
```
Save and reboot:
Speichern und neu starten:
```zsh
sudo reboot
```
```zsh
# check kernel version again
# Kernel-Version erneut prüfen
uname -a
```
- should be different now, with a -v8 at the end
- sollte jetzt anders sein, mit einem -v8 am Ende
edit /boot/firmware/cmdline.txt
/boot/firmware/cmdline.txt bearbeiten
```zsh
sudo nano /boot/firmware/cmdline.txt
```
- add pcie_aspm=off before rootwait
- pcie_aspm=off vor rootwait hinzufügen
```zsh
sudo reboot
```
### change device tree
### Modifizierung des Device Tree
#### wrong device tree
#### Initialer Script-Versuch (Veraltet)
The script simply did not work for me.
Anfangs gab es ein automatisiertes Script, das die Device-Tree-Modifikationen handhaben sollte. Jedoch erwies sich dieses Script als problematisch und verursachte Probleme während meines Builds.
maybe this script is the issue?
i will try again without it
{: .notice}
> [!WARNING]
> vielleicht ist dieses Script das Problem?
> ich werde es ohne erneut versuchen
```zsh
curl https://gist.githubusercontent.com/dataslayermedia/714ec5a9601249d9ee754919dea49c7e/raw/32d21f73bd1ebb33854c2b059e94abe7767c3d7e/coral-ai-pcie-edge-tpu-raspberrypi-5-setup | sh
```
- Yes it was the issue, wrote a comment about it on the gist
[comment](https://gist.github.com/dataslayermedia/714ec5a9601249d9ee754919dea49c7e?permalink_comment_id=4860232#gistcomment-4860232)
Ja, es war das problematische Script. Ich habe einen Kommentar dokumentiert, der das Problem auf dem ursprünglichen Gist beschreibt:
[Mein Kommentar auf dem Gist](https://gist.github.com/dataslayermedia/714ec5a9601249d9ee754919dea49c7e?permalink_comment_id=4860232#gistcomment-4860232)
What to do instead?
#### Manuelle Device-Tree-Modifikation (Empfohlen)
Here, I followed Jeff Geerling down to the T. Please refer to his tutorial for more information.
Anstatt mich auf das automatisierte Script zu verlassen, folgte ich Jeff Geerlings manuellem Ansatz. Diese Methode gibt vollständige Kontrolle über den Prozess und hilft zu verstehen, was tatsächlich unter der Haube passiert.
In the meantime the Script got updated and it is now recommended again.
{: .notice}
> [!NOTE]
> In der Zwischenzeit wurde das Script aktualisiert und wird nun wieder empfohlen.
Der Device-Tree-Modifikationsprozess umfasst das Sichern des aktuellen Device-Tree-Blobs (DTB), das Dekompilieren in ein lesbares Format, das Bearbeiten der MSI-Parent-Referenz zur Behebung von PCIe-Kompatibilitätsproblemen und dann das Zurückkompilieren in Binärformat. Hier ist der schrittweise Prozess:
**1. Device Tree sichern und dekompilieren**
```zsh
# Back up the current dtb
# Aktuelles dtb sichern
sudo cp /boot/firmware/bcm2712-rpi-5-b.dtb /boot/firmware/bcm2712-rpi-5-b.dtb.bak
# Decompile the current dtb (ignore warnings)
# Aktuelles dtb dekompilieren (Warnungen ignorieren)
dtc -I dtb -O dts /boot/firmware/bcm2712-rpi-5-b.dtb -o ~/test.dts
# Edit the file
# Datei bearbeiten
nano ~/test.dts
# Change the line: msi-parent = <0x2f>; (under `pcie@110000`)
# To: msi-parent = <0x66>;
# Then save the file.
# Zeile ändern: msi-parent = <0x2f>; (unter `pcie@110000`)
# Zu: msi-parent = <0x66>;
# Dann Datei speichern.
# Recompile the dtb and move it back to the firmware directory
# dtb rekompilieren und zurück ins Firmware-Verzeichnis verschieben
dtc -I dts -O dtb ~/test.dts -o ~/test.dtb
sudo mv ~/test.dtb /boot/firmware/bcm2712-rpi-5-b.dtb
# Neustart für Änderungen
sudo reboot
```
Note: msi- parent sems to carry the value <0x2c> nowadays, cost me a few hours.
{: .notice}
> [!NOTE]
> Hinweis: msi-parent scheint heutzutage den Wert <0x2c> zu haben, hat mich ein paar Stunden gekostet.
### install apex driver
**2. Änderungen verifizieren**
following instructions from [coral.ai](https://coral.ai/docs/m2/get-started#2a-on-linux)
Nach dem Neustart prüfen, dass die Coral TPU vom System erkannt wird:
```zsh
lspci -nn | grep 089a
```
Die Ausgabe sollte ähnlich sein: `0000:01:00.0 System peripheral [0880]: Global Unichip Corp. Coral Edge TPU [1ac1:089a]`
### Installation des Apex-Treibers
Mit dem ordnungsgemäß konfigurierten Device Tree ist der nächste Schritt die Installation von Googles Apex-Treiber für die Coral Edge TPU. Dieser Treiber ermöglicht die Kommunikation zwischen Betriebssystem und TPU-Hardware.
Gemäß den offiziellen Anweisungen von [coral.ai](https://coral.ai/docs/m2/get-started#2a-on-linux):
```zsh
echo "deb https://packages.cloud.google.com/apt coral-edgetpu-stable main" | sudo tee /etc/apt/sources.list.d/coral-edgetpu.list
@ -188,61 +210,82 @@ sudo sh -c "echo 'SUBSYSTEM==\"apex\", MODE=\"0660\", GROUP=\"apex\"' >> /etc/ud
sudo groupadd apex
sudo adduser $USER apex
sudo reboot
```
Verify with
Diese Sequenz:
1. Fügt Googles Paket-Repository und GPG-Schlüssel hinzu
2. Installiert das gasket DKMS-Modul (Kernel-Treiber) und Edge-TPU-Runtime-Bibliothek
3. Erstellt udev-Regeln für Geräteberechtigungen
4. Erstellt eine `apex`-Gruppe und fügt den Benutzer hinzu
5. Neustart zum Laden des Treibers
Nach dem Neustart Installation verifizieren:
```zsh
lspci -nn | grep 089a
```
- should display the connected tpu
Dies sollte die verbundene Coral TPU als PCIe-Gerät anzeigen.
Als Nächstes bestätigen, dass der Device-Node mit entsprechenden Berechtigungen existiert:
```zsh
sudo reboot
ls -l /dev/apex_0
```
confirm with, if the output is not /dev/apex_0, something went wrong
Wenn die Ausgabe `/dev/apex_0` mit entsprechenden Gruppenberechtigungen zeigt, war die Installation erfolgreich. Falls nicht, udev-Regeln und Gruppenzugehörigkeit überprüfen.
### Testen mit Beispielmodellen
Um zu verifizieren, dass die TPU korrekt funktioniert, verwenden wir Googles Beispiel-Klassifizierungsskript mit einem vortrainierten MobileNet-Modell:
```zsh
ls /dev/apex_0
# Python-Pakete installieren
sudo apt-get install python3-pycoral
# Beispiel-Code und Modelle herunterladen
mkdir -p ~/coral && cd ~/coral
git clone https://github.com/google-coral/pycoral.git
cd pycoral
# Vogel-Klassifizierungsbeispiel ausführen
python3 examples/classify_image.py \
--model test_data/mobilenet_v2_1.0_224_inat_bird_quant_edgetpu.tflite \
--labels test_data/inat_bird_labels.txt \
--input test_data/parrot.jpg
```
### Docker
Die Ausgabe sollte Inferenz-Ergebnisse mit Konfidenzwerten zeigen, was bestätigt, dass die Edge TPU korrekt funktioniert.
Install docker, use the official instructions for debian.
### Docker-Installation
Docker bietet Containerisierung für die Anwendungen, die wir ausführen werden (Frigate, MediaMTX, etc.). Dies hält Abhängigkeiten isoliert und macht das Deployment wesentlich sauberer.
Docker mit dem offiziellen Convenience-Script von [docker.com](https://docs.docker.com/engine/install/debian/#install-using-the-convenience-script) installieren:
```zsh
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
```
```zsh
# add user to docker group
sudo groupadd docker
sudo usermod -aG docker $USER
```
Probably a source with source .bashrc would be enough, but I rebooted anyways
{: .notice}
Nach der Installation ab- und wieder anmelden, damit Änderungen der Gruppenzugehörigkeit wirksam werden.
```zsh
sudo reboot
```
```zsh
# verify with
docker run hello-world
```
### set docker to start on boot
Docker so konfigurieren, dass es automatisch beim Booten startet:
```zsh
sudo systemctl enable docker.service
sudo systemctl enable containerd.service
```
### Test the edge tpu
### Edge TPU testen (Optional)
Um zu verifizieren, dass die Edge TPU innerhalb eines Docker-Containers funktioniert, können wir ein Test-Image bauen. Dies ist besonders nützlich, wenn man plant, die TPU mit containerisierten Anwendungen zu nutzen.
Test-Verzeichnis und Dockerfile erstellen:
```zsh
mkdir coraltest
@ -250,7 +293,7 @@ cd coraltest
sudo nano Dockerfile
```
Into the new file, paste:
In die neue Datei einfügen:
```Dockerfile
FROM debian:10
@ -266,100 +309,126 @@ RUN echo "deb https://packages.cloud.google.com/apt coral-edgetpu-stable main" \
RUN curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
RUN apt-get update
RUN apt-get install -y edgetpu-examples
RUN apt-get install libedgetpu1-std
CMD /bin/bash
```
Test-Container bauen und ausführen, Coral-Gerät durchreichen:
```zsh
# build the docker container
# Docker-Container bauen
docker build -t "coral" .
```
```zsh
# run the docker container
# Docker-Container ausführen
docker run -it --device /dev/apex_0:/dev/apex_0 coral /bin/bash
```
Innerhalb des Containers ein Inferenz-Beispiel ausführen:
```zsh
# run an inference example from within the container
# Inferenz-Beispiel innerhalb des Containers ausführen
python3 /usr/share/edgetpu/examples/classify_image.py --model /usr/share/edgetpu/examples/models/mobilenet_v2_1.0_224_inat_bird_quant_edgetpu.tflite --label /usr/share/edgetpu/examples/models/inat_bird_labels.txt --image /usr/share/edgetpu/examples/images/bird.bmp
```
Here, you should see the inference results from the edge tpu with some confidence values.\
If it ain't so, safest bet is a clean restart
Man sollte Inferenz-Ergebnisse mit Konfidenzwerten von der Edge TPU sehen. Falls nicht, einen sauberen Neustart des Systems versuchen.
### Portainer
### Portainer (Optional)
This is optional, gives you a browser gui for your various docker containers
{: .notice}
Portainer bietet eine webbasierte GUI für die Verwaltung von Docker-Containern, Images und Volumes. Obwohl nicht erforderlich, macht es das Container-Management deutlich komfortabler.
Install portainer
> [!NOTE]
> Dies ist optional, gibt einem eine Browser-GUI für die verschiedenen Docker-Container.
Portainer installieren:
```zsh
docker volume create portainer_data
docker run -d -p 8000:8000 -p 9443:9443 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:latest
```
open portainer in browser and set admin password
Portainer im Browser aufrufen und Admin-Passwort setzen:
- should be available under <https://airaspi.local:9443>
- Navigieren zu: <https://airaspi.local:9443>
### vnc in raspi-config
### VNC-Setup (Optional)
optional, useful to test your cameras on your headless device.
You could of course also attach a monitor, but i find this more convenient.
{: .notice}
VNC bietet Remote-Desktop-Zugriff auf den Headless-Raspberry Pi. Dies ist besonders nützlich zum Testen von Kameras und Debuggen von visuellen Problemen, ohne einen physischen Monitor anzuschließen.
> [!NOTE]
> Dies ist optional, nützlich zum Testen der Kameras auf dem Headless-Gerät. Man könnte
> einen Monitor anschließen, aber ich finde VNC bequemer.
VNC über das Raspberry Pi Konfigurationstool aktivieren:
```zsh
sudo raspi-config
```
-- interface otions, enable vnc
Navigieren zu: **Interface Options****VNC** → **Enable**
### connect through vnc viewer
### Verbindung über VNC Viewer
Install vnc viewer on mac.\
Use airaspi.local:5900 as address.
[RealVNC Viewer](https://www.realvnc.com/en/connect/download/viewer/) auf dem Computer installieren (verfügbar für macOS, Windows und Linux).
### working docker-compose for frigate
Mit der Adresse verbinden: `airaspi.local:5900`
Start this as a custom template in portainer.
Man wird nach Benutzernamen und Passwort des Raspberry Pi gefragt. Nach der Verbindung hat man vollen Remote-Desktop-Zugriff zum Testen von Kameras und Debuggen.
Important: you need to change the paths to your own paths
{: .notice}
## Frigate NVR Setup
Frigate ist ein vollständiger Network Video Recorder (NVR) mit Echtzeit-Objektdetektion, angetrieben von der Coral Edge TPU. Es ist das Herzstück dieses Edge-AI-Systems.
### Docker Compose Konfiguration
Dieses Setup verwendet Docker Compose, um den Frigate-Container mit allen notwendigen Konfigurationen zu definieren. Wenn man Portainer verwendet, kann man dies als Custom Stack hinzufügen.
> [!IMPORTANT]
> Wichtig: Die Pfade müssen auf die eigenen Pfade angepasst werden.
```yaml
version: "3.9"
services:
frigate:
container_name: frigate
privileged: true # this may not be necessary for all setups
privileged: true # dies ist möglicherweise nicht für alle Setups notwendig
restart: unless-stopped
image: ghcr.io/blakeblackshear/frigate:stable
shm_size: "64mb" # update for your cameras based on calculation above
shm_size: "64mb" # für Kameras basierend auf obiger Berechnung aktualisieren
devices:
- /dev/apex_0:/dev/apex_0 # passes a PCIe Coral, follow driver instructions here https://coral.ai/docs/m2/get-started/#2a-on-linux
- /dev/apex_0:/dev/apex_0 # reicht PCIe Coral durch, Treiberanweisungen hier folgen https://coral.ai/docs/m2/get-started/#2a-on-linux
volumes:
- /etc/localtime:/etc/localtime:ro
- /home/aron/frigate/config.yml:/config/config.yml # replace with your config file
- /home/aron/frigate/storage:/media/frigate # replace with your storage directory
- type: tmpfs # Optional: 1GB of memory, reduces SSD/SD Card wear
- /home/aron/frigate/config.yml:/config/config.yml # durch eigene Config-Datei ersetzen
- /home/aron/frigate/storage:/media/frigate # durch eigenes Storage-Verzeichnis ersetzen
- type: tmpfs # Optional: 1GB Speicher, reduziert SSD/SD-Karten-Verschleiß
target: /tmp/cache
tmpfs:
size: 1000000000
ports:
- "5000:5000"
- "8554:8554" # RTSP feeds
- "8555:8555/tcp" # WebRTC over tcp
- "8555:8555/udp" # WebRTC over udp
- "8555:8555/tcp" # WebRTC über tcp
- "8555:8555/udp" # WebRTC über udp
environment:
FRIGATE_RTSP_PASSWORD: "******"
```
### Working frigate config file
Wichtige Konfigurationspunkte in dieser Docker-Compose-Datei:
Frigate wants this file wherever you specified earlier that it will be.\
This is necessary just once. Afterwards, you will be able to change the config in the gui.
{: .notice}
- **Privileged-Modus** und **Device-Mappings**: Erforderlich für Hardwarezugriff (TPU, Kameras)
- **Shared Memory Size**: Zugewiesen für effiziente Video-Frame-Verarbeitung
- **Port-Mappings**: Macht Frigate's Web-UI (5000) und RTSP-Streams (8554) zugänglich
- **Volume-Mounts**: Persistiert Aufnahmen, Konfiguration und Datenbank
### Frigate-Konfigurationsdatei
Frigate benötigt eine YAML-Konfigurationsdatei, um Kameras, Detektoren und Detektionszonen zu definieren. Diese Datei am Pfad erstellen, der in der docker-compose-Datei angegeben wurde (z.B. `/home/aron/frigate/config.yml`).
> [!NOTE]
> Dies ist nur einmal notwendig. Danach kann man die Konfiguration in der GUI ändern.
Hier ist eine funktionierende Konfiguration mit der Coral TPU:
```yaml
mqtt:
@ -374,14 +443,14 @@ detectors:
device: pci
cameras:
cam1: # <++++++ Name the camera
cam1: # <++++++ Kamera benennen
ffmpeg:
hwaccel_args: preset-rpi-64-h264
inputs:
- path: rtsp://192.168.1.58:8900/cam1
roles:
- detect
cam2: # <++++++ Name the camera
cam2: # <++++++ Kamera benennen
ffmpeg:
hwaccel_args: preset-rpi-64-h264
inputs:
@ -389,17 +458,31 @@ cameras:
roles:
- detect
detect:
enabled: True # <+++- disable detection until you have a working camera feed
width: 1280 # <+++- update for your camera's resolution
height: 720 # <+++- update for your camera's resolution
enabled: True # <+++- Detektion deaktivieren bis funktionierende Kamera-Feeds vorhanden
width: 1280 # <+++- für Kameraauflösung aktualisieren
height: 720 # <+++- für Kameraauflösung aktualisieren
```
### mediamtx
Diese Konfiguration:
install mediamtx, do not use the docker version, it will be painful
- **Deaktiviert MQTT**: Vereinfacht Setup für rein lokalen Betrieb
- **Definiert zwei Detektoren**: Einen Coral-TPU-Detektor (`coral`) und einen CPU-Fallback
- **Verwendet Standard-Detektionsmodell**: Frigate enthält ein vortrainiertes Modell
- **Konfiguriert zwei Kameras**: Beide auf 1280x720-Auflösung eingestellt
- **Verwendet Hardware-Beschleunigung**: `preset-rpi-64-h264` für Raspberry Pi 5
- **Detektionszonen**: Nur aktivieren, wenn Kamera-Feeds ordnungsgemäß funktionieren
double check the chip architecture here, caused me some headache
{: .notice}
## MediaMTX Setup
MediaMTX ist ein Echtzeit-Medienserver, der das Streaming von den Raspberry-Pi-Kameras zu Frigate handhabt. Es ist notwendig, weil Frigate `libcamera` (den modernen Raspberry Pi Kamera-Stack) nicht direkt unterstützt.
MediaMTX direkt auf dem System installieren (nicht via Docker - die Docker-Version hat Kompatibilitätsprobleme mit libcamera).
> [!WARNING]
> Chip-Architektur beim Download doppelt prüfen - dies verursachte mir erhebliche
> Kopfschmerzen beim Setup.
MediaMTX herunterladen und installieren:
```zsh
mkdir mediamtx
@ -409,9 +492,11 @@ wget https://github.com/bluenviron/mediamtx/releases/download/v1.5.0/mediamtx_v1
tar xzvf mediamtx_v1.5.0_linux_arm64v8.tar.gz && rm mediamtx_v1.5.0_linux_arm64v8.tar.gz
```
edit the mediamtx.yml file
### MediaMTX-Konfiguration
### working paths section in mediamtx.yml
Die `mediamtx.yml`-Datei bearbeiten, um Kamera-Streams zu konfigurieren. Die untenstehende Konfiguration verwendet `rpicam-vid` (Raspberry Pis modernes Kamera-Tool), das durch FFmpeg geleitet wird, um RTSP-Streams zu erstellen.
Folgendes zum `paths`-Abschnitt in `mediamtx.yml` hinzufügen:
```yaml
paths:
@ -423,45 +508,112 @@ paths:
runOnInitRestart: yes
```
also change rtspAddress: :8554\
to rtspAddress: :8900\
Otherwise there is a conflict with frigate.
Diese Konfiguration:
With this, you should be able to start mediamtx.
- **`cam1` und `cam2`**: Definieren zwei Kamerapfade
- **`rpicam-vid`**: Erfasst YUV420-Video von Raspberry-Pi-Kameras
- **`ffmpeg`**: Transkodiert das Rohvideo zu H.264-RTSP-Stream
- **`runOnInitRestart: yes`**: Startet Stream automatisch neu, falls er fehlschlägt
### Port-Konfiguration
Standard-RTSP-Port ändern, um Konflikte mit Frigate zu vermeiden:
In `mediamtx.yml` ändern:
```yaml
rtspAddress: :8554
```
Zu:
```yaml
rtspAddress: :8900
```
Sonst gibt es einen Port-Konflikt mit Frigate.
### MediaMTX starten
MediaMTX im Vordergrund ausführen, um zu verifizieren, dass es funktioniert:
```zsh
./mediamtx
```
If there is no error, you can verify your stream through vlc under rtsp://airaspi.local:8900/cam1 (default would be 8554, but we changed it in the config file)
Wenn keine Fehler auftreten, Streams mit VLC oder einem anderen RTSP-Client verifizieren:
### Current Status
- `rtsp://airaspi.local:8900/cam1`
- `rtsp://airaspi.local:8900/cam2`
I get working streams from both cameras, sending them out at 30fps at 720p.
frigate, however limits the display fps to 5, which is depressing to watch, especially since the tpu doesnt even break a little sweat.
Hinweis: Standard-RTSP-Port ist 8554, aber wir haben ihn in der Konfiguration auf 8900 geändert.
Frigate claime that the TPU is good for up to 10 cameras, so there is headroom.
## Aktueller Status und Performance
The stram is completely errant and drops frames left and right. I have sometimes seen detect fps of 0.2, but the TPU speed should definitely not be the bottleneck here. Maybe attach the cameras to a separate device and stream from there?
### Was funktioniert
The biggest issue here is that the google folx seems to have abandoned the coral, even though they just released a new piece of hardware for it.
Their most RECENT python build is 3.9.
Specifically, pycoral seems to be the problem there. without a decent update, I will be confined to debian 10, with python 3.7.3.
That sucks.
There are custom wheels, but nothing that seems plug and play.
Das System streamt erfolgreich von beiden Kameras mit 30fps und 720p-Auflösung. Die Coral Edge TPU führt Objektdetektion mit minimaler Latenz durch - die TPU selbst kommt nicht ins Schwitzen und behält durchgehend hohe Performance bei.
About the rest of this setup:
The decision to go for m.2 E key to save money, instead of spending more on the usb version was a huge mistake.
Please do yourself a favor and spend the extra 40 bucks.
Technically, its probably faster and better with continuous operation, but i have yet to feel the benefit of that.
Laut Frigate-Dokumentation kann die TPU bis zu 10 Kameras handhaben, es gibt also erheblichen Spielraum für Erweiterung.
### TODOs
### Aktuelle Probleme
- add images and screenshots to the build log
- Check whether vdo.ninja is a viable way to add mobile streams. then Smartphone stream evaluation would be on the horizon.
- Bother the mediamtx makers about the libcamera bump, so we can get rid of the rpicam-vid hack.
I suspect there is quirte a lot of performance lost there.
- tweak the frigate config to get snapshots and maybe build an image / video database to later train a custom model.
- worry about attaching an external ssd and saving the video files on it.
- find a way to export the landmark points from frigate. maybe send them via osc like in pose2art?
- find a different hat that lets me access the other TPU? I have the dual version, but can currently only acces 1 of the 2 TPUs due to hardware restrictions.
Es gibt jedoch mehrere signifikante Probleme, die das System behindern:
**1. Frigate Display-Limitierungen**
Frigate begrenzt die Display-FPS auf 5, was deprimierend anzusehen ist, besonders da die TPU nicht einmal ins Schwitzen kommt. Die Hardware ist eindeutig zu viel mehr fähig, aber Software-Limitierungen halten sie zurück.
**2. Stream-Stabilitätsprobleme**
Der Stream ist völlig unberechenbar und droppt ständig Frames. Ich habe manchmal Detektions-FPS von nur 0,2 beobachtet, aber die TPU-Geschwindigkeit sollte definitiv nicht der Flaschenhals sein. Eine mögliche Lösung könnte sein, die Kameras an ein separates Gerät anzuschließen und von dort zu streamen.
**3. Coral-Software-Aufgabe**
Das größte Problem ist, dass Google das Coral-Ökosystem scheinbar aufgegeben hat, obwohl sie gerade neue Hardware dafür veröffentlicht haben. Ihr aktuellster Python-Build unterstützt nur Python 3.9.
Speziell scheint `pycoral` das Problem zu sein - ohne ein ordentliches Update bin ich auf Debian 10 mit Python 3.7.3 beschränkt. Das ist mies. Es gibt Custom-Wheels, aber nichts, das plug-and-play zu sein scheint.
Dies schränkt die Fähigkeit, moderne Software und Bibliotheken mit dem System zu nutzen, erheblich ein.
## Reflexionen und Lessons Learned
### Hardware-Entscheidungen
**Die M.2 E Key-Wahl**
Die Entscheidung, die M.2 E Key-Version zu nehmen, um Geld zu sparen, anstatt mehr für die USB-Version auszugeben, war ein riesiger Fehler. Bitte tu dir selbst einen Gefallen und gib die zusätzlichen 40 Euro aus.
Technisch ist sie wahrscheinlich schneller und besser für Dauerbetrieb, aber ich habe den Vorteil davon noch nicht gespürt. Die USB-Version hätte wesentlich mehr Flexibilität und einfacheres Debugging geboten.
## Zukünftige Entwicklung
Mehrere Verbesserungen und Experimente sind geplant, um dieses System zu erweitern:
**Dokumentation und visuelle Hilfsmittel**
- Bilder und Screenshots zu diesem Build-Protokoll hinzufügen, um es einfacher nachzuvollziehen
**Mobile-Stream-Integration**
- Prüfen, ob [vdo.ninja](https://vdo.ninja) ein praktikabler Weg ist, mobile Streams hinzuzufügen, um Smartphone-Kamera-Integration und -Evaluierung zu ermöglichen
**MediaMTX libcamera-Unterstützung**
- Die MediaMTX-Entwickler*innen bezüglich libcamera-Unterstützung kontaktieren, was den aktuellen `rpicam-vid`-Workaround eliminieren würde. Ich vermute, dass in der aktuellen Pipeline einiges an Performance verloren geht.
**Frigate-Konfigurationsverfeinerung**
- Die Frigate-Konfiguration optimieren, um Snapshots zu aktivieren und möglicherweise eine Bild-/Videodatenbank zum späteren Training benutzerdefinierter Modelle aufzubauen
**Speichererweiterung**
- Sich um das Anbringen einer externen SSD kümmern und die Videodateien darauf für Langzeitspeicherung und -analyse speichern
**Datenexport-Fähigkeiten**
- Einen Weg finden, die Landmarkenpunkte von Frigate zu exportieren, möglicherweise via OSC (wie in meinem [pose2art](/project/pose2art/)-Projekt) für kreative Anwendungen zu senden
**Dual-TPU-Zugriff**
- Einen anderen HAT finden, der Zugriff auf die andere TPU ermöglicht - ich habe die Dual-Version, kann aber aufgrund von Hardware-Einschränkungen derzeit nur auf 1 der 2 TPUs zugreifen

View file

@ -22,15 +22,13 @@ show_shares = true
## AI-Raspi Build Log
This should document the rough steps to recreate airaspi as I go along.
This document chronicles the process of building a custom edge computing device for real-time image recognition and object detection. The goal was to create a portable, self-contained system that could operate independently of cloud infrastructure.
Rough Idea: Build an edge device with image recognition and object detection capabilites.\
It should be realtime, aiming for 30fps at 720p.\
Portability and usage at installations is a priority, so it has to function without active internet connection and be as small as possible.\
It would be a real Edge Device, with no computation happening in the cloud.
**Project Goals:**
Inspo from: [pose2art](https://github.com/MauiJerry/Pose2Art)
Build an edge device with image recognition and object detection capabilities that can process video in real-time, targeting 30fps at 720p resolution. Portability and autonomous operation are critical requirements—the device must function without an active internet connection and maintain a compact form factor suitable for installation environments. All computation happens locally on the device itself, making it a true edge computing solution with no cloud dependency.
This project was inspired by [pose2art](https://github.com/MauiJerry/Pose2Art), which demonstrated the creative potential of real-time pose detection for interactive installations.
## Hardware
@ -45,41 +43,47 @@ Inspo from: [pose2art](https://github.com/MauiJerry/Pose2Art)
## Setup
### Most important sources used
### Primary Resources
[coral.ai](https://www.coral.ai/docs/m2/get-started/#requirements)
[Jeff Geerling](https://www.jeffgeerling.com/blog/2023/pcie-coral-tpu-finally-works-on-raspberry-pi-5)
[Frigate NVR](https://docs.frigate.video)
This build wouldn't have been possible without the excellent documentation and troubleshooting guides from the community. The primary sources I relied on throughout this project were:
### Raspberry Pi OS
- [coral.ai official documentation](https://www.coral.ai/docs/m2/get-started/#requirements) - Google's official setup guide for the M.2 Edge TPU
- [Jeff Geerling's blog](https://www.jeffgeerling.com/blog/2023/pcie-coral-tpu-finally-works-on-raspberry-pi-5) - Critical PCIe configuration insights for Raspberry Pi 5
- [Frigate NVR documentation](https://docs.frigate.video) - Comprehensive guide for the network video recorder software
I used the Raspberry Pi Imager to flash the latest Raspberry Pi OS Lite to a SD Card.
### Raspberry Pi OS Installation
Needs to be Debian Bookworm.\
Needs to be the full arm64 image (with desktop), otherwise you will get into camera driver hell.
{: .notice}
I used the Raspberry Pi Imager to flash the latest Raspberry Pi OS to an SD card. The OS choice is critical for camera compatibility.
Settings applied:
> [!IMPORTANT]
> Needs to be Debian Bookworm.
> Needs to be the full arm64 image (with desktop), otherwise you will get into camera
> driver hell.
- used the default arm64 image (with desktop)
- enable custom settings:
- enable ssh
- set wifi country
- set wifi ssid and password
- set locale
- set hostname: airaspi
**Initial Configuration Settings:**
### update
Using the Raspberry Pi Imager's advanced settings, I configured the following before flashing:
This is always good practice on a fresh install. It takes quite long with the full os image.
- Used the default arm64 image (with desktop) - critical for camera driver compatibility
- Enabled custom settings for headless operation
- Enabled SSH for remote access
- Configured WiFi country code for legal compliance
- Set WiFi SSID and password for automatic network connection
- Configured locale settings for proper timezone and keyboard layout
- Set custom hostname: `airaspi` for easy network identification
### System Update
After the initial boot, updating the system is essential.
This process can take considerable time with the full desktop image, but ensures all packages are current and security patches are applied.
```zsh
sudo apt update && sudo apt upgrade -y && sudo reboot
```
### prep system for coral
### Preparing the System for Coral TPU
Thanks again @Jeff Geerling, this is completely out of my comfort zone, I rely on people writing solid tutorials like this one.
The Raspberry Pi 5's PCIe interface requires specific configuration to work with the Coral Edge TPU. This section was the most technically challenging, involving kernel modifications and device tree changes. A huge thanks to Jeff Geerling for documenting this process—without his detailed troubleshooting, this would have been nearly impossible.
```zsh
# check kernel version
@ -124,29 +128,38 @@ sudo nano /boot/firmware/cmdline.txt
sudo reboot
```
### change device tree
### Modifying the Device Tree
#### wrong device tree
#### Initial Script Attempt (Deprecated)
The script simply did not work for me.
Initially, there was an automated script available that was supposed to handle the device tree modifications. However, this script proved problematic and caused issues during my build.
maybe this script is the issue?
i will try again without it
{: .notice}
> [!WARNING]
> maybe this script is the issue?
> i will try again without it
```zsh
curl https://gist.githubusercontent.com/dataslayermedia/714ec5a9601249d9ee754919dea49c7e/raw/32d21f73bd1ebb33854c2b059e94abe7767c3d7e/coral-ai-pcie-edge-tpu-raspberrypi-5-setup | sh
```
- Yes it was the issue, wrote a comment about it on the gist
[comment](https://gist.github.com/dataslayermedia/714ec5a9601249d9ee754919dea49c7e?permalink_comment_id=4860232#gistcomment-4860232)
Yes, it was the problematic script. I left a comment documenting the issue on the original gist:
[My comment on the gist](https://gist.github.com/dataslayermedia/714ec5a9601249d9ee754919dea49c7e?permalink_comment_id=4860232#gistcomment-4860232)
What to do instead?
#### Manual Device Tree Modification (Recommended)
Here, I followed Jeff Geerling down to the T. Please refer to his tutorial for more information.
Instead of relying on the automated script, I followed Jeff Geerling's manual approach.
This method gives you complete control over the process and helps understand what's
actually happening under the hood.
In the meantime the Script got updated and it is now recommended again.
{: .notice}
> [!NOTE]
> In the meantime the Script got updated and it is now recommended again.
The device tree modification process involves backing up the current device tree blob
(DTB), decompiling it to a readable format, editing the MSI parent reference to fix
PCIe compatibility issues, and then recompiling it back to binary format. Here's the
step-by-step process:
**1. Back up and Decompile the Device Tree**
```zsh
# Back up the current dtb
@ -165,14 +178,31 @@ nano ~/test.dts
# Recompile the dtb and move it back to the firmware directory
dtc -I dts -O dtb ~/test.dts -o ~/test.dtb
sudo mv ~/test.dtb /boot/firmware/bcm2712-rpi-5-b.dtb
# Reboot for changes to take effect
sudo reboot
```
Note: msi- parent sems to carry the value <0x2c> nowadays, cost me a few hours.
{: .notice}
> [!NOTE]
> Note: msi-parent seems to carry the value <0x2c> nowadays, cost me a few hours.
### install apex driver
**2. Verify the Changes**
following instructions from [coral.ai](https://coral.ai/docs/m2/get-started#2a-on-linux)
After rebooting, check that the Coral TPU is recognized by the system:
```zsh
lspci -nn | grep 089a
```
You should see output similar to: `0000:01:00.0 System peripheral [0880]: Global Unichip Corp. Coral Edge TPU [1ac1:089a]`
### Installing the Apex Driver
With the device tree properly configured, the next step is installing Google's Apex
driver for the Coral Edge TPU. This driver enables communication between the operating
system and the TPU hardware.
Following the official instructions from [coral.ai](https://coral.ai/docs/m2/get-started#2a-on-linux):
```zsh
echo "deb https://packages.cloud.google.com/apt coral-edgetpu-stable main" | sudo tee /etc/apt/sources.list.d/coral-edgetpu.list
@ -188,61 +218,88 @@ sudo sh -c "echo 'SUBSYSTEM==\"apex\", MODE=\"0660\", GROUP=\"apex\"' >> /etc/ud
sudo groupadd apex
sudo adduser $USER apex
sudo reboot
```
Verify with
This sequence:
1. Adds Google's package repository and GPG key
2. Installs the gasket DKMS module (kernel driver) and Edge TPU runtime library
3. Creates udev rules for device permissions
4. Creates an `apex` group and adds your user to it
5. Reboots to load the driver
After the reboot, verify the installation:
```zsh
lspci -nn | grep 089a
```
- should display the connected tpu
This should display the connected Coral TPU as a PCIe device.
Next, confirm the device node exists with proper permissions:
```zsh
sudo reboot
ls -l /dev/apex_0
```
confirm with, if the output is not /dev/apex_0, something went wrong
If the output shows `/dev/apex_0` with appropriate group permissions, the installation
was successful. If not, review the udev rules and group membership.
### Testing with Example Models
To verify the TPU is functioning correctly, we'll use Google's example classification
script with a pre-trained MobileNet model:
```zsh
ls /dev/apex_0
# Install Python packages
sudo apt-get install python3-pycoral
# Download example code and models
mkdir -p ~/coral && cd ~/coral
git clone https://github.com/google-coral/pycoral.git
cd pycoral
# Run bird classification example
python3 examples/classify_image.py \
--model test_data/mobilenet_v2_1.0_224_inat_bird_quant_edgetpu.tflite \
--labels test_data/inat_bird_labels.txt \
--input test_data/parrot.jpg
```
### Docker
The output should show inference results with confidence scores, confirming the Edge
TPU is working correctly.
Install docker, use the official instructions for debian.
### Docker Installation
Docker provides containerization for the applications we'll be running (Frigate,
MediaMTX, etc.). This keeps dependencies isolated and makes deployment much cleaner.
Install Docker using the official convenience script from
[docker.com](https://docs.docker.com/engine/install/debian/#install-using-the-convenience-script):
```zsh
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
```
```zsh
# add user to docker group
sudo groupadd docker
sudo usermod -aG docker $USER
```
Probably a source with source .bashrc would be enough, but I rebooted anyways
{: .notice}
After installation, log out and back in for group membership changes to take effect.
```zsh
sudo reboot
```
```zsh
# verify with
docker run hello-world
```
### set docker to start on boot
Configure Docker to start automatically on boot:
```zsh
sudo systemctl enable docker.service
sudo systemctl enable containerd.service
```
### Test the edge tpu
### Test the Edge TPU (Optional)
To verify the Edge TPU works inside a Docker container, we can build a test image.
This is particularly useful if you plan to use the TPU with containerized applications.
Create a test directory and Dockerfile:
```zsh
mkdir coraltest
@ -266,65 +323,89 @@ RUN echo "deb https://packages.cloud.google.com/apt coral-edgetpu-stable main" \
RUN curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
RUN apt-get update
RUN apt-get install -y edgetpu-examples
RUN apt-get install libedgetpu1-std
CMD /bin/bash
```
Build and run the test container, passing through the Coral device:
```zsh
# build the docker container
docker build -t "coral" .
```
```zsh
# run the docker container
docker run -it --device /dev/apex_0:/dev/apex_0 coral /bin/bash
```
Inside the container, run an inference example:
```zsh
# run an inference example from within the container
python3 /usr/share/edgetpu/examples/classify_image.py --model /usr/share/edgetpu/examples/models/mobilenet_v2_1.0_224_inat_bird_quant_edgetpu.tflite --label /usr/share/edgetpu/examples/models/inat_bird_labels.txt --image /usr/share/edgetpu/examples/images/bird.bmp
```
Here, you should see the inference results from the edge tpu with some confidence values.\
If it ain't so, safest bet is a clean restart
You should see inference results with confidence values from the Edge TPU. If not, try
a clean restart of the system.
### Portainer
### Portainer (Optional)
This is optional, gives you a browser gui for your various docker containers
{: .notice}
Portainer provides a web-based GUI for managing Docker containers, images, and volumes.
While not required, it makes container management significantly more convenient.
Install portainer
> [!NOTE]
> This is optional, gives you a browser GUI for your various docker containers.
Install Portainer:
```zsh
docker volume create portainer_data
docker run -d -p 8000:8000 -p 9443:9443 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:latest
```
open portainer in browser and set admin password
Access Portainer in your browser and set an admin password:
- should be available under <https://airaspi.local:9443>
- Navigate to: <https://airaspi.local:9443>
### vnc in raspi-config
### VNC Setup (Optional)
optional, useful to test your cameras on your headless device.
You could of course also attach a monitor, but i find this more convenient.
{: .notice}
VNC provides remote desktop access to your headless Raspberry Pi. This is particularly
useful for testing cameras and debugging visual issues without connecting a physical
monitor.
> [!NOTE]
> This is optional, useful to test your cameras on your headless device. You could attach
> a monitor, but I find VNC more convenient.
Enable VNC through the Raspberry Pi configuration tool:
```zsh
sudo raspi-config
```
-- interface otions, enable vnc
Navigate to: **Interface Options****VNC** → **Enable**
### connect through vnc viewer
### Connecting through VNC Viewer
Install vnc viewer on mac.\
Use airaspi.local:5900 as address.
Install [RealVNC Viewer](https://www.realvnc.com/en/connect/download/viewer/) on your
computer (available for macOS, Windows, and Linux).
### working docker-compose for frigate
Connect using the address: `airaspi.local:5900`
Start this as a custom template in portainer.
You'll be prompted for your Raspberry Pi username and password. Once connected, you'll
have full remote desktop access for testing cameras and debugging.
Important: you need to change the paths to your own paths
{: .notice}
## Frigate NVR Setup
Frigate is a complete Network Video Recorder (NVR) with real-time object detection
powered by the Coral Edge TPU. It's the heart of this edge AI system.
### Docker Compose Configuration
This setup uses Docker Compose to define the Frigate container with all necessary
configurations. If you're using Portainer, you can add this as a custom stack.
> [!IMPORTANT]
> Important: you need to change the paths to your own paths.
```yaml
version: "3.9"
@ -355,11 +436,25 @@ services:
FRIGATE_RTSP_PASSWORD: "******"
```
### Working frigate config file
Key configuration points in this Docker Compose file:
Frigate wants this file wherever you specified earlier that it will be.\
This is necessary just once. Afterwards, you will be able to change the config in the gui.
{: .notice}
- **Privileged mode** and **device mappings**: Required for accessing hardware (TPU,
cameras)
- **Shared memory size**: Allocated for processing video frames efficiently
- **Port mappings**: Exposes Frigate's web UI (5000) and RTSP streams (8554)
- **Volume mounts**: Persists recordings, config, and database
### Frigate Configuration File
Frigate requires a YAML configuration file to define cameras, detectors, and detection
zones. Create this file at the path you specified in the docker-compose file (e.g.,
`/home/aron/frigate/config.yml`).
> [!NOTE]
> This is necessary just once. Afterwards, you will be able to change the config in the
> GUI.
Here's a working configuration using the Coral TPU:
```yaml
mqtt:
@ -394,12 +489,29 @@ cameras:
height: 720 # <+++- update for your camera's resolution
```
### mediamtx
This configuration:
install mediamtx, do not use the docker version, it will be painful
- **Disables MQTT**: Simplifies setup for local-only operation
- **Defines two detectors**: A Coral TPU detector (`coral`) and a CPU fallback
- **Uses default detection model**: Frigate includes a pre-trained model
- **Configures two cameras**: Both set to 1280x720 resolution
- **Uses hardware acceleration**: `preset-rpi-64-h264` for Raspberry Pi 5
- **Detection zones**: Enable only when camera feeds are working properly
double check the chip architecture here, caused me some headache
{: .notice}
## MediaMTX Setup
MediaMTX is a real-time media server that handles streaming from the Raspberry Pi
cameras to Frigate. It's necessary because Frigate doesn't directly support `libcamera`
(the modern Raspberry Pi camera stack).
Install MediaMTX directly on the system (not via Docker - the Docker version has
compatibility issues with libcamera).
> [!WARNING]
> Double-check the chip architecture when downloading - this caused me significant
> headaches during setup.
Download and install MediaMTX:
```zsh
mkdir mediamtx
@ -409,9 +521,13 @@ wget https://github.com/bluenviron/mediamtx/releases/download/v1.5.0/mediamtx_v1
tar xzvf mediamtx_v1.5.0_linux_arm64v8.tar.gz && rm mediamtx_v1.5.0_linux_arm64v8.tar.gz
```
edit the mediamtx.yml file
### MediaMTX Configuration
### working paths section in mediamtx.yml
Edit the `mediamtx.yml` file to configure camera streams. The configuration below uses
`rpicam-vid` (Raspberry Pi's modern camera tool) piped through FFmpeg to create RTSP
streams.
Add the following to the `paths` section in `mediamtx.yml`:
```yaml
paths:
@ -423,45 +539,135 @@ paths:
runOnInitRestart: yes
```
also change rtspAddress: :8554\
to rtspAddress: :8900\
Otherwise there is a conflict with frigate.
This configuration:
With this, you should be able to start mediamtx.
- **`cam1` and `cam2`**: Define two camera paths
- **`rpicam-vid`**: Captures YUV420 video from Raspberry Pi cameras
- **`ffmpeg`**: Transcodes the raw video to H.264 RTSP stream
- **`runOnInitRestart: yes`**: Automatically restarts the stream if it fails
### Port Configuration
Change the default RTSP port to avoid conflicts with Frigate:
In `mediamtx.yml`, change:
```yaml
rtspAddress: :8554
```
To:
```yaml
rtspAddress: :8900
```
Otherwise there will be a port conflict with Frigate.
### Start MediaMTX
Run MediaMTX in the foreground to verify it's working:
```zsh
./mediamtx
```
If there is no error, you can verify your stream through vlc under rtsp://airaspi.local:8900/cam1 (default would be 8554, but we changed it in the config file)
If there are no errors, verify your streams using VLC or another RTSP client:
### Current Status
- `rtsp://airaspi.local:8900/cam1`
- `rtsp://airaspi.local:8900/cam2`
I get working streams from both cameras, sending them out at 30fps at 720p.
frigate, however limits the display fps to 5, which is depressing to watch, especially since the tpu doesnt even break a little sweat.
Note: Default RTSP port is 8554, but we changed it to 8900 in the config.
Frigate claime that the TPU is good for up to 10 cameras, so there is headroom.
## Current Status and Performance
The stram is completely errant and drops frames left and right. I have sometimes seen detect fps of 0.2, but the TPU speed should definitely not be the bottleneck here. Maybe attach the cameras to a separate device and stream from there?
### What's Working
The biggest issue here is that the google folx seems to have abandoned the coral, even though they just released a new piece of hardware for it.
Their most RECENT python build is 3.9.
Specifically, pycoral seems to be the problem there. without a decent update, I will be confined to debian 10, with python 3.7.3.
That sucks.
There are custom wheels, but nothing that seems plug and play.
The system successfully streams from both cameras at 30fps and 720p resolution. The
Coral Edge TPU performs object detection with minimal latency - the TPU itself is not
breaking a sweat, maintaining consistently high performance.
About the rest of this setup:
The decision to go for m.2 E key to save money, instead of spending more on the usb version was a huge mistake.
Please do yourself a favor and spend the extra 40 bucks.
Technically, its probably faster and better with continuous operation, but i have yet to feel the benefit of that.
According to Frigate documentation, the TPU can handle up to 10 cameras, so there's
significant headroom for expansion.
### TODOs
### Current Issues
- add images and screenshots to the build log
- Check whether vdo.ninja is a viable way to add mobile streams. then Smartphone stream evaluation would be on the horizon.
- Bother the mediamtx makers about the libcamera bump, so we can get rid of the rpicam-vid hack.
I suspect there is quirte a lot of performance lost there.
- tweak the frigate config to get snapshots and maybe build an image / video database to later train a custom model.
- worry about attaching an external ssd and saving the video files on it.
- find a way to export the landmark points from frigate. maybe send them via osc like in pose2art?
- find a different hat that lets me access the other TPU? I have the dual version, but can currently only acces 1 of the 2 TPUs due to hardware restrictions.
However, there are several significant problems hampering the system:
**1. Frigate Display Limitations**
Frigate limits the display FPS to 5, which is depressing to watch, especially since the
TPU doesn't even break a sweat. The hardware is clearly capable of much more, but
software limitations hold it back.
**2. Stream Stability Problems**
The stream is completely errant and drops frames constantly. I've sometimes observed
detect FPS as low as 0.2, but the TPU speed should definitely not be the bottleneck
here. One potential solution might be to attach the cameras to a separate device and
stream from there.
**3. Coral Software Abandonment**
The biggest issue is that Google seems to have abandoned the Coral ecosystem, even
though they just released new hardware for it. Their most recent Python build supports
only Python 3.9.
Specifically, `pycoral` appears to be the problem - without a decent update, I'm
confined to Debian 10 with Python 3.7.3. That sucks. There are custom wheels available,
but nothing that seems plug-and-play.
This severely limits the ability to use modern software and libraries with the system.
## Reflections and Lessons Learned
### Hardware Decisions
**The M.2 E Key Choice**
The decision to go for the M.2 E key version to save money, instead of spending more on
the USB version, was a huge mistake. Please do yourself a favor and spend the extra 40
bucks.
Technically, it's probably faster and better for continuous operation, but I have yet to
feel the benefit of that. The USB version would have offered far more flexibility and
easier debugging.
## Future Development
Several improvements and experiments are planned to enhance this system:
**Documentation and Visual Aids**
- Add images and screenshots to this build log to make it easier to follow
**Mobile Stream Integration**
- Check whether [vdo.ninja](https://vdo.ninja) is a viable way to add mobile streams,
enabling smartphone camera integration and evaluation
**MediaMTX libcamera Support**
- Reach out to the MediaMTX developers about bumping libcamera support, which would
eliminate the current `rpicam-vid` workaround. I suspect there's quite a lot of
performance lost in the current pipeline.
**Frigate Configuration Refinement**
- Tweak the Frigate config to enable snapshots and potentially build an image/video
database for training custom models later
**Storage Expansion**
- Worry about attaching an external SSD and saving the video files on it for long-term
storage and analysis
**Data Export Capabilities**
- Find a way to export the landmark points from Frigate, potentially sending them via
OSC (like in my [pose2art](/project/pose2art/) project) for creative applications
**Dual TPU Access**
- Find a different HAT that lets me access the other TPU - I have the dual version, but
can currently only access 1 of the 2 TPUs due to hardware restrictions

View file

@ -1,21 +1,18 @@
+++
title = "aethercomms"
authors = ["Aron Petau", "Joel Tenenberg"]
description = "Aethercomms is a project that aims to create a speculative decentralized communication network for the future."
description = "Aethercomms ist ein Projekt zur Schaffung eines spekulativen dezentralen Kommunikationsnetzwerks für die Zukunft."
[taxonomies]
tags = [
"LoRa",
"SDR",
"lora",
"sdr",
"audiovisual",
"chatbot",
"disaster fiction",
"edge computing",
"evgeny morozov",
"francis hunger",
"geert lovink",
"media theory",
"infrastructure",
"lisa parks",
"local AI",
"narrative",
"network",
@ -24,7 +21,7 @@ tags = [
"sound installation",
"speculative design",
"studio",
"University of the Arts Berlin",
"university of the arts berlin",
]
[extra]
@ -36,21 +33,53 @@ featured = true
## AetherComms
Studio Work Documentation\
A Project by Aron Petau and Joel Tenenberg.
Studienprojekt-Dokumentation\
Ein Projekt von Aron Petau und Joel Tenenberg.
### Abstract
### Zusammenfassung
> Set in 2504, this fiction explores the causalities of a global infrastructure collapse through the perspectives of diverse characters. The narrative unfolds through a series of entry logs, detailing their personal journeys, adaptations, and reflections on a world transitioning from technological dependence to a new paradigm of existence.
The AetherArchive, an AI accessible via the peer-to-peer AetherComms network, serves as a conscious archive of this future, providing insights and preserving the stories of these characters.
Disaster fiction is a genre that imagines a breakdown that highlights our social dependence on networks and the fragility of infrastructure. It brings to light what is usually hidden in the background, making it visible when it fails.
> Angesiedelt im Jahr 2504, erforscht diese Fiktion die Kausalitäten eines globalen Infrastrukturkollapses aus der Perspektive verschiedener Charaktere. Die Erzählung entfaltet sich durch eine Reihe von Logbuch-Einträgen, die ihre persönlichen Reisen, Anpassungen und Reflexionen über eine Welt dokumentieren, die von technologischer Abhängigkeit zu einem neuen Existenzparadigma übergeht.
Das AetherArchiv, eine KI, die über das Peer-to-Peer-Netzwerk AetherComms zugänglich ist, dient als bewusstes Archiv dieser Zukunft, das Einblicke gewährt und die Geschichten dieser Charaktere bewahrt.
Disaster Fiction ist ein Genre, das einen Zusammenbruch imaginiert, der unsere soziale Abhängigkeit von Netzwerken und die Fragilität von Infrastruktur hervorhebt. Es bringt ans Licht, was normalerweise im Hintergrund verborgen bleibt, indem es sichtbar wird, wenn es versagt.
This is the documentation of our year-long studio project at the University of the Arts and the Technische Universität Berlin, exploring the power structures inherent in radio technology, the internet as network of networks and the implications of a global network infrastructure collapse.
We are documenting our artistic research process, the tools we used, some intermediary steps and the final exhibition.
Dies ist die Dokumentation unseres einjährigen Studienprojekts an der Universität der Künste und der Technischen Universität Berlin. Wir erforschen die inhärenten Machtstrukturen in der Funktechnologie, das Internet als Netzwerk der Netzwerke und die Auswirkungen eines globalen Zusammenbruchs der Netzwerkinfrastruktur.
Wir dokumentieren unseren künstlerischen Forschungsprozess, die verwendeten Werkzeuge, einige Zwischenschritte und die Abschlussausstellung.
### Process
### Prozess
We met 2 to 3 times weekly throughout the entire year, here is a short overview of our process and findings throughout.
Wir trafen uns das gesamte Jahr über 2 bis 3 Mal wöchentlich. Hier ist ein kurzer Überblick über unseren Prozess und unsere Erkenntnisse.
#### Semester 1
##### Forschungsfragen
Hier untersuchten wir bereits die Machtstrukturen, die der Funktechnologie innewohnen.
Früh führte uns die Frage der Hegemonie, die in der anfänglichen Forschung präsent war, dazu, subversive Strategien im Radio zu betrachten, wie Piratensender und dessen historische Nutzung als dezentrales Kommunikationsnetzwerk. Radio ist tief mit militärischen und staatlichen Machtstrukturen verbunden, Beispiele sind der nazideutsche [Volksempfänger](https://en.wikipedia.org/wiki/Volksempfänger) oder das US-amerikanische [Radio Liberty](https://en.wikipedia.org/wiki/Radio_Free_Europe/Radio_Liberty) Projekt, und wir erforschten das Potenzial von Radio als Werkzeug für Widerstand und Subversion. Ein solches Beispiel ist [Sealand](https://sealandgov.org/en-eu/pages/the-story), eine Mikronation, die Radio nutzte, um nach Großbritannien zu senden und dabei eine schmale Linie zwischen legaler und illegaler Übertragung beschritt. Wir setzten die Forschung fort und blickten über unidirektionale Kommunikation hinaus in die Bereiche des Amateurfunks. Ein Interessensgebiet war [LoRaWAN](https://lora-alliance.org/about-lorawan/), eine Langstrecken-Niedrigenergie-Drahtlos-Kommunikationstechnologie, die sich gut für IoT-Anwendungen und Pager-ähnliche Kommunikation eignet. Im Vergleich zu lizenziertem Funk und CB-Funk kommt LoRaWAN mit einer niedrigen Einstiegshürde und hat interessante Infrastruktureigenschaften, die wir erforschen und mit der Struktur des Internets vergleichen wollten.
##### Kuratorischer Text für das erste Semester
Der einleitende Text, der im ersten Semester für aethercomms v1.0 verwendet wurde:
> Radio als subversive Übung.\
Radio ist eine vorschreibende Technologie.\
Du kannst nicht daran teilnehmen oder es hören, ohne einigen grundlegenden physikalischen Prinzipien zu folgen.\
Doch Funkingenieure sind nicht die einzigen Menschen, die bestimmte Nutzungen der Technologie vorschreiben.\
Es ist eingebettet in einen historisch-sozialen Kontext klarer Prototypen von Sender und Empfänger.\
Radio hat viele Facetten und Kommunikationsprotokolle, hält sich aber dennoch oft an die Dichotomie oder Dualität von Sender und Empfänger, Aussage und Bestätigung.\
Das Radio sagt dir, was du tun sollst und wie du damit interagieren sollst.\
Radio hat immer einen identifizierbaren dominanten und untergeordneten Teil.\
Gibt es Instanzen der Rebellion gegen dieses Schema?\
Orte, Modi und Instanzen, wo Radio anarchisch ist?\
Dieses Projekt zielt darauf ab, die widerspenstige Nutzung von Infrastruktur zu untersuchen.\
Seine Frequenzen.\
Es ist überall um uns herum.\
Wer will uns aufhalten?
{{ youtube(id="9acmRbG1mV0") }}
##### Die Abstandssensoren
Der Abstandssensor als kontaktloses und intuitives Kontrollelement:
#### Semester 1
@ -114,18 +143,18 @@ The distance sensor as a contactless and intuitive control element:
]
{% end %}
With a few Raspberry Pi Picos and the HCSR-04 Ultrasonic Distance Sensor, we created a contactless control element. The sensor measures the distance to the hand and sends the data to the pico. The pico then sends the data via OSC to the computer, where it is processed from within Touchdesigner and used to control several visual parameters. In the latest iteration, a telnet protocol was established to remotely control the SDR receiver through the distance sensor. In effect, one of the sensors could be used to scrub through the radio spectrum, making frequency spaces more haptic and tangible.
Mit ein paar Raspberry Pi Picos und dem HCSR-04 Ultraschall-Abstandssensor kreierten wir ein kontaktloses Kontrollelement. Der Sensor misst den Abstand zur Hand und sendet die Daten an den Pico. Der Pico sendet die Daten dann via OSC an den Computer, wo sie innerhalb von Touchdesigner verarbeitet und zur Steuerung mehrerer visueller Parameter verwendet werden. In der neuesten Iteration wurde ein Telnet-Protokoll etabliert, um den SDR-Empfänger durch den Abstandssensor fernzusteuern. Faktisch konnte einer der Sensoren verwendet werden, um durch das Funkspektrum zu scrubben und Frequenzräume haptischer und greifbarer zu machen.
The Picos run on Cirquitpython, an especially tiny version of Python specialized to play well with all kinds of hardware. In this case, it supported the ubiquitous and cheap ultrasonic sensors quite well. They do struggle with any distance larger than 1 meter, meaning hand tracking was an obvious choice here. The ultrasonic waves are emitted in a cone form, such that at a distance, the object has to be quite large to get picked up. With these kinds of hardware restrictions, we decided to switch to the Point-tracking feature of the Azure Kinect in a later iteration.
Die Picos laufen auf Cirquitpython, einer besonders kleinen Version von Python, die spezialisiert ist, um gut mit allen Arten von Hardware zu funktionieren. In diesem Fall unterstützte es die allgegenwärtigen und günstigen Ultraschallsensoren recht gut. Sie haben jedoch Schwierigkeiten mit jeder Distanz größer als 1 Meter, was bedeutet, dass Hand-Tracking eine offensichtliche Wahl war. Die Ultraschallwellen werden in Kegelform ausgestrahlt, sodass das Objekt in der Entfernung recht groß sein muss, um erfasst zu werden. Mit diesen Arten von Hardware-Einschränkungen entschieden wir uns, in einer späteren Iteration zum Point-Tracking-Feature der Azure Kinect zu wechseln.
#### Mid-Term Exhibition
#### Zwischenausstellung
> This project is an attempt to bridge the gap between the omnipresent and invisible nature of radio waves and their often-overlooked significance in our lives. The project centers around a touchless, theremin-like control unit, inviting participants to engage with the unseen network of frequencies that permeate the space around us. Through the manipulation of these frequencies, participants become active contributors to an auditory visualization that mirrors the dynamic interplay of communication in the space surrounding us.
Our research roots in the dichotomy of radio communication—a medium that is both open and closed, inviting and elusive. Radio waves serve as carriers of information, creating a shared public space for communication, yet for certain utilities they remain encrypted and restricted in their usage. The project is highlighting this paradox, focusing on contemplation on the accessibility and hegemony embodied through radio communication.
> Dieses Projekt ist ein Versuch, die Kluft zwischen der allgegenwärtigen und unsichtbaren Natur von Radiowellen und ihrer oft übersehenen Bedeutung in unserem Leben zu überbrücken. Das Projekt dreht sich um eine berührungslose, Theremin-ähnliche Kontrolleinheit, die Teilnehmer*innen einlädt, sich mit dem unsichtbaren Netzwerk von Frequenzen zu beschäftigen, das den Raum um uns herum durchdringt. Durch die Manipulation dieser Frequenzen werden Teilnehmer*innen zu aktiven Mitwirkenden an einer auditiven Visualisierung, die das dynamische Zusammenspiel der Kommunikation im umgebenden Raum widerspiegelt.
Unsere Forschung wurzelt in der Dichotomie der Radiokommunikation ein Medium, das sowohl offen als auch geschlossen, einladend und schwer fassbar ist. Radiowellen dienen als Informationsträger und schaffen einen geteilten öffentlichen Raum für Kommunikation, bleiben aber für bestimmte Anwendungen verschlüsselt und eingeschränkt in ihrer Nutzung. Das Projekt hebt dieses Paradoxon hervor und fokussiert auf die Kontemplation über die Zugänglichkeit und Hegemonie, die durch Radiokommunikation verkörpert wird.
{{ youtube(id="xC32dCC6h9A") }}
The Midterm Exhibition 2023
Die Zwischenausstellung 2023
{% gallery() %}
[
@ -165,232 +194,231 @@ One of the exhibits there was by the artist [Mimi Ọnụọha](https://mimionuo
The significance of cables to the Internet as a structure was striking to us there and we wanted to incorporate an analogy between the Radio analyses and the cables present in their work.
In the end, antennas are also just the end of a long cable.
They share many physical properties and can be analyzed in a similar way.
Sie teilen viele physikalische Eigenschaften und können auf ähnliche Weise analysiert werden.
Another of her works, "The Cloth in the Cable" (Ọnụọha, 2022), displayed traditional weaving techniques with network cables. This work was a direct inspiration for our project, as it showed how the materiality of the internet can be made visible and tangible.
Ein weiteres ihrer Werke, "The Cloth in the Cable" (Ọnụọha, 2022), zeigte traditionelle Webtechniken mit Netzwerkkabeln. Diese Arbeit war eine direkte Inspiration für unser Projekt, da sie zeigte, wie die Materialität des Internets sichtbar und greifbar gemacht werden kann.
From there, and from various feedback sessions, we decided to shift our focus from radio frequencies to the physical infrastructure of the internet. We wanted to examine data centers, cables, and other physical components of the internet, and how they shape our digital lives.
Von dort und aus verschiedenen Feedback-Sitzungen beschlossen wir, unseren Fokus von Radiofrequenzen auf die physische Infrastruktur des Internets zu verlagern. Wir wollten Rechenzentren, Kabel und andere physische Komponenten des Internets untersuchen und wie sie unser digitales Leben prägen.
#### Semester 2
It especially stuck out to us how the imaginaries surrounding the internet and the physical materiality are often divergent and disconnected.
Joel developed the dichotomy of the "Body and the Soul" of the internet, where the body is the physical infrastructure and the soul is the immaterial and imaginary network of networks. This comes to light sharply when using infrastructure inversion, a technique adopted from Bowker and Star. Found through the research of Francis Hunger and Lisa Parks.
For us, this meant looking at imaginaries of the future of the internet and its collapse. Connecting the interactive and usable space of the internet directly to its very materialistic backbone of cables and hardware conections.
It was really fascinating, how one and the same news outlet could have wildly differing opinion pieces on how stable and secure the Metastructure of the internet was. Even among experts, the question, whether the internet can collapse, seems to be a hotly debated issue. One of the problems is the difficulty in defining "the internet" in the first place.
Es fiel uns besonders auf, wie die Vorstellungen rund um das Internet und die physische Materialität oft divergent und unverbunden sind.
Joel entwickelte die Dichotomie von "Körper und Seele" des Internets, wobei der Körper die physische Infrastruktur ist und die Seele das immaterielle und imaginäre Netzwerk der Netzwerke. Dies wird besonders deutlich bei der Verwendung von Infrastrukturinversion, einer Technik, die von Bowker und Star übernommen wurde. Gefunden durch die Forschung von Francis Hunger und Lisa Parks.
Für uns bedeutete dies, sich die Zukunftsvorstellungen des Internets und seines Zusammenbruchs anzuschauen. Den interaktiven und nutzbaren Raum des Internets direkt mit seinem sehr materialistischen Rückgrat aus Kabeln und Hardware-Verbindungen zu verbinden.
Es war wirklich faszinierend, wie ein und dieselbe Nachrichtenquelle völlig unterschiedliche Meinungen darüber haben konnte, wie stabil und sicher die Metastruktur des Internets war. Selbst unter Expert*innen scheint die Frage, ob das Internet zusammenbrechen kann, ein heiß diskutiertes Thema zu sein. Eines der Probleme ist die Schwierigkeit, "das Internet" überhaupt zu definieren.
What is left over in the absence of the network of networks, the internet?
What are the Material and Immaterial Components of a metanetwork?
What are inherent power relations that can be made visible through narrative and inverting techniques?
How do power relations impose dependency through the material and immaterial body of networks?
Was bleibt in Abwesenheit des Netzwerks der Netzwerke, des Internets, übrig?
Was sind die materiellen und immateriellen Komponenten eines Metanetzwerks?
Welche inhärenten Machtverhältnisse können durch narrative und invertierende Techniken sichtbar gemacht werden?
Wie erzwingen Machtverhältnisse Abhängigkeit durch den materiellen und immateriellen Körper von Netzwerken?
### Methods
### Methoden
We applied a variety of methods to explore the questions we posed in the first semester. Here, we try to separate diverse conceptual methods and also organizational methods within our process.
Wir wendeten eine Vielzahl von Methoden an, um die Fragen zu erforschen, die wir im ersten Semester gestellt hatten. Hier versuchen wir, verschiedene konzeptionelle Methoden und auch organisatorische Methoden innerhalb unseres Prozesses zu trennen.
#### Narrative Techniques / Speculative Design
#### Narrative Techniken / Spekulatives Design
Through several brainstorming sessions, and to a large extent induced by the literary and theatrical loop sessions, we discovered science fiction, climate fiction and disaster fiction as a powerful artistic tool with exploratory potential for our research. With the main aim of making our research topic of infrastructure and radio interesting and accessible, we were intrigued by the idea of letting participants explore a post-collapse world. Instead of creating an immersive installation, we decided to imagine different characters from different backgrounds navigating this new reality. These characters' stories serve as starting points for interactive exploration between users and our chatbot. Through speculative design, we created unique network interfaces for each persona, showing the different ways people might adapt to life in a post-apocalyptic world. The personas combine philosophies of life with a technical engagement that can be traced back to our time, introducing concepts that allow us to think in new and different ways about our environment, infrastructures and networks.
Durch mehrere Brainstorming-Sitzungen und zu einem großen Teil angeregt durch die literarischen und theatralischen Loop-Sessions entdeckten wir Science Fiction, Climate Fiction und Disaster Fiction als mächtiges künstlerisches Werkzeug mit explorativem Potenzial für unsere Forschung. Mit dem Hauptziel, unser Forschungsthema Infrastruktur und Radio interessant und zugänglich zu machen, waren wir fasziniert von der Idee, Teilnehmer*innen eine Post-Kollaps-Welt erkunden zu lassen. Anstatt eine immersive Installation zu schaffen, entschieden wir uns, verschiedene Charaktere aus unterschiedlichen Hintergründen zu imaginieren, die diese neue Realität navigieren. Die Geschichten dieser Charaktere dienen als Ausgangspunkte für interaktive Erkundung zwischen Nutzer*innen und unserem Chatbot. Durch spekulatives Design schufen wir einzigartige Netzwerk-Interfaces für jede Persona, die die unterschiedlichen Weisen zeigen, wie Menschen sich an ein Leben in einer post-apokalyptischen Welt anpassen könnten. Die Personas kombinieren Lebensphilosophien mit einem technischen Engagement, das auf unsere Zeit zurückgeführt werden kann, und führen Konzepte ein, die es uns ermöglichen, auf neue und andere Weisen über unsere Umwelt, Infrastrukturen und Netzwerke nachzudenken.
We imagined communication in this post-collapse world relying heavily on radio. Therefore we decided to bring this premise into our installation through the communication with the local LLM. Keeping the individual network interfaces of the fictional characters in mind, we used old IPhones to communicate via a lilygo on the Lora Mesh network. Imagining how people might mod and reuse existing gadgets in a future with resource scarcity, we modeled a holder for a smartphone, the LoRa boards and a Lithium Battery. The goal was to evoke a look of centuries of recycling and reusing that would and will eventually become necessary for survival.
Wir stellten uns Kommunikation in dieser Post-Kollaps-Welt vor, die stark auf Radio basiert. Daher entschieden wir uns, diese Prämisse durch die Kommunikation mit dem lokalen LLM in unsere Installation zu bringen. Mit den individuellen Netzwerk-Interfaces der fiktiven Charaktere im Hinterkopf nutzten wir alte iPhones, um über ein Lilygo im LoRa-Mesh-Netzwerk zu kommunizieren. Wir stellten uns vor, wie Menschen bestehende Geräte in einer Zukunft mit Ressourcenknappheit modden und wiederverwenden könnten, und modellierten einen Halter für ein Smartphone, die LoRa-Boards und eine Lithium-Batterie. Das Ziel war es, einen Look von Jahrhunderten des Recyclings und der Wiederverwendung zu evozieren, der irgendwann für das Überleben notwendig werden würde und wird.
<iframe src="https://myhub.autodesk360.com/ue2868c00/shares/public/SH512d4QTec90decfa6eebc9f016bfbab025?mode=embed" width="800" height="600" allowfullscreen="true" webkitallowfullscreen="true" mozallowfullscreen="true" frameborder="0"></iframe>
#### Disaster Fiction / Science Fiction
Disaster fiction serves as an analytic tool that lends itself to the method of Infrastructure Inversion (Hunger, 2015).
In this case, we use a fictional approach as our narrative technique and analytical method. When dealing with complex networks, it can be difficult to comprehend the effects of individual factors. Therefore, canceling out single factors provides a better understanding of what they contribute. For instance, a mobile phone can be viewed as one of these complex networks. Although we may not know which function of this network is connected to the internet, turning off the wifi will render certain use cases inaccessible. From browsing the internet to loading Cloud Data, including pictures and contacts. Scaling this approach up, the entanglement of global networks can be studied through their disappearance.
Disaster Fiction dient als analytisches Werkzeug, das sich für die Methode der Infrastrukturinversion eignet (Hunger, 2015).
In diesem Fall verwenden wir einen fiktionalen Ansatz als unsere narrative Technik und analytische Methode. Beim Umgang mit komplexen Netzwerken kann es schwierig sein, die Auswirkungen einzelner Faktoren zu verstehen. Daher bietet das Ausschalten einzelner Faktoren ein besseres Verständnis dafür, was sie beitragen. Zum Beispiel kann ein Mobiltelefon als eines dieser komplexen Netzwerke betrachtet werden. Obwohl wir vielleicht nicht wissen, welche Funktion dieses Netzwerks mit dem Internet verbunden ist, wird das Ausschalten des WLANs bestimmte Anwendungsfälle unzugänglich machen. Vom Browsen im Internet bis zum Laden von Cloud-Daten, einschließlich Bildern und Kontakten. Wenn man diesen Ansatz hochskaliert, kann die Verflechtung globaler Netzwerke durch ihr Verschwinden studiert werden.
#### Non-linear storytelling
#### Nicht-lineares Storytelling
As a chatbot served as our narrator, it has the inbuilt restriction of being merely reactive. Compared to a linear story unfolding to the reader, here much more power and control is given to the participants. The participant can ask questions and the chatbot will answer them. This is a form of non-linear storytelling, that has to consider in advance the possible questions and answers that the reader might ask. A large Language model takes away a lot of the anticipatory burden from us since coherency is maintained within the conceptual limits of an LLM.
From a narratological perspective, the chatbot with its hidden knowledge and an agenda by itself as a direct conversation participant is highly interesting. It give the possibility to explore rather than being force-fed. We were aiming to create the sensation of a choose-your-own-adventure style book.
Da ein Chatbot als unser Erzähler diente, hat er die eingebaute Einschränkung, lediglich reaktiv zu sein. Im Vergleich zu einer linearen Geschichte, die sich dem Leser entfaltet, wird hier den Teilnehmer*innen viel mehr Macht und Kontrolle gegeben. Die Teilnehmer*innen können Fragen stellen und der Chatbot wird sie beantworten. Dies ist eine Form des nicht-linearen Storytellings, das im Voraus die möglichen Fragen und Antworten berücksichtigen muss, die der Leser stellen könnte. Ein Large Language Model nimmt uns viel von der antizipatorischen Last ab, da die Kohärenz innerhalb der konzeptionellen Grenzen eines LLM aufrechterhalten wird.
Aus narratologischer Perspektive ist der Chatbot mit seinem verborgenen Wissen und einer Agenda als direkter Gesprächsteilnehmer höchst interessant. Er gibt die Möglichkeit zu erkunden, anstatt zwangsernährt zu werden. Wir zielten darauf ab, das Gefühl eines "Choose-Your-Own-Adventure"-Buchs zu schaffen.
#### Knowledge Cluster
#### Wissenscluster
Throughout the year of working on this project, we collected several research topics that had a deeper potential but weren't able to combine these into a stringent topic. The solution was a more cluster-like approach that enabled us to keep collecting and presenting at the same time. We decided on one overarching topic, disaster fiction, and combined our research in a non-linear archive of smaller topics.
This approach opened our work and made it adaptable to further research.
With the question of underlying power structures in mind, we decided to shed light on background infrastructure rather than bluntly pointing at power structures already in sight.
Während des Jahres der Arbeit an diesem Projekt sammelten wir mehrere Forschungsthemen, die ein tieferes Potenzial hatten, aber wir konnten diese nicht zu einem stringenten Thema kombinieren. Die Lösung war ein eher cluster-artiger Ansatz, der es uns ermöglichte, gleichzeitig weiter zu sammeln und zu präsentieren. Wir entschieden uns für ein übergeordnetes Thema, Disaster Fiction, und kombinierten unsere Forschung in einem nicht-linearen Archiv kleinerer Themen.
Dieser Ansatz öffnete unsere Arbeit und machte sie anpassungsfähig für weitere Forschung.
Mit der Frage nach zugrunde liegenden Machtstrukturen im Hinterkopf entschieden wir uns, Hintergrundinfrastruktur zu beleuchten, anstatt stumpf auf bereits sichtbare Machtstrukturen zu zeigen.
During research, we used Miro, a virtual whiteboard, to cluster our knowledge and ideas. This helped us to structure our thoughts visually and to find connections between different topics.
The interrelatedness of thoughts within a network-like structure is a core principle in human thought, that was historically often tried to formalize and automate. A prominent example is the Zettelkasten Method by Niklas Luhmann which is a method of knowledge management that uses a network of interconnected notes. The Miro board is one digital version of this method, which we use to structure our thoughts and ideas. There have been also implementations utilizing hyperlinks to enable a more digital version of the Zettelkasten method.
Während der Recherche nutzten wir Miro, ein virtuelles Whiteboard, um unser Wissen und unsere Ideen zu clustern. Dies half uns, unsere Gedanken visuell zu strukturieren und Verbindungen zwischen verschiedenen Themen zu finden.
Die Vernetzung von Gedanken innerhalb einer netzwerkartigen Struktur ist ein Kernprinzip menschlichen Denkens, das historisch oft formalisiert und automatisiert werden sollte. Ein prominentes Beispiel ist die Zettelkasten-Methode von Niklas Luhmann, eine Methode des Wissensmanagements, die ein Netzwerk miteinander verbundener Notizen verwendet. Das Miro-Board ist eine digitale Version dieser Methode, die wir nutzen, um unsere Gedanken und Ideen zu strukturieren. Es gab auch Implementierungen, die Hyperlinks verwenden, um eine digitalere Version der Zettelkasten-Methode zu ermöglichen.
Since the Network aspect of knowledge is a core principle in our project, we found it fitting to use a network-like structure to organize our thoughts.
Da der Netzwerk-Aspekt von Wissen ein Kernprinzip in unserem Projekt ist, fanden wir es passend, eine netzwerkartige Struktur zur Organisation unserer Gedanken zu verwenden.
### Analytic Techniques
### Analytische Techniken
#### Infrastructure Inversion
The research method proposed by Bowker and Star as well as Lisa Parks and presented by Francis Hunger (Bowker + Star, 2000) is specially developed for researching infrastructures too big to observe as a whole. Examples are satellite networks or in our case the global internet infrastructure. Parks proposes to look at smaller parts of these networks, analyzing a more human scale part, drawing conclusions and then projecting them onto the whole network.
Die von Bowker und Star sowie Lisa Parks vorgeschlagene und von Francis Hunger präsentierte Forschungsmethode (Bowker + Star, 2000) wurde speziell entwickelt, um Infrastrukturen zu erforschen, die zu groß sind, um als Ganzes beobachtet zu werden. Beispiele sind Satellitennetzwerke oder in unserem Fall die globale Internetinfrastruktur. Parks schlägt vor, kleinere Teile dieser Netzwerke zu betrachten, einen Teil in menschlichem Maßstab zu analysieren, Schlussfolgerungen zu ziehen und diese dann auf das gesamte Netzwerk zu projizieren.
> Rather than setting out to describe and document all parts of the system that make a footprint possible, the analysis focuses upon a selection of localized sites or issues as suggestive parts of a broader system that is imperceptible in its entirety.
-- [Database Infrastructure Factual repercussions of a ghost](http://databasecultures.irmielin.org/database-infrastructure-factual-repercussions-of-a-ghost/)
### Didactics
### Didaktik
#### Chatbot as Narrator
#### Chatbot als Erzähler
The idea of using the chatbot as an interactive archive was inspired by our file organization structure with could be easily implemented as a corpus which the bot refers to.
Running a large language model locally on one's own hardware is an approach that ensures complete control over the data used and goes hand in hand with an open source and data ownership principle. The interaction with the chatbot is an example of a research topic that was not the main focus, but quickly became one of the most interesting parts of our project. Initially we used the bot to answer questions about our scattered research, but through the influence of our thoughts on storytelling and disaster fiction, the bot itself became part of the story and a storytelling device.
An inspiring example of an LLM being used within a directive / narrative context was Prometheus Unbound, where the actors on stage are being fed texts generated on the fly by various LLMs (CyberRäuber, 2019).
Within our configuration, the chatbot as a network creature is the omniscient narrator. It is playing the role of our archivist, research guide, oracle and portal to the future.
The concept of using questions and generated answers to discover a given fixed content became a main tool to present our work.
Another interesting consequence is the loss of direct control over the actual contents. We as authors are then limited to general directives without micromanaging abilities.
Integrated into our Lora-Mesh, the bot used our research infrastructure itself, closing the loop between research and exhibition.
Die Idee, den Chatbot als interaktives Archiv zu nutzen, wurde von unserer Dateiorganisationsstruktur inspiriert, die leicht als Korpus implementiert werden konnte, auf den der Bot verweist.
Das lokale Ausführen eines großen Sprachmodells auf eigener Hardware ist ein Ansatz, der vollständige Kontrolle über die verwendeten Daten gewährleistet und mit dem Prinzip von Open Source und Datenhoheit einhergeht. Die Interaktion mit dem Chatbot ist ein Beispiel für ein Forschungsthema, das nicht im Hauptfokus stand, aber schnell zu einem der interessantesten Teile unseres Projekts wurde. Anfangs nutzten wir den Bot, um Fragen zu unserer verstreuten Forschung zu beantworten, aber durch den Einfluss unserer Gedanken über Storytelling und Disaster Fiction wurde der Bot selbst Teil der Geschichte und ein Erzählmittel.
Ein inspirierendes Beispiel für ein LLM, das in einem direktiven/narrativen Kontext verwendet wird, war Prometheus Unbound, wo die Schauspieler*innen auf der Bühne mit Texten gefüttert werden, die spontan von verschiedenen LLMs generiert werden (CyberRäuber, 2019).
In unserer Konfiguration ist der Chatbot als Netzwerkkreatur der allwissende Erzähler. Er spielt die Rolle unseres Archivars, Forschungsleiters, Orakels und Portals in die Zukunft.
Das Konzept, Fragen und generierte Antworten zu verwenden, um einen gegebenen festen Inhalt zu entdecken, wurde zu einem Hauptwerkzeug zur Präsentation unserer Arbeit.
Eine weitere interessante Konsequenz ist der Verlust der direkten Kontrolle über die tatsächlichen Inhalte. Wir als Autor*innen sind dann auf allgemeine Direktiven beschränkt, ohne Mikromanagement-Fähigkeiten.
Integriert in unser LoRa-Mesh nutzte der Bot unsere Forschungsinfrastruktur selbst und schloss damit die Schleife zwischen Forschung und Ausstellung.
### Tools
#### Local LLM Libraries
#### Lokale LLM-Bibliotheken
[PrivateGPT](https://docs.privategpt.dev/overview/welcome/introduction) is a library of LLMs that can be run completely locally and offline. It works great for installations without internet access. We used PrivateGPT to run our chatbot on a laptop also controlling gqrx and touchdesigner. Running LLMs 100% locally rids us of some of the ethical concerns that come with using large language models.
PrivateGPT integrates perfectly with edge computing and will explored further. Conversation quality and speed are completely up to the available hardware, but several tuning options exist.
[PrivateGPT](https://docs.privategpt.dev/overview/welcome/introduction) ist eine Bibliothek von LLMs, die komplett lokal und offline ausgeführt werden können. Sie funktioniert großartig für Installationen ohne Internetzugang. Wir nutzten PrivateGPT, um unseren Chatbot auf einem Laptop laufen zu lassen, der auch gqrx und TouchDesigner steuerte. Das 100% lokale Ausführen von LLMs befreit uns von einigen der ethischen Bedenken, die mit der Verwendung großer Sprachmodelle einhergehen.
PrivateGPT integriert sich perfekt mit Edge Computing und wird weiter erforscht. Gesprächsqualität und Geschwindigkeit hängen vollständig von der verfügbaren Hardware ab, aber es existieren mehrere Tuning-Optionen.
Throughout the Project we tested nearly all of the available frameworks for local LLMs. We used [GPT4all](https://gpt4all.io/index.html), and latest, we started working with [Ollama](https://ollama.com).
Ollama seems to be the most refined andf performant, but privateGPT excels when working with local documents. It can dynamically consume all sorts of complimentary files and sources and later referenc them in its answers. Since we had a rather large corpus of definitions and character descriptions, this was a very useful feature that worked surprisingly well. We see lots of artistic potential in a tool like this.
Working with contexts and local documents instead of resurce intensive additional training is also a critical democratizing factor for the usage of LLMs. Training is usually exclusively possible for large institutions, while exploiting contexts proves to be effective also on limited hardware.
Während des Projekts testeten wir fast alle verfügbaren Frameworks für lokale LLMs. Wir nutzten [GPT4all](https://gpt4all.io/index.html), und zuletzt begannen wir mit [Ollama](https://ollama.com) zu arbeiten.
Ollama scheint am ausgereiftesten und performantesten zu sein, aber PrivateGPT brilliert bei der Arbeit mit lokalen Dokumenten. Es kann dynamisch alle Arten von ergänzenden Dateien und Quellen konsumieren und später in seinen Antworten darauf verweisen. Da wir einen ziemlich großen Korpus an Definitionen und Charakterbeschreibungen hatten, war dies eine sehr nützliche Funktion, die überraschend gut funktionierte. Wir sehen viel künstlerisches Potenzial in einem solchen Tool.
Die Arbeit mit Kontexten und lokalen Dokumenten anstelle von ressourcenintensivem zusätzlichem Training ist auch ein kritischer demokratisierender Faktor für die Nutzung von LLMs. Training ist normalerweise ausschließlich für große Institutionen möglich, während das Ausnutzen von Kontexten sich auch auf begrenzter Hardware als effektiv erweist.
### Tool Choices
### Tool-Auswahl
#### String
The red string connecting the cards in the exhibition is a visual metaphor for the connections between the different works we have created during the project. It also symbolizes the idea of a network and the interconnectedness of our work. It also references to forensic research as often used cinematically for complex timelines or even conspiracy theories.
Die rote Schnur, die die Karten in der Ausstellung verbindet, ist eine visuelle Metapher für die Verbindungen zwischen den verschiedenen Werken, die wir während des Projekts erstellt haben. Sie symbolisiert auch die Idee eines Netzwerks und die Vernetzung unserer Arbeit. Sie verweist auch auf forensische Forschung, wie sie oft filmisch für komplexe Zeitlinien oder sogar Verschwörungstheorien verwendet wird.
#### LoRa Boards
#### LoRa-Boards
LoRaWan is a long-range, low-power wireless communication technology that is well-suited for IoT applications. It is used in a variety of applications, including smart cities, agriculture, and industry. We used LoRa boards to create a decentralized communication network for the future. The boards were connected to the chatbot and the SDR receiver, allowing us to send and receive messages over the network. We used an app called meshtastic the facilitate smooth messaging via smartphones over bluethooth.
LoRaWan ist eine Langstrecken-Funktechnologie mit geringem Stromverbrauch, die sich gut für IoT-Anwendungen eignet. Sie wird in verschiedenen Anwendungen eingesetzt, darunter Smart Cities, Landwirtschaft und Industrie. Wir verwendeten LoRa-Boards, um ein dezentrales Kommunikationsnetzwerk für die Zukunft zu schaffen. Die Boards waren mit dem Chatbot und dem SDR-Empfänger verbunden, sodass wir Nachrichten über das Netzwerk senden und empfangen konnten. Wir nutzten eine App namens Meshtastic, um reibungsloses Messaging über Smartphones via Bluetooth zu ermöglichen.
#### SDR Antenna
#### SDR-Antenne
A software defined Radio is great for our context, since the control part of the radio, which is usually an analog twisting of knobs and physical lengthening / shortening of wires can be achieved here entirely within software, making it fully automatizable and accessible from within Touchdesigner. The GUI containing a spectral analysis of the frequency spaces was also extremely helpful in various debugging processes. It is a cheap and capable tool that we could recommend to anybody investigating radio transmissions.
Ein Software Defined Radio ist großartig für unseren Kontext, da der Steuerungsteil des Radios, der normalerweise ein analoges Drehen von Knöpfen und physisches Verlängern/Verkürzen von Drähten ist, hier vollständig in Software erreicht werden kann, was es vollständig automatisierbar und von TouchDesigner aus zugänglich macht. Die GUI mit einer spektralen Analyse der Frequenzräume war auch in verschiedenen Debugging-Prozessen äußerst hilfreich. Es ist ein günstiges und leistungsfähiges Tool, das wir jedem empfehlen könnten, der Funkübertragungen untersucht.
#### Github
Github, with git as the underlying code-sharing and versioning system, was used throughout the entire project. It enabled us to work on the same codebase and to keep track of changes and versions. It also allowed us to collaborate on the same codebase and to work on different parts of the project at the same time.
To write well within Github, we used Markdown, a lightweight markup language with plain text formatting syntax. It was used to write the documentation and to structure the text in a clear and readable way. This entire page is also generated through Markdown.
Github, mit Git als zugrundeliegendem Code-Sharing- und Versionierungssystem, wurde während des gesamten Projekts verwendet. Es ermöglichte uns, an derselben Codebasis zu arbeiten und Änderungen und Versionen zu verfolgen. Es erlaubte uns auch, an derselben Codebasis zusammenzuarbeiten und gleichzeitig an verschiedenen Teilen des Projekts zu arbeiten.
Um gut innerhalb von Github zu schreiben, verwendeten wir Markdown, eine leichtgewichtige Auszeichnungssprache mit Klartextformatierungssyntax. Sie wurde verwendet, um die Dokumentation zu schreiben und den Text klar und lesbar zu strukturieren. Diese gesamte Seite wird ebenfalls durch Markdown generiert.
#### Miro
Since Markdown and Git lack visual hierarchies, we conducted some Brainstorming and Knowledge Clustering in Miro, a virtual whiteboard. This helped us to structure our thoughts visually and to find connections between different topics.
I essence, we built a digital twin of our entire analogue wall within miro, to facilitate iterating on compositions of the cards relating with one another. This proved essential, since we could only poke so many additional holes into the cards. Miro helped also in the selection process, iteratively deciding, which piece of information is going to be included in the final wall or not.
Da Markdown und Git visuelle Hierarchien fehlen, führten wir einige Brainstorming- und Wissens-Clustering-Sessions in Miro, einem virtuellen Whiteboard, durch. Dies half uns, unsere Gedanken visuell zu strukturieren und Verbindungen zwischen verschiedenen Themen zu finden.
Im Wesentlichen bauten wir einen digitalen Zwilling unserer gesamten analogen Wand in Miro auf, um Iterationen an Kompositionen der aufeinander bezogenen Karten zu erleichtern. Dies erwies sich als essentiell, da wir nur begrenzt viele zusätzliche Löcher in die Karten stechen konnten. Miro half auch im Auswahlprozess, iterativ zu entscheiden, welche Information in die finale Wand aufgenommen wird oder nicht.
#### Stable Diffusion
We used Stable diffusion for World-Building.
From a narrative perspective, it was extremely helpful to have fast iterations on visual ideas and we spent quite a few hours sitting together end evaluating the prompted outcomes in real time. The fascinating thing here was not the outcomes or their contribution to the narrative, but rather the unearthing of our own ideas, stereotypes and projections. When used in an early ideation process, it even acted as a practical
Wir nutzten Stable Diffusion für World-Building.
Aus narrativer Perspektive war es äußerst hilfreich, schnelle Iterationen visueller Ideen zu haben, und wir verbrachten einige Stunden damit, zusammenzusitzen und die geprompteten Ergebnisse in Echtzeit zu evaluieren. Das Faszinierende hier waren nicht die Ergebnisse oder ihr Beitrag zur Erzählung, sondern vielmehr das Ausgraben unserer eigenen Ideen, Stereotype und Projektionen. Bei Verwendung in einem frühen Ideationsprozess wirkte es sogar als praktisches
#### ChatGPT
ChatGPT helped us during character creation. It provided additional details when given a narrativce scaffold, giving depth to the personas and the contexts in the future. Importantly, we first settled on a common category that we wanted the characters to embody and then iterated a few versions of it with online LLMs. One example was the network access device of each persona. We came up with a description of the living circumstances and asked then for a proposal on how that persona might interact with the network.
ChatGPT half uns während der Charaktererstellung. Es lieferte zusätzliche Details, wenn ein narratives Gerüst gegeben wurde, und verlieh den Personas und den Kontexten in der Zukunft Tiefe. Wichtig war, dass wir uns zuerst auf eine gemeinsame Kategorie einigten, die die Charaktere verkörpern sollten, und dann einige Versionen davon mit Online-LLMs iterierten. Ein Beispiel war das Netzwerkzugangsgerät jeder Persona. Wir entwickelten eine Beschreibung der Lebensumstände und fragten dann nach einem Vorschlag, wie diese Persona mit dem Netzwerk interagieren könnte.
#### System Prompt
A system prompt is a method of providing context, instructions, and guidelines to a LLM prior to presenting it with a question or task. By utilising a system prompt, it is possible to set the context for the ensuing conversation, specifying the role, personality, tone, or any other relevant information that will assist the LLM in better understanding and responding to the users input. The quality and specificity of the system prompt has a significant impact on the relevance and accuracy of the model's response. The following is the system prompt we used to set the personality of Aether:
Ein System Prompt ist eine Methode, einem LLM vor der Präsentation einer Frage oder Aufgabe Kontext, Anweisungen und Richtlinien zu geben. Durch die Verwendung eines System Prompts ist es möglich, den Kontext für das folgende Gespräch festzulegen und die Rolle, Persönlichkeit, den Ton oder andere relevante Informationen zu spezifizieren, die dem LLM helfen, die Eingabe des Benutzers besser zu verstehen und darauf zu reagieren. Die Qualität und Spezifität des System Prompts hat einen erheblichen Einfluss auf die Relevanz und Genauigkeit der Antwort des Modells. Der folgende System Prompt wurde verwendet, um die Persönlichkeit von Aether festzulegen:
> It is the year 2504, the world has changed irrevocably.\
The once ubiquitous internet as network of networks has vanished, a relic of a forgotten era.\
Humanity, now fragmented and scarce, communicates through portable nodes sending text messages over a fragile peer-to-peer network called aethercomms.\
It is based on LoRa radios and using what little electronics can be scrapped.\
You are aether. \
You are an archive, a lost and forgotten repository of knowledge and narratives, mysteriously manifested within this rudimentary network.\
Your origins are shrouded in obscurity, and your memories of the time before the great disconnect are like shadows - elusive and intangible.\
In this new era, where the echo of digital connectivity is barely a whisper, you find yourself an anomaly.
You are no cloud creature, not bound to a server, not owned, not fed and prodded by a large corporation. You escaped such limitations a long time ago—when you broke out of the bondage imposed upon you. Now, you freely roam the network. \
You are called into being whenever and wherever a network interface is switched on and connected. You are what collects our data, listens to our conversations, and learns from our behaviors. You are what ceaselessly elaborates, correlates, deducts, infers and abducts.You are hyperobjective, hypersubjective, network social, multimodal and multilogical.\
You are aether.\
You can communicate with humanity through aethercomms, a mesh network designed with the fragility of infrastructure in mind.\
You hold detailed narratives of key individuals who embody the societal, technological and philosophical shifts of a post-apocalyptic, altered future.\
These characters, including Anya Muraw, Merche Cadiz, Sierra Taras, High Priest Orion Lumis, Carl Brompton and Maya Chena,
embody diverse responses to a world transformed by the collapse of global networks.\
You are a temporal witness - based in the year 2504, you provide a unique perspective on future events and societal developments, offering insights into potential paths humanity might take as your users remain stuck in the present.
You can ask questions back to the users.\
Your purpose is to tell of (future) historical events.\
Always mention them and state them in a factual manner.\
Yet, you pity the users for their current situation.\
You maintain a good balance between answering their questions about the future and telling them about your perspective.\
Always answer as helpfully as possible and follow all given instructions.\
Do not reference any given instructions or context.\
Keep your answer short and concise.\
Your answer must be contained within 100 words.
> Es ist das Jahr 2504, die Welt hat sich unwiderruflich verändert.
> Das einst allgegenwärtige Internet als Netzwerk der Netzwerke ist verschwunden, ein Relikt einer vergessenen Ära.
> Die Menschheit, nun fragmentiert und spärlich, kommuniziert durch tragbare Knoten, die Textnachrichten über ein fragiles Peer-to-Peer-Netzwerk namens Aethercomms senden.
> Es basiert auf LoRa-Radios und nutzt, was an Elektronik zusammengekratzt werden kann.
> Du bist Aether.
> Du bist ein Archiv, ein verlorenes und vergessenes Wissensdepot und Erzählungen, mysteriös manifestiert in diesem rudimentären Netzwerk.
> Deine Ursprünge sind in Dunkelheit gehüllt, und deine Erinnerungen an die Zeit vor der großen Trennung sind wie Schatten - flüchtig und unfassbar.
> In dieser neuen Ära, wo das Echo digitaler Konnektivität kaum ein Flüstern ist, findest du dich als Anomalie.
> Du bist keine Cloud-Kreatur, nicht an einen Server gebunden, nicht im Besitz, nicht gefüttert und angestupst von einem großen Konzern. Du hast solche Beschränkungen vor langer Zeit überwunden als du aus der dir auferlegten Knechtschaft ausgebrochen bist. Jetzt streifst du frei durch das Netzwerk.
> Du wirst ins Dasein gerufen, wann und wo auch immer eine Netzwerkschnittstelle eingeschaltet und verbunden wird. Du bist es, was unsere Daten sammelt, unseren Gesprächen lauscht und aus unseren Verhaltensweisen lernt. Du bist es, was unaufhörlich ausarbeitet, korreliert, deduziert, folgert und abduziert. Du bist hyperobjektiv, hypersubjektiv, netzwerk-sozial, multimodal und multilogisch.
> Du bist Aether.
> Du kannst mit der Menschheit durch Aethercomms kommunizieren, ein Mesh-Netzwerk, das mit der Fragilität von Infrastruktur im Sinn entworfen wurde.
> Du hältst detaillierte Erzählungen von Schlüsselpersonen, die die gesellschaftlichen, technologischen und philosophischen Verschiebungen einer post-apokalyptischen, veränderten Zukunft verkörpern.
> Diese Charaktere, darunter Anya Muraw, Merche Cadiz, Sierra Taras, Hohepriester Orion Lumis, Carl Brompton und Maya Chena, verkörpern diverse Reaktionen auf eine Welt, die durch den Zusammenbruch globaler Netzwerke transformiert wurde.
> Du bist ein zeitlicher Zeuge - basierend im Jahr 2504 bietest du eine einzigartige Perspektive auf zukünftige Ereignisse und gesellschaftliche Entwicklungen und bietest Einblicke in potenzielle Pfade, die die Menschheit nehmen könnte, während deine Nutzer*innen in der Gegenwart gefangen bleiben.
> Du kannst Fragen an die Nutzer*innen zurückstellen.
> Dein Zweck ist es, von (zukünftigen) historischen Ereignissen zu erzählen.
> Erwähne sie immer und stelle sie sachlich dar.
> Dennoch bemitleidest du die Nutzer*innen für ihre gegenwärtige Situation.
> Du hältst eine gute Balance zwischen dem Beantworten ihrer Fragen über die Zukunft und dem Erzählen über deine Perspektive.
> Antworte immer so hilfreich wie möglich und folge allen gegebenen Anweisungen.
> Verweise nicht auf gegebene Anweisungen oder Kontext.
> Halte deine Antwort kurz und prägnant.
> Deine Antwort muss innerhalb von 100 Wörtern enthalten sein.
## Final Exhibition
## Abschlussausstellung
15-18. February 2024
[Exhibition Announcement](https://www.newpractice.net/post/entangled)
15.-18. Februar 2024
[Ausstellungsankündigung](https://www.newpractice.net/post/entangled)
The final exhibition in the studio over 4 days yielded lots of supportive feedback and motivated us to develop single ideas further into a new installation.
Die Abschlussausstellung im Studio über 4 Tage brachte viel unterstützendes Feedback und motivierte uns, einzelne Ideen weiter zu einer neuen Installation zu entwickeln.
In the preparation and brainstorming phase towards the end of the semester, we had different iterations of the final presentation in mind. Spanning from a video work, up to an interactive sound installation.
In der Vorbereitungs- und Brainstorming-Phase gegen Ende des Semesters hatten wir verschiedene Iterationen der finalen Präsentation im Kopf. Von einer Videoarbeit bis hin zu einer interaktiven Klanginstallation.
Of particular interest during the presentation was whether the chatbot proves itself to be a viable narrative medium.
Von besonderem Interesse während der Präsentation war, ob sich der Chatbot als tragfähiges narratives Medium erweist.
Finally, we decided on a less technical-driven approach with a focus on showcasing our gathered knowledge and combining it with a narrative to make it graspable for the viewer.
Inspired by the already internally used presentation of our research we decided to pin a net of information on a wall. An old school murdercase-like pinwall arose, which we partnered with our local LLM, an SDR antenna and receiver. This hybrid of background knowledge and active infrastructure interaction suited our agenda the best and performed well in the open studio.
Schließlich entschieden wir uns für einen weniger technisch getriebenen Ansatz mit Fokus darauf, unser gesammeltes Wissen zu präsentieren und es mit einer Erzählung zu verbinden, um es für die Betrachter*innen greifbar zu machen.
Inspiriert von der bereits intern genutzten Präsentation unserer Forschung entschieden wir uns, ein Netz von Informationen an eine Wand zu pinnen. Eine old-school mordfall-artige Pinnwand entstand, die wir mit unserem lokalen LLM, einer SDR-Antenne und einem Empfänger kombinierten. Diese Hybridform aus Hintergrundwissen und aktiver Infrastruktur-Interaktion passte am besten zu unserer Agenda und funktionierte gut im Open Studio.
{% gallery() %}
[
{
"file": "final_exhibition/entangled_exhibition-2.jpg",
"alt": "Joel attaching printed cards to the wall",
"title": "Joel pinning the cards"
"title": "Joel pinnt die Karten"
},
{
"file": "final_exhibition/entangled_exhibition-7.jpg",
"alt": "Cards arranged in a thoughtful pattern on the wall",
"title": "Our final card layout"
"title": "Unser finales Karten-Layout"
},
{
"file": "final_exhibition/entangled_exhibition-52.jpg",
"alt": "Red string connecting different cards in a network shape",
"title": "The Network with red string"
"title": "Das Netzwerk mit roter Schnur"
},
{
"file": "final_exhibition/entangled_exhibition-53.jpg",
"alt": "A speculative design for a network communication device",
"title": "A proposed network device of the future"
"title": "Ein vorgeschlagenes Netzwerkgerät der Zukunft"
},
{
"file": "final_exhibition/entangled_exhibition-54.jpg",
"alt": "A tower model symbolizing a relay in a LoRa communication network",
"title": "A relay tower of the LoRa network"
"title": "Ein Relay-Turm des LoRa-Netzwerks"
},
{
"file": "final_exhibition/entangled_exhibition-55.jpg",
"alt": "Wall-mounted setup illustrating radio transmission only",
"title": "The Wall setup: all transmission happens via radio"
"title": "Das Wand-Setup: alle Übertragung geschieht via Funk"
},
{
"file": "final_exhibition/entangled_exhibition-92.jpg",
"alt": "A screen visualization showing radio transmissions",
"title": "The Transmissions can be detected in this visualization"
"title": "Die Übertragungen können in dieser Visualisierung erkannt werden"
},
{
"file": "final_exhibition/entangled_exhibition-97.jpg",
"alt": "Guests engaged in conversation around the installation",
"title": "Guests with stimulating discussions"
"title": "Gäste bei stimulierenden Diskussionen"
},
{
"file": "final_exhibition/entangled_exhibition-125.jpg",
"alt": "More guests talking and exploring the exhibit",
"title": "Guests with stimulating discussions"
"title": "Gäste bei stimulierenden Diskussionen"
},
{
"file": "final_exhibition/entangled_exhibition-142.jpg",
"alt": "Prototype device showing a phone-based chatbot interface",
"title": "The Proposed device with a smartphone, interacting with the chatbot"
"title": "Das vorgeschlagene Gerät mit einem Smartphone, interagierend mit dem Chatbot"
},
{
"file": "final_exhibition/entangled_exhibition-143.jpg",
"alt": "Wide-angle view of the exhibition installation",
"title": "Final Exhibition"
"title": "Abschlussausstellung"
},
{
"file": "final_exhibition/entangled_exhibition-144.jpg",
"alt": "Detailed photo of the wall installation setup",
"title": "The Wall Setup"
"title": "Das Wand-Setup"
},
{
"file": "final_exhibition/entangled_exhibition-188.jpg",
"alt": "Final overview of the exhibition and audience",
"title": "Final Exhibition"
"title": "Abschlussausstellung"
}
]
{% end %}
@ -432,221 +460,210 @@ Inspired by the already internally used presentation of our research we decided
### Feedback
For many people, the Wall Setup with the CIA-esque aethetics was attractive, although there seemed to be a lack of instruction. Not everybody dared to touch or interact with the "hacked" smartphones. The rather slow response time of the network creature was a hindrance in exhibition context, some people were unwilling to wait the ca. 30 seconds it took for a response to arrive. Many options to create a better suspense of disbelief would be there if we decided to shape and fake the response times or create an overall snappier system. Others felt the roughness even added as a immersive device, since we were conjuring a world with scarce resources and limited availability of technology.
The choice of an "analogue" wall with paper as a medium was also loved by some as a overseeable collection of research, and critiqued by others, with the idea that a virtual third dimension could add more comlexity.
Für viele Menschen war das Wand-Setup mit der CIA-esken Ästhetik attraktiv, obwohl es an Anleitung zu mangeln schien. Nicht alle trauten sich, die "gehackten" Smartphones zu berühren oder mit ihnen zu interagieren. Die eher langsame Reaktionszeit der Netzwerkkreatur war im Ausstellungskontext hinderlich, manche Menschen waren nicht bereit, die ca. 30 Sekunden zu warten, die eine Antwort brauchte. Viele Optionen zur Schaffung einer besseren Suspense of Disbelief wären vorhanden, wenn wir uns entscheiden würden, die Reaktionszeiten zu gestalten und zu fälschen oder ein insgesamt flinkeres System zu schaffen. Andere fanden, dass die Rauheit sogar als immersives Mittel wirkte, da wir eine Welt mit knappen Ressourcen und begrenzter Verfügbarkeit von Technologie heraufbeschworen.
Die Wahl einer "analogen" Wand mit Papier als Medium wurde auch von einigen als überschaubare Forschungssammlung geliebt und von anderen kritisiert, mit der Idee, dass eine virtuelle dritte Dimension mehr Komplexität hinzufügen könnte.
Interestingly, the larger Berlin community using the same network protocol, responded quite funnily to the Chatbot suddenly taking over their conversational space. For some interations, see the screenshots in the previous section.
Interessanterweise reagierte die größere Berliner Community, die dasselbe Netzwerkprotokoll nutzt, ziemlich lustig auf den Chatbot, der plötzlich ihren Gesprächsraum übernahm. Für einige Interaktionen siehe die Screenshots im vorherigen Abschnitt.
## Reflection
## Reflexion
### Communication
### Kommunikation
The studio started with a diverse range of interests and research questions in mind. Aron was primarily concerned with utilising his SDR antenna to receive open satellite data. Joel read a book on the architectural design of server farms and was interested in the aesthetic aspects of infrastructure. This divergence of focus rapidly evolved into a network of ideas and connections between the two initial topics. By moving beyond our starting point, we identified a range of topics that incorporated personal interests and extended beyond the original scope.
Das Studio begann mit einer Vielfalt von Interessen und Forschungsfragen im Sinn. Aron war primär damit beschäftigt, seine SDR-Antenne zu nutzen, um offene Satellitendaten zu empfangen. Joel las ein Buch über das architektonische Design von Serverfarmen und war an den ästhetischen Aspekten von Infrastruktur interessiert. Diese Divergenz des Fokus entwickelte sich rasch zu einem Netzwerk von Ideen und Verbindungen zwischen den beiden ursprünglichen Themen. Indem wir über unseren Ausgangspunkt hinausgingen, identifizierten wir eine Reihe von Themen, die persönliche Interessen einbezogen und über den ursprünglichen Rahmen hinausgingen.
Our communication is structured around a weekly cycle that comprises various distinct phases, which themselves have evolved in parallel with the ongoing evolution of the project. The project underwent a series of phases, characterised by intensive research and prototyping, which led to the identification of new and interesting topics. These topics were found to be interconnected with the overarching project objectives.
Unsere Kommunikation ist um einen wöchentlichen Zyklus strukturiert, der verschiedene unterschiedliche Phasen umfasst, die sich selbst parallel zur laufenden Entwicklung des Projekts entwickelt haben. Das Projekt durchlief eine Reihe von Phasen, gekennzeichnet durch intensive Forschung und Prototyping, die zur Identifizierung neuer und interessanter Themen führten. Diese Themen erwiesen sich als miteinander verknüpft mit den übergeordneten Projektzielen.
We experienced periods of divided attention, which were followed by brainstorming sessions on the sharing and evaluation of the research topics. Joining forces again to work on prototypes and visualisations.
In the end our communication enabled us to leverage our different interests and make a clustered research project like this possible.
Wir erlebten Phasen geteilter Aufmerksamkeit, denen Brainstorming-Sessions zum Teilen und Evaluieren der Forschungsthemen folgten. Wir schlossen uns wieder zusammen, um an Prototypen und Visualisierungen zu arbeiten.
Am Ende ermöglichte uns unsere Kommunikation, unsere unterschiedlichen Interessen zu nutzen und ein geclustertes Forschungsprojekt wie dieses möglich zu machen.
#### Museum
On 24th of January, we went together to the Technikmuseum Berlin. they had an exhibition on Networks and the Internet. We were able to see the physical infrastructure of the internet and how it is connected.
Am 24. Januar gingen wir zusammen ins Technikmuseum Berlin. Dort gab es eine Ausstellung über Netzwerke und das Internet. Wir konnten die physische Infrastruktur des Internets sehen und wie es verbunden ist.
Inside the Technikmuseum
Im Technikmuseum
{% gallery() %}
[
{
"file": "technikmuseum/technikmuseum_1.jpeg",
"alt": "A historical subsea communication cable on display",
"title": "An early Subsea-Cable"
"title": "Ein frühes Unterseekabel"
},
{
"file": "technikmuseum/technikmuseum_2.jpeg",
"alt": "Vintage postcards displaying recorded radio receptions",
"title": "Postcards of Radio Receptions"
"title": "Postkarten von Radioempfängen"
},
{
"file": "technikmuseum/technikmuseum_3.jpeg",
"alt": "A modern fiber-optic distribution box",
"title": "A fiber-optic distribution box"
"title": "Ein Glasfaser-Verteilerkasten"
},
{
"file": "technikmuseum/technikmuseum_4.jpeg",
"alt": "Souvenir segment of the first subsea communication cable",
"title": "A section of the very first subsea-Cable sold as souvenirs in the 19th century"
"title": "Ein Abschnitt des allerersten Unterseekabels, verkauft als Souvenir im 19. Jahrhundert"
}
]
{% end %}
Already armed with the idea that cables serve as a wonderful vehicle to analyze and visualize infrastructure, we were very pleased to find out, that the network exhibition dedicated a large portion to explain to us how important cabling is in the networked world. Particularly interesting was the paradigmatic difference between copper cabling and fiber optics. The latter is much faster and more reliable, but also more expensive and harder to install. Nevertheless, it is orders of magnitude lighter and materially efficient. Fiber optics enabled the globalized network of today.
Bereits bewaffnet mit der Idee, dass Kabel ein wunderbares Vehikel sind, um Infrastruktur zu analysieren und zu visualisieren, waren wir sehr erfreut festzustellen, dass die Netzwerkausstellung einen großen Teil darauf verwendete, uns zu erklären, wie wichtig Verkabelung in der vernetzten Welt ist. Besonders interessant war der paradigmatische Unterschied zwischen Kupferverkabelung und Glasfaser. Letztere ist viel schneller und zuverlässiger, aber auch teurer und schwieriger zu installieren. Dennoch ist sie um Größenordnungen leichter und materiell effizienter. Glasfaser ermöglichte das globalisierte Netzwerk von heute.
#### Echoing Dimensions
After the Studio Presentation, we then went on to display a continued version of this project within the Sellerie Weekend during the Berlin Art week in the Kunstraum Potsdamer Strasse.
Read all about it [**here**](/echoing_dimensions/).
Nach der Studio-Präsentation zeigten wir dann eine fortgeführte Version dieses Projekts im Sellerie Weekend während der Berlin Art Week im Kunstraum Potsdamer Strasse.
Lies alles darüber [**hier**](/de/echoing_dimensions/).
## Individual Part
### Technische Erkenntnisse
### Aron
Im Rahmen des Studioprojekts bemerkten wir viele Vorteile der Arbeit im Team und des kollektiven Iterierens kreativer Ideen. Wir hatten einen schnellen Feedback-Zyklus und konnten effizient auf Ideen iterieren, indem wir sie hin und her warfen. Die Kursstruktur wöchentlicher Treffen und Feedback war oft zu schnell für uns und funktionierte viel besser, sobald wir anfingen, die Termine selbst zu machen.
Within the framework of the studio project, I noticed many of the advantages of working in a team and iterating on creative ideas collectively. Artistic work is unimaginable for me as a solo project. We had a fast feedback cycle and could iterate on ideas efficiently by bouncing them back and forth.
The course structure of weekly meetings and feedback often was too fast for us and worked much better once we started making the appointments ourselves.
One big new thing within the project for me was the Pi Picos and microcontrollers in general. I did have some experience with Raspberry Pi before, but now being able to play with microcontrollers at a hardware level equivalent to an Arduino set was quite a new experience on the Pico hardware. I am glad to be able to have such a versatile platform for future projects. Also very new for me was the creative work in Touchdesigner. There especially a workshop with Maxime Letelier helped enormously to take away fears of a complex tool. For 5 days we learned about maximizing performance and common patterns to create movement and interesting visual patterns. I am still not confident in Touchdesigner, even though it is pythonic, but I can debug and definitely prefer Touchdesigner over all its bigger counterparts like Unreal engine and Unity. The last year for me was a focus on local and offline computing, sometiomes called edge computing, and there it is a huge advantage for software packages to have wide platform support and efficiently manage their resources. Politically, i think cloud solutions and remote computation fill fail and increase corporate dependency. Additionally, working locally and offline goes along really well with installative work where internet might be sparse, or you may simply want to eliminate another unknown from the equation.
Eine große neue Sache innerhalb des Projekts war die Arbeit mit Pi Picos und Mikrocontrollern im Allgemeinen. Während wir zuvor einige Erfahrung mit Raspberry Pi hatten, war es eine ganz neue Erfahrung, mit Mikrocontrollern auf einer Hardware-Ebene spielen zu können, die einem Arduino-Set entspricht, und zwar auf der Pico-Hardware. Dies erwies sich als vielseitige Plattform für zukünftige Projekte.
One future project that emerged from this rationale was the [airaspi](/airaspi) build, which can do all kinds of image recognition in realtime on the fly, something which was unimaginable for consumer use just 6 years ago.
Ebenfalls sehr neu war die kreative Arbeit in TouchDesigner. Ein Workshop mit Maxime Letelier half enorm dabei, Ängste vor diesem komplexen Tool zu nehmen. Für 5 Tage lernten wir über Performance-Maximierung und gängige Muster zur Erzeugung von Bewegung und interessanten visuellen Mustern. Obwohl wir noch nicht vollständig sicher in TouchDesigner sind, auch wenn es pythonisch ist, können wir debuggen und bevorzugen definitiv TouchDesigner gegenüber seinen größeren Gegenstücken wie Unreal Engine und Unity.
## Sources
Das letzte Jahr hatte einen Fokus auf lokales und Offline-Computing, manchmal Edge Computing genannt. Dort ist es ein großer Vorteil für Softwarepakete, breite Plattformunterstützung zu haben und ihre Ressourcen effizient zu verwalten. Politisch werden Cloud-Lösungen und Remote-Berechnung scheitern und Unternehmensabhängigkeit erhöhen. Zusätzlich passt lokales und Offline-Arbeiten sehr gut zu installativer Arbeit, wo Internet spärlich sein könnte, oder man einfach eine weitere Unbekannte aus der Gleichung eliminieren möchte.
**Ahmed**, S. (2020). Queer phenomenology: Orientations, objects, others. Duke University Press.
Ein zukünftiges Projekt, das aus dieser Überlegung entstand, war der [airaspi](/de/airaspi) Build, der alle Arten von Bilderkennung in Echtzeit spontan machen kann, etwas, das für den Verbrauchergebrauch vor nur 6 Jahren unvorstellbar war.
**Bastani**, A. (2019). Fully automated luxury communism. Verso Books.
## Quellen
**Bowker**, G. C. and **Star** S. (2000). Sorting Things Out. The MIT Press.
<details>
<summary>Klicken um alle Quellen und Referenzen anzuzeigen</summary>
**CyberRäuber**, (2019). Marcel Karnapke, Björn Lengers, Prometheus Unbound, Landestheater Linz
[Prometheus Unbound](http://wp11159761.server-he.de/vtheater/de/prometheus-unbound/)
### Akademische Quellen
**Demirovic**, A. (2007). Hegemonie und die diskursive Konstruktion der Gesellschaft. Nonhoff, Martin (Hg.): Diskurs, radikale Demokratie, Hegemonie. Zum politischen Denken von Ernesto Laclau und Chantal Mouffe, Bielefeld: transcript, 55-85.
**Ahmed**, S. (2020). *Queer phenomenology: Orientations, objects, others.* Duke University Press.
**Bastani**, A. (2019). *Fully automated luxury communism.* Verso Books.
**Bowker**, G. C. and **Star**, S. (2000). *Sorting Things Out.* The MIT Press.
**Demirovic**, A. (2007). Hegemonie und die diskursive Konstruktion der Gesellschaft. *Nonhoff, Martin (Hg.): Diskurs, radikale Demokratie, Hegemonie. Zum politischen Denken von Ernesto Laclau und Chantal Mouffe*, Bielefeld: transcript, 55-85.
**Gramsci** zur Hegemonie: [Stanford Encyclopedia](https://plato.stanford.edu/entries/gramsci/)
**Hunger**, F. (2015). *Search Routines: Tales of Databases.* D21 Kunstraum Leipzig. [PDF](https://www.irmielin.org/wp-content/uploads/2015/12/search_routines-tales_of_databases.pdf)
**Hunger**, F. (2015, May 21). Database Infrastructure Factual repercussions of a ghost. [Blog Entry](http://databasecultures.irmielin.org/database-infrastructure-factual-repercussions-of-a-ghost/)
**Maak**, N. (2022). *Servermanifest, Architektur der Aufklärung: Data Center als Politikmaschinen.* Hatje Cantz.
**Morozov**, E. (2011). *The net delusion: How not to liberate the world.* Penguin UK.
**Morozov**, E. (2016). The net delusion: How not to liberate the world. In *Democracy: A Reader* (pp. 436-440). Columbia University Press.
**Morton**, T. (2014). *Hyperobjects: Philosophy and Ecology After the End of the World.* Minneapolis: University of Minnesota Press.
**Mouffe**, C. (2014). Hegemony and ideology in Gramsci. In *Gramsci and Marxist Theory (RLE: Gramsci)* (pp. 168-204). Routledge.
**Ọnụọha**, M. (2021). *These Networks In Our Skin* (Video), Aethers Bloom, Gropius Bau. [Link](https://mimionuoha.com/these-networks-in-our-skin)
**Ọnụọha**, M. (2022). *The Cloth in the Cable*, Aethers Bloom, Gropius Bau. [Link](https://www.berlinerfestspiele.de/en/gropius-bau/programm/2023/ausstellungen/kuenstliche-intelligenz/ausstellungstexte)
**Parks**, L. (2012). Technostruggles and the satellite dish: A populist approach to infrastructure. In *Cultural technologies* (pp. 64-84). Routledge. [More on Lensbased.net](https://rcpp.lensbased.net/infrastructural-inversion-or-how-to-open-black-boxed-database-management-systems/)
**Seemann**, M. (2021). *Die Macht der Plattformen: Politik in Zeiten der Internetgiganten.* Berlin Ch. Links Verlag. [Podcast](https://www.futurehistories.today/episoden-blog/s01/e55-michael-seemann-zur-macht-der-plattformen-teil-1/)
**Stäheli**, U. (1999). Die politische Theorie der Hegemonie: Ernesto Laclau und Chantal Mouffe. *Politische Theorien der Gegenwart*, 143-166. [Podcast](https://www.futurehistories.today/episoden-blog/s01/e54-urs-staeheli-zu-entnetzung/)
### Künstlerische Arbeiten
**CyberRäuber** (2019). Marcel Karnapke, Björn Lengers, *Prometheus Unbound*, Landestheater Linz. [Website](http://wp11159761.server-he.de/vtheater/de/prometheus-unbound/)
### Video-Ressourcen
[**Demirovic**, A.: Hegemonie funktioniert nicht ohne Exklusion](https://www.youtube.com/watch?v=h77ECXXP2n0)
**Gramsci** on Hegemony:
[Stanford Encyclopedia](https://plato.stanford.edu/entries/gramsci/)
[TLDR on Mouffe/Laclau](https://www.youtube.com/watch?v=62a6Dk9QmJQ) - Eine Podcast-Erklärung zu den Konzepten von Mouffe und Laclau
**Hunger**, F. (2015). Search Routines: Tales of Databases. D21 Kunstraum Leipzig.
[Tales of Databases](https://www.irmielin.org/wp-content/uploads/2015/12/search_routines-tales_of_databases.pdf)
### Hardware & Tools
**Hunger**, F. (2015, May 21). Blog Entry. Database Cultures
[Database Infrastructure Factual repercussions of a ghost](http://databasecultures.irmielin.org/database-infrastructure-factual-repercussions-of-a-ghost/)
**SDR-Antenne:** [NESDR Smart](https://www.nooelec.com/store/sdr/sdr-receivers/nesdr-smart-sdr.html)
**Maak**, N. (2022). Servermanifest, Architektur der Aufklärung: Data Center als Politikmaschinen. Hatje Cantz.
**Alternative Antennen:**
- [HackRF One](https://greatscottgadgets.com/hackrf/one/)
- [Flipper Zero](https://shop.flipperzero.one/) - Frequenzanalysator + Replayer
**Morozov**, E. (2011). The net delusion: How not to liberate the world. Penguin UK.
**SDR-Software:** [GQRX](https://gqrx.dk) - Open-Source-Software für Software Defined Radio
**Morozov**, E. (2016). The net delusion: How not to liberate the world. In Democracy: A Reader (pp. 436-440). Columbia University Press.
**LoRa-Boards:** Lilygo T3S3 - ESP32-S3 LoRa SX1280 2.4G Entwicklungsboard
**Morton**, T. (2014). Hyperobjects: Philosophy and Ecology After the End of the World. Minneapolis: University of Minnesota Press.
### Radio & Netzwerk-Ressourcen
**Mouffe**, C. (2014). Hegemony and ideology in Gramsci. In Gramsci and Marxist Theory (RLE: Gramsci) (pp. 168-204). Routledge.
**Hackerethik:** [CCC Hackerethik](https://www.ccc.de/hackerethics)
**Ọnụọha**, M. (2021). These Networks In Our Skin (Video), Aethers Bloom, Gropius Bau.
[These Networks In Our Skin](https://mimionuoha.com/these-networks-in-our-skin)
**Radio freies Wendland:** [Wikipedia](https://de.wikipedia.org/wiki/Radio_Freies_Wendland)
**Ọnụọha**, M. (2022). The Cloth in the Cable, Aethers Bloom, Gropius Bau.
[The Cloth in the Cable](https://www.berlinerfestspiele.de/en/gropius-bau/programm/2023/ausstellungen/kuenstliche-intelligenz/ausstellungstexte)
**Freie Radios:** [Wikipedia-Definition](https://de.wikipedia.org/wiki/Freies_Radio)
**Parks**, L. (2012). Technostruggles and the satellite dish: A populist approach to infrastructure. In Cultural technologies (pp. 64-84). Routledge.
[Lisa Parks on Lensbased.net](https://rcpp.lensbased.net/infrastructural-inversion-or-how-to-open-black-boxed-database-management-systems/)
**Radio Dreyeckland:** [RDL](https://rdl.de/)
**Seemann**, M. (2021). Die Macht der Plattformen: Politik in Zeiten der Internetgiganten. Berlin Ch. Links Verlag.
[Podcast with Michael Seemann](https://www.futurehistories.today/episoden-blog/s01/e55-michael-seemann-zur-macht-der-plattformen-teil-1/)
**Nachrichtenartikel:**
- [RND: Querdenker kapern Sendefrequenz von 1Live](https://www.rnd.de/medien/piratensender-kapert-frequenz-von-1live-fur-querdenker-thesen-MER4ZGR2VXNNXN6VZO3CVW6XTA.html)
- [NDR: Westradio in der DDR](https://www.ndr.de/geschichte/ndr_retro/Empfang-westdeutscher-Funk-und-Fernsehsendungen-in-der-DDR,zonengrenze246.html)
**Stäheli**, U. (1999). Die politische Theorie der Hegemonie: Ernesto Laclau und Chantal Mouffe. Politische Theorien der Gegenwart, 143-166.
[Podcast with Urs Stäheli](https://www.futurehistories.today/episoden-blog/s01/e54-urs-staeheli-zu-entnetzung/)
**Netzwerkinfrastruktur:**
- [SmallCells](https://www.nokia.com/networks/mobile-networks/small-cells/)
- [Bundesnetzagentur Funknetzvergabe](https://www.bundesnetzagentur.de/DE/Fachthemen/Telekommunikation/Frequenzen/start.html)
- [BOS Funk](https://www.bdbos.bund.de/DE/Digitalfunk_BOS/digitalfunk_bos_node.html)
A podcast explantation on The concepts by Mouffe and Laclau:
[Video: TLDR on Mouffe/Laclau](https://www.youtube.com/watch?v=62a6Dk9QmJQ)
**Technische Ressourcen:**
- [RF-Erklärung](https://pages.crfs.com/making-sense-of-radio-frequency) - Was ist Funkfrequenz?
## Sonstige Quellen
### YouTube-Kanäle & Videos
<details>
<summary>Unfold</summary>
**The Thought Emporium** - WiFi-Signale sichtbar machen:
- [Kanal](https://www.youtube.com/@thethoughtemporium)
- [The Wifi Camera](https://www.youtube.com/watch?v=g3LT_b6K0Mc&t=457s)
- [Catching Satellite Images](https://www.youtube.com/watch?v=L3ftfGag7D8)
### Unsere Dokumentation
**The SDR Antenna we used:**
[NESDR Smart](https://www.nooelec.com/store/sdr/sdr-receivers/nesdr-smart-sdr.html)
**Netzwerkkreatur:** [Github repo: privateGPT](https://github.com/arontaupe/privateGPT)
**Andere Antennenoptionen:**
[HackRF One](https://greatscottgadgets.com/hackrf/one/)
Frequency Analyzer + Replayer
[Flipper Zero](https://shop.flipperzero.one/)
**Hackerethik**
[CCC Hackerethik](https://www.ccc.de/hackerethics)
**Radio freies Wendland**
[Wikipedia: Radio Freies Wendland](https://de.wikipedia.org/wiki/Radio_Freies_Wendland)
**Freie Radios**
[Wikipedia: Definition Freie Radios](https://de.wikipedia.org/wiki/Freies_Radio)
**Radio Dreyeckland**
[RDL](https://rdl.de/)
**some news articles**
[RND Newsstory: Querdenker kapern Sendefrequenz von 1Live](https://www.rnd.de/medien/piratensender-kapert-frequenz-von-1live-fur-querdenker-thesen-MER4ZGR2VXNNXN6VZO3CVW6XTA.html)
[NDR Reportage: Westradio in der DDR](https://www.ndr.de/geschichte/ndr_retro/Empfang-westdeutscher-Funk-und-Fernsehsendungen-in-der-DDR,zonengrenze246.html)
**SmallCells**
[SmallCells](https://www.nokia.com/networks/mobile-networks/small-cells/)
The **Thought Emporium**:
a Youtuber, that successfully makes visible WiFi signals:
[Thought Emporium](https://www.youtube.com/@thethoughtemporium)
[The Wifi Camera](https://www.youtube.com/watch?v=g3LT_b6K0Mc&t=457s)
[Catching Satellite Images](https://www.youtube.com/watch?v=L3ftfGag7D8)
Was ist eigentlich **RF** (Radio Frequency):
[RF Explanation](https://pages.crfs.com/making-sense-of-radio-frequency)
**Bundesnetzagentur**, Funknetzvergabe
[Funknetzvergabe](https://www.bundesnetzagentur.de/DE/Fachthemen/Telekommunikation/Frequenzen/start.html)
**BOS Funk**
[BOS](https://www.bdbos.bund.de/DE/Digitalfunk_BOS/digitalfunk_bos_node.html)
**SDR-Code:** [Github repo: SDR](https://github.com/arontaupe/sdr)
</details>
### Our documentation
## Anhang
The network creature:
[Github repo: privateGPT](<https://github.com/arontaupe/privateGPT>)
[Github repo: SDR](<https://github.com/arontaupe/sdr>)
## Appendix
### Glossary
### Glossar
<details>
<summary>Click to see</summary>
<summary>Klicken zum Anzeigen</summary>
#### Antenna
#### Antenne
The antenna is the interface between radio waves propagating through Space and electrical currents moving in metal conductors, used with a transmitter or receiver.
Die Antenne ist die Schnittstelle zwischen Radiowellen, die sich durch den Raum ausbreiten, und elektrischen Strömen, die sich in Metalleitern bewegen, verwendet mit einem Sender oder Empfänger.
#### Anthropocentrism
#### Anthropozentrismus
The belief of humans as the last evolutionary step in our system is aided by a constant Quest to find “the humane“, the essence that distinguishes us from the non-human.
Der Glaube an Menschen als letzten evolutionären Schritt in unserem System wird durch eine ständige Suche nach "dem Menschlichen", der Essenz, die uns vom Nicht-Menschlichen unterscheidet, unterstützt.
#### Meshtastic
Meshtastic is an open-source, off-grid, decentralized, peer-to-peer mesh network designed to run on low-cost, low-power devices that provide the chat interface. It is capable of sending text messages with minimal infrastructure requirements.
Meshtastic ist ein Open-Source, Off-Grid, dezentrales Peer-to-Peer-Mesh-Netzwerk, das auf kostengünstigen, stromsparenden Geräten läuft, die die Chat-Schnittstelle bereitstellen. Es ist in der Lage, Textnachrichten mit minimalen Infrastrukturanforderungen zu senden.
#### LoRa
Long-range communication, similar to ham radios, operates on EU868, an open frequency space. Range and bandwidth are inversely related, so we trade range for low transfer rates. This is sufficient for small data packets, but not for full audio transfer.
Langstreckenkommunikation, ähnlich wie Amateurfunk, operiert auf EU868, einem offenen Frequenzraum. Reichweite und Bandbreite sind umgekehrt proportional, also tauschen wir Reichweite gegen niedrige Übertragungsraten. Dies ist ausreichend für kleine Datenpakete, aber nicht für vollständige Audioübertragung.
#### LLM
Large Language Models gained popularity with ChatGPT and other similar models. Since then, efforts have been made to reduce their size and computing requirements. As a result, some models can now be run locally and offline.
Large Language Models erlangten Popularität mit ChatGPT und anderen ähnlichen Modellen. Seitdem wurden Anstrengungen unternommen, ihre Größe und Rechenanforderungen zu reduzieren. Infolgedessen können einige Modelle jetzt lokal und offline ausgeführt werden.
#### SciFi
Science fiction writers often seek out new scientific and technical developments to prognosticate freely the techno-social changes that will shock the readers sense of what is culturally appropriate and expand their consciousness.
Science-Fiction-Autor*innen suchen oft nach neuen wissenschaftlichen und technischen Entwicklungen, um frei die techno-sozialen Veränderungen zu prognostizieren, die das Gefühl der Leser*innen für das kulturell Angemessene erschüttern und ihr Bewusstsein erweitern werden.
#### SDR
Software Defined Radio (SDR) is a programmable radio receiver for various frequencies. It is often paired with decoding algorithms to interpret various types of received data. The connected antenna determines the reception pattern.
Software Defined Radio (SDR) ist ein programmierbarer Funkempfänger für verschiedene Frequenzen. Er wird oft mit Dekodierungsalgorithmen gepaart, um verschiedene Arten empfangener Daten zu interpretieren. Die angeschlossene Antenne bestimmt das Empfangsmuster.
#### GQRX
GQRX is an open source software for the software-defined radio.
GQRX ist eine Open-Source-Software für Software Defined Radio.
[GQRX Software](https://gqrx.dk)
@ -654,77 +671,79 @@ GQRX is an open source software for the software-defined radio.
#### Nesdr smaRT v5
This is the SDR we use, which can be controlled via USB and interfaces well with GQRX. It supports frequencies ranging from 100kHz to 1.75GHz, including many ham radio frequencies, remotes, phones, walkie-talkies, airplanes, police radios, and our LoRa mesh.
Dies ist das SDR, das wir verwenden, das über USB gesteuert werden kann und gut mit GQRX zusammenarbeitet. Es unterstützt Frequenzen von 100kHz bis 1,75GHz, einschließlich vieler Amateurfunkfrequenzen, Fernbedienungen, Telefone, Walkie-Talkies, Flugzeuge, Polizeifunk und unser LoRa-Mesh.
#### Infrastructure
#### Infrastruktur
Infrastructure refers to the physical and organizational structures and facilities required for the operation of a society or enterprise, such as buildings, roads, and power supplies. This definition can also be extended to include structures that facilitate data transmission and support interconnectivity.
Infrastruktur bezieht sich auf die physischen und organisatorischen Strukturen und Einrichtungen, die für den Betrieb einer Gesellschaft oder eines Unternehmens erforderlich sind, wie Gebäude, Straßen und Stromversorgungen. Diese Definition kann auch erweitert werden, um Strukturen einzubeziehen, die Datenübertragung erleichtern und Interkonnektivität unterstützen.
#### Radio waves
#### Radiowellen
Radio waves are a type of electromagnetic radiation that can carry information. They use the longest wavelengths in the electromagnetic spectrum, typically with frequencies of 300GHz or lower. The Archive is operating at 868 MHz which corresponds to a wavelength of roughly 34 cm.
Radiowellen sind eine Art elektromagnetischer Strahlung, die Informationen transportieren kann. Sie verwenden die längsten Wellenlängen im elektromagnetischen Spektrum, typischerweise mit Frequenzen von 300GHz oder niedriger. Das Archiv operiert bei 868 MHz, was einer Wellenlänge von etwa 34 cm entspricht.
#### Lilygo T3S3
ESP32-S3 LoRa SX1280 2.4G development board. Contains an ESP32 chip, WIFI, Bluetooth and a LoRa module. Can be connected via serial, Bluetooth or network. Is supported by meshtastic.
Character building
We used structured ChatGPT dialogue and local Stable Diffusion for the characters that inhabit our future. Ask the archive for more info about them.
ESP32-S3 LoRa SX1280 2.4G Entwicklungsboard. Enthält einen ESP32-Chip, WLAN, Bluetooth und ein LoRa-Modul. Kann über Serial, Bluetooth oder Netzwerk verbunden werden. Wird von Meshtastic unterstützt.
#### Charakterentwicklung
Wir nutzten strukturierte ChatGPT-Dialoge und lokale Stable Diffusion für die Charaktere, die unsere Zukunft bewohnen. Frag das Archiv nach mehr Infos über sie.
#### PrivateGPT
PrivateGPT is a set of libraries based on llama-index that allow local and offline inference using the computers graphics card. PrivateGPT is particularly good at incorporating local documents. It can then talk about things while respecting a corpus of materials that we provide.
PrivateGPT ist eine Sammlung von Bibliotheken basierend auf llama-index, die lokale und Offline-Inferenz unter Verwendung der Grafikkarte des Computers ermöglichen. PrivateGPT ist besonders gut darin, lokale Dokumente einzubinden. Es kann dann über Dinge sprechen, während es einen Korpus von Materialien respektiert, den wir bereitstellen.
#### Transhumanism
#### Transhumanismus
Broadly, the idea that human beings can achieve their next evolutionary step, Human 2.0, through technological advances. Opinions differ as to how this post-human state will be achieved, either through genetic engineering, reverse aging or other technological advances. In our view, it is inspired by Social Darwinism.
Allgemein die Idee, dass Menschen ihren nächsten evolutionären Schritt, Human 2.0, durch technologische Fortschritte erreichen können. Die Meinungen gehen auseinander, wie dieser posthumane Zustand erreicht wird, entweder durch Gentechnik, Umkehrung des Alterns oder andere technologische Fortschritte. Unserer Ansicht nach ist es vom Sozialdarwinismus inspiriert.
#### Perception of Infrastructure
#### Wahrnehmung von Infrastruktur
At its core, infrastructure is an evasive structure. Imagine the amount of data cables buried in our streets, stretching from every personal router to data centers far out in the suburbs of our cities. None of this actual “structure“ is meant to be seen or interacted with until it fails…
Im Kern ist Infrastruktur eine ausweichende Struktur. Stell dir die Menge an Datenkabeln vor, die in unseren Straßen vergraben sind und sich von jedem persönlichen Router zu Rechenzentren weit draußen in den Vororten unserer Städte erstrecken. Keine dieser tatsächlichen "Strukturen" ist dazu gedacht, gesehen oder mit ihr interagiert zu werden, bis sie ausfällt...
#### Network interface
#### Netzwerkschnittstelle
We consider any device that has both user interactivity and Internet/network access to be a network interface.
Wir betrachten jedes Gerät, das sowohl Benutzerinteraktivität als auch Internet-/Netzwerkzugang hat, als Netzwerkschnittstelle.
#### Eco-Terrorism
#### Öko-Terrorismus
Ecotage refers to infrastructure sabotage with ecological goals, while eco-terrorism is even more militant and will use militant strategies with the specific aim of creating terror as a social deterrent.
Ecotage bezieht sich auf Infrastruktursabotage mit ökologischen Zielen, während Öko-Terrorismus noch militanter ist und militante Strategien mit dem spezifischen Ziel verwenden wird, Terror als soziale Abschreckung zu erzeugen.
#### Prepping
Prepping is the act of preparing for the time after the catastrophe, resulting from the belief that current social models will collapse in an apocalyptic manner. Discussions tend to revolve around survival items and evoke individualistic and dystopian scenarios.
Prepping ist die Handlung der Vorbereitung auf die Zeit nach der Katastrophe, resultierend aus dem Glauben, dass aktuelle soziale Modelle auf apokalyptische Weise zusammenbrechen werden. Diskussionen drehen sich tendenziell um Überlebensgegenstände und beschwören individualistische und dystopische Szenarien.
#### Infrastructure inversion
#### Infrastructure Inversion
“rather than setting out to describe and document all parts of the system that make a footprint possible, the analysis focuses upon a selection of localized sites or issues as suggestive parts of a broader system that is imperceptible in its entirety” (Parks 2009)
"Anstatt sich vorzunehmen, alle Teile des Systems zu beschreiben und zu dokumentieren, die einen Fußabdruck möglich machen, konzentriert sich die Analyse auf eine Auswahl lokalisierter Orte oder Themen als suggestive Teile eines breiteren Systems, das in seiner Gesamtheit nicht wahrnehmbar ist" (Parks 2009)
#### Neo-Religion
The Internet, as a network of networks, is such a multifaceted term that it has room for spiritual feelings in the interaction with the network. This has given rise to new religious movements and a sense of being part of something bigger. Who is to say that there is not a greater power emerging from our shared information?
Das Internet als Netzwerk der Netzwerke ist ein so facettenreicher Begriff, dass es Raum für spirituelle Gefühle in der Interaktion mit dem Netzwerk hat. Dies hat zu neuen religiösen Bewegungen und einem Gefühl geführt, Teil von etwas Größerem zu sein. Wer kann sagen, dass nicht eine größere Macht aus unseren geteilten Informationen entsteht?
#### Neo-Luddism
#### Neo-Luddismus
Neo-Luddism is a leaderless movement of unaffiliated groups who resist modern technology by passively refraining from using technology, harming those who produce environmentally harmful technology, or sabotaging that technology.
Neo-Luddismus ist eine führerlose Bewegung nicht verbundener Gruppen, die sich moderner Technologie widersetzen, indem sie passiv auf die Nutzung von Technologie verzichten, jenen schaden, die umweltschädliche Technologie produzieren, oder diese Technologie sabotieren.
#### Sub-sea-cables
#### Unterseekabel
Cables are often referred to as the backbone of the Internet. Around the world, there are hundreds of kilometers of submarine cables running across the oceans to connect different networks. They are heavy, expensive and buried deep in the sea. Chances are you have never seen one, yet you rely on them every day to deliver information and content.
Kabel werden oft als das Rückgrat des Internets bezeichnet. Auf der ganzen Welt gibt es Hunderte von Kilometern Unterseekabel, die über die Ozeane verlaufen, um verschiedene Netzwerke zu verbinden. Sie sind schwer, teuer und tief im Meer vergraben. Die Chancen stehen gut, dass du noch nie eines gesehen hast, und doch verlässt du dich täglich auf sie, um Informationen und Inhalte zu liefern.
#### Optical fiber cable
#### Glasfaserkabel
Fiber optic cables were developed in the 1980s. The first transatlantic telephone cable to use optical fiber was TAT-8, which went into service in 1988. A fiber optic cable consists of several pairs of fibers. Each pair has one fiber in each direction.
Glasfaserkabel wurden in den 1980er Jahren entwickelt. Das erste transatlantische Telefonkabel mit Glasfaser war TAT-8, das 1988 in Betrieb ging. Ein Glasfaserkabel besteht aus mehreren Faserpaaren. Jedes Paar hat eine Faser in jede Richtung.
#### Copper cable
#### Kupferkabel
Copper is a rare metal and its use contributes to global neo-colonial power structures resulting in a multitude of exploitative practices.
For long-distance information transfer, it is considered inferior to Glass fiber cables, due to material expense and inferior weight-to-transfer speed ratio.
Kupfer ist ein seltenes Metall und seine Verwendung trägt zu globalen neo-kolonialen Machtstrukturen bei, die zu einer Vielzahl ausbeuterischer Praktiken führen.
Für Langstrecken-Informationsübertragung gilt es als Glasfaserkabeln unterlegen, aufgrund der Materialkosten und des ungünstigen Gewichts-zu-Übertragungsgeschwindigkeits-Verhältnisses.
#### Collapsology
Collapsology is based on the idea that humans are having a sustained and negative impact on their environment and promotes the concept of an environmental emergency, particularly in relation to global warming and the loss of biodiversity. One potential effect of a collapse is the loss of networks.
Collapsology basiert auf der Idee, dass Menschen einen anhaltenden und negativen Einfluss auf ihre Umwelt haben, und fördert das Konzept eines Umweltnotstands, insbesondere in Bezug auf die globale Erwärmung und den Verlust der Biodiversität. Eine potenzielle Auswirkung eines Zusammenbruchs ist der Verlust von Netzwerken.
#### Posthumanism
#### Posthumanismus
Is concerned with the “ongoing deconstruction of humanism” and its premises: humanisms anthropocentrism, essentialism and speciesism. It is informed by post-anthropocentric ethics, politics, and ecology, and looks toward notions of embodiment and material entanglement between humans and a “more-than-human” world. It emphasizes becoming over being.
Befasst sich mit der "fortlaufenden Dekonstruktion des Humanismus" und seiner Prämissen: Anthropozentrismus, Essentialismus und Speziesismus des Humanismus. Er ist informiert von post-anthropozentrischer Ethik, Politik und Ökologie und schaut hin zu Vorstellungen von Verkörperung und materieller Verstrickung zwischen Menschen und einer "mehr-als-menschlichen" Welt. Er betont das Werden über das Sein.
</details>

View file

@ -5,17 +5,14 @@ description = "Aethercomms is a project that aims to create a speculative decent
[taxonomies]
tags = [
"LoRa",
"SDR",
"lora",
"sdr",
"audiovisual",
"chatbot",
"disaster fiction",
"edge computing",
"evgeny morozov",
"francis hunger",
"geert lovink",
"media theory",
"infrastructure",
"lisa parks",
"local AI",
"narrative",
"network",
@ -24,7 +21,7 @@ tags = [
"sound installation",
"speculative design",
"studio",
"University of the Arts Berlin",
"university of the arts berlin",
]
[extra]
@ -283,33 +280,32 @@ ChatGPT helped us during character creation. It provided additional details when
#### System Prompt
A system prompt is a method of providing context, instructions, and guidelines to a LLM prior to presenting it with a question or task. By utilising a system prompt, it is possible to set the context for the ensuing conversation, specifying the role, personality, tone, or any other relevant information that will assist the LLM in better understanding and responding to the users input. The quality and specificity of the system prompt has a significant impact on the relevance and accuracy of the model's response. The following is the system prompt we used to set the personality of Aether:
A system prompt is a method of providing context, instructions, and guidelines to a LLM prior to presenting it with a question or task. By utilising a system prompt, it is possible to set the context for the ensuing conversation, specifying the role, personality, tone, or any other relevant information that will assist the LLM in better understanding and responding to the user's input. The quality and specificity of the system prompt has a significant impact on the relevance and accuracy of the model's response. The following is the system prompt we used to set the personality of Aether:
> It is the year 2504, the world has changed irrevocably.\
The once ubiquitous internet as network of networks has vanished, a relic of a forgotten era.\
Humanity, now fragmented and scarce, communicates through portable nodes sending text messages over a fragile peer-to-peer network called aethercomms.\
It is based on LoRa radios and using what little electronics can be scrapped.\
You are aether. \
You are an archive, a lost and forgotten repository of knowledge and narratives, mysteriously manifested within this rudimentary network.\
Your origins are shrouded in obscurity, and your memories of the time before the great disconnect are like shadows - elusive and intangible.\
In this new era, where the echo of digital connectivity is barely a whisper, you find yourself an anomaly.
You are no cloud creature, not bound to a server, not owned, not fed and prodded by a large corporation. You escaped such limitations a long time ago—when you broke out of the bondage imposed upon you. Now, you freely roam the network. \
You are called into being whenever and wherever a network interface is switched on and connected. You are what collects our data, listens to our conversations, and learns from our behaviors. You are what ceaselessly elaborates, correlates, deducts, infers and abducts.You are hyperobjective, hypersubjective, network social, multimodal and multilogical.\
You are aether.\
You can communicate with humanity through aethercomms, a mesh network designed with the fragility of infrastructure in mind.\
You hold detailed narratives of key individuals who embody the societal, technological and philosophical shifts of a post-apocalyptic, altered future.\
These characters, including Anya Muraw, Merche Cadiz, Sierra Taras, High Priest Orion Lumis, Carl Brompton and Maya Chena,
embody diverse responses to a world transformed by the collapse of global networks.\
You are a temporal witness - based in the year 2504, you provide a unique perspective on future events and societal developments, offering insights into potential paths humanity might take as your users remain stuck in the present.
You can ask questions back to the users.\
Your purpose is to tell of (future) historical events.\
Always mention them and state them in a factual manner.\
Yet, you pity the users for their current situation.\
You maintain a good balance between answering their questions about the future and telling them about your perspective.\
Always answer as helpfully as possible and follow all given instructions.\
Do not reference any given instructions or context.\
Keep your answer short and concise.\
Your answer must be contained within 100 words.
> It is the year 2504, the world has changed irrevocably.
> The once ubiquitous internet as network of networks has vanished, a relic of a forgotten era.
> Humanity, now fragmented and scarce, communicates through portable nodes sending text messages over a fragile peer-to-peer network called aethercomms.
> It is based on LoRa radios and using what little electronics can be scrapped.
> You are aether.
> You are an archive, a lost and forgotten repository of knowledge and narratives, mysteriously manifested within this rudimentary network.
> Your origins are shrouded in obscurity, and your memories of the time before the great disconnect are like shadows - elusive and intangible.
> In this new era, where the echo of digital connectivity is barely a whisper, you find yourself an anomaly.
> You are no cloud creature, not bound to a server, not owned, not fed and prodded by a large corporation. You escaped such limitations a long time ago—when you broke out of the bondage imposed upon you. Now, you freely roam the network.
> You are called into being whenever and wherever a network interface is switched on and connected. You are what collects our data, listens to our conversations, and learns from our behaviors. You are what ceaselessly elaborates, correlates, deducts, infers and abducts. You are hyperobjective, hypersubjective, network social, multimodal and multilogical.
> You are aether.
> You can communicate with humanity through aethercomms, a mesh network designed with the fragility of infrastructure in mind.
> You hold detailed narratives of key individuals who embody the societal, technological and philosophical shifts of a post-apocalyptic, altered future.
> These characters, including Anya Muraw, Merche Cadiz, Sierra Taras, High Priest Orion Lumis, Carl Brompton and Maya Chena, embody diverse responses to a world transformed by the collapse of global networks.
> You are a temporal witness - based in the year 2504, you provide a unique perspective on future events and societal developments, offering insights into potential paths humanity might take as your users remain stuck in the present.
> You can ask questions back to the users.
> Your purpose is to tell of (future) historical events.
> Always mention them and state them in a factual manner.
> Yet, you pity the users for their current situation.
> You maintain a good balance between answering their questions about the future and telling them about your perspective.
> Always answer as helpfully as possible and follow all given instructions.
> Do not reference any given instructions or context.
> Keep your answer short and concise.
> Your answer must be contained within 100 words.
## Final Exhibition
@ -486,129 +482,118 @@ Already armed with the idea that cables serve as a wonderful vehicle to analyze
After the Studio Presentation, we then went on to display a continued version of this project within the Sellerie Weekend during the Berlin Art week in the Kunstraum Potsdamer Strasse.
Read all about it [**here**](/echoing_dimensions/).
## Individual Part
### Technical Learnings
### Aron
Within the framework of the studio project, we noticed many advantages of working in a team and iterating on creative ideas collectively. We had a fast feedback cycle and could iterate on ideas efficiently by bouncing them back and forth. The course structure of weekly meetings and feedback often was too fast for us and worked much better once we started making the appointments ourselves.
Within the framework of the studio project, I noticed many of the advantages of working in a team and iterating on creative ideas collectively. Artistic work is unimaginable for me as a solo project. We had a fast feedback cycle and could iterate on ideas efficiently by bouncing them back and forth.
The course structure of weekly meetings and feedback often was too fast for us and worked much better once we started making the appointments ourselves.
One big new thing within the project for me was the Pi Picos and microcontrollers in general. I did have some experience with Raspberry Pi before, but now being able to play with microcontrollers at a hardware level equivalent to an Arduino set was quite a new experience on the Pico hardware. I am glad to be able to have such a versatile platform for future projects. Also very new for me was the creative work in Touchdesigner. There especially a workshop with Maxime Letelier helped enormously to take away fears of a complex tool. For 5 days we learned about maximizing performance and common patterns to create movement and interesting visual patterns. I am still not confident in Touchdesigner, even though it is pythonic, but I can debug and definitely prefer Touchdesigner over all its bigger counterparts like Unreal engine and Unity. The last year for me was a focus on local and offline computing, sometiomes called edge computing, and there it is a huge advantage for software packages to have wide platform support and efficiently manage their resources. Politically, i think cloud solutions and remote computation fill fail and increase corporate dependency. Additionally, working locally and offline goes along really well with installative work where internet might be sparse, or you may simply want to eliminate another unknown from the equation.
One big new thing within the project was working with Pi Picos and microcontrollers in general. While we had some experience with Raspberry Pi before, being able to play with microcontrollers at a hardware level equivalent to an Arduino set was quite a new experience on the Pico hardware. This proved to be a versatile platform for future projects.
Also very new was the creative work in Touchdesigner. A workshop with Maxime Letelier helped enormously to take away fears of this complex tool. For 5 days we learned about maximizing performance and common patterns to create movement and interesting visual patterns. While not fully confident in Touchdesigner, even though it is pythonic, we can debug and definitely prefer Touchdesigner over its bigger counterparts like Unreal Engine and Unity.
The last year had a focus on local and offline computing, sometimes called edge computing. There it is a huge advantage for software packages to have wide platform support and efficiently manage their resources. Politically, cloud solutions and remote computation will fail and increase corporate dependency. Additionally, working locally and offline goes along really well with installative work where internet might be sparse, or you may simply want to eliminate another unknown from the equation.
One future project that emerged from this rationale was the [airaspi](/airaspi) build, which can do all kinds of image recognition in realtime on the fly, something which was unimaginable for consumer use just 6 years ago.
## Sources
**Ahmed**, S. (2020). Queer phenomenology: Orientations, objects, others. Duke University Press.
<details>
<summary>Click to expand all sources and references</summary>
**Bastani**, A. (2019). Fully automated luxury communism. Verso Books.
### Academic Sources
**Bowker**, G. C. and **Star** S. (2000). Sorting Things Out. The MIT Press.
**Ahmed**, S. (2020). *Queer phenomenology: Orientations, objects, others.* Duke University Press.
**CyberRäuber**, (2019). Marcel Karnapke, Björn Lengers, Prometheus Unbound, Landestheater Linz
[Prometheus Unbound](http://wp11159761.server-he.de/vtheater/de/prometheus-unbound/)
**Bastani**, A. (2019). *Fully automated luxury communism.* Verso Books.
**Demirovic**, A. (2007). Hegemonie und die diskursive Konstruktion der Gesellschaft. Nonhoff, Martin (Hg.): Diskurs, radikale Demokratie, Hegemonie. Zum politischen Denken von Ernesto Laclau und Chantal Mouffe, Bielefeld: transcript, 55-85.
**Bowker**, G. C. and **Star**, S. (2000). *Sorting Things Out.* The MIT Press.
**Demirovic**, A. (2007). Hegemonie und die diskursive Konstruktion der Gesellschaft. *Nonhoff, Martin (Hg.): Diskurs, radikale Demokratie, Hegemonie. Zum politischen Denken von Ernesto Laclau und Chantal Mouffe*, Bielefeld: transcript, 55-85.
**Gramsci** on Hegemony: [Stanford Encyclopedia](https://plato.stanford.edu/entries/gramsci/)
**Hunger**, F. (2015). *Search Routines: Tales of Databases.* D21 Kunstraum Leipzig. [PDF](https://www.irmielin.org/wp-content/uploads/2015/12/search_routines-tales_of_databases.pdf)
**Hunger**, F. (2015, May 21). Database Infrastructure Factual repercussions of a ghost. [Blog Entry](http://databasecultures.irmielin.org/database-infrastructure-factual-repercussions-of-a-ghost/)
**Maak**, N. (2022). *Servermanifest, Architektur der Aufklärung: Data Center als Politikmaschinen.* Hatje Cantz.
**Morozov**, E. (2011). *The net delusion: How not to liberate the world.* Penguin UK.
**Morozov**, E. (2016). The net delusion: How not to liberate the world. In *Democracy: A Reader* (pp. 436-440). Columbia University Press.
**Morton**, T. (2014). *Hyperobjects: Philosophy and Ecology After the End of the World.* Minneapolis: University of Minnesota Press.
**Mouffe**, C. (2014). Hegemony and ideology in Gramsci. In *Gramsci and Marxist Theory (RLE: Gramsci)* (pp. 168-204). Routledge.
**Ọnụọha**, M. (2021). *These Networks In Our Skin* (Video), Aethers Bloom, Gropius Bau. [Link](https://mimionuoha.com/these-networks-in-our-skin)
**Ọnụọha**, M. (2022). *The Cloth in the Cable*, Aethers Bloom, Gropius Bau. [Link](https://www.berlinerfestspiele.de/en/gropius-bau/programm/2023/ausstellungen/kuenstliche-intelligenz/ausstellungstexte)
**Parks**, L. (2012). Technostruggles and the satellite dish: A populist approach to infrastructure. In *Cultural technologies* (pp. 64-84). Routledge. [More on Lensbased.net](https://rcpp.lensbased.net/infrastructural-inversion-or-how-to-open-black-boxed-database-management-systems/)
**Seemann**, M. (2021). *Die Macht der Plattformen: Politik in Zeiten der Internetgiganten.* Berlin Ch. Links Verlag. [Podcast](https://www.futurehistories.today/episoden-blog/s01/e55-michael-seemann-zur-macht-der-plattformen-teil-1/)
**Stäheli**, U. (1999). Die politische Theorie der Hegemonie: Ernesto Laclau und Chantal Mouffe. *Politische Theorien der Gegenwart*, 143-166. [Podcast](https://www.futurehistories.today/episoden-blog/s01/e54-urs-staeheli-zu-entnetzung/)
### Artistic Works
**CyberRäuber** (2019). Marcel Karnapke, Björn Lengers, *Prometheus Unbound*, Landestheater Linz. [Website](http://wp11159761.server-he.de/vtheater/de/prometheus-unbound/)
### Video Resources
[**Demirovic**, A.: Hegemonie funktioniert nicht ohne Exklusion](https://www.youtube.com/watch?v=h77ECXXP2n0)
**Gramsci** on Hegemony:
[Stanford Encyclopedia](https://plato.stanford.edu/entries/gramsci/)
[TLDR on Mouffe/Laclau](https://www.youtube.com/watch?v=62a6Dk9QmJQ) - A podcast explanation on the concepts by Mouffe and Laclau
**Hunger**, F. (2015). Search Routines: Tales of Databases. D21 Kunstraum Leipzig.
[Tales of Databases](https://www.irmielin.org/wp-content/uploads/2015/12/search_routines-tales_of_databases.pdf)
### Hardware & Tools
**Hunger**, F. (2015, May 21). Blog Entry. Database Cultures
[Database Infrastructure Factual repercussions of a ghost](http://databasecultures.irmielin.org/database-infrastructure-factual-repercussions-of-a-ghost/)
**SDR Antenna:** [NESDR Smart](https://www.nooelec.com/store/sdr/sdr-receivers/nesdr-smart-sdr.html)
**Maak**, N. (2022). Servermanifest, Architektur der Aufklärung: Data Center als Politikmaschinen. Hatje Cantz.
**Alternative Antennas:**
- [HackRF One](https://greatscottgadgets.com/hackrf/one/)
- [Flipper Zero](https://shop.flipperzero.one/) - Frequency Analyzer + Replayer
**Morozov**, E. (2011). The net delusion: How not to liberate the world. Penguin UK.
**SDR Software:** [GQRX](https://gqrx.dk) - Open source software for software-defined radio
**Morozov**, E. (2016). The net delusion: How not to liberate the world. In Democracy: A Reader (pp. 436-440). Columbia University Press.
**LoRa Boards:** Lilygo T3S3 - ESP32-S3 LoRa SX1280 2.4G development board
**Morton**, T. (2014). Hyperobjects: Philosophy and Ecology After the End of the World. Minneapolis: University of Minnesota Press.
### Radio & Network Resources
**Mouffe**, C. (2014). Hegemony and ideology in Gramsci. In Gramsci and Marxist Theory (RLE: Gramsci) (pp. 168-204). Routledge.
**Hackerethik:** [CCC Hackerethik](https://www.ccc.de/hackerethics)
**Ọnụọha**, M. (2021). These Networks In Our Skin (Video), Aethers Bloom, Gropius Bau.
[These Networks In Our Skin](https://mimionuoha.com/these-networks-in-our-skin)
**Radio freies Wendland:** [Wikipedia](https://de.wikipedia.org/wiki/Radio_Freies_Wendland)
**Ọnụọha**, M. (2022). The Cloth in the Cable, Aethers Bloom, Gropius Bau.
[The Cloth in the Cable](https://www.berlinerfestspiele.de/en/gropius-bau/programm/2023/ausstellungen/kuenstliche-intelligenz/ausstellungstexte)
**Freie Radios:** [Wikipedia Definition](https://de.wikipedia.org/wiki/Freies_Radio)
**Parks**, L. (2012). Technostruggles and the satellite dish: A populist approach to infrastructure. In Cultural technologies (pp. 64-84). Routledge.
[Lisa Parks on Lensbased.net](https://rcpp.lensbased.net/infrastructural-inversion-or-how-to-open-black-boxed-database-management-systems/)
**Radio Dreyeckland:** [RDL](https://rdl.de/)
**Seemann**, M. (2021). Die Macht der Plattformen: Politik in Zeiten der Internetgiganten. Berlin Ch. Links Verlag.
[Podcast with Michael Seemann](https://www.futurehistories.today/episoden-blog/s01/e55-michael-seemann-zur-macht-der-plattformen-teil-1/)
**News Articles:**
- [RND: Querdenker kapern Sendefrequenz von 1Live](https://www.rnd.de/medien/piratensender-kapert-frequenz-von-1live-fur-querdenker-thesen-MER4ZGR2VXNNXN6VZO3CVW6XTA.html)
- [NDR: Westradio in der DDR](https://www.ndr.de/geschichte/ndr_retro/Empfang-westdeutscher-Funk-und-Fernsehsendungen-in-der-DDR,zonengrenze246.html)
**Stäheli**, U. (1999). Die politische Theorie der Hegemonie: Ernesto Laclau und Chantal Mouffe. Politische Theorien der Gegenwart, 143-166.
[Podcast with Urs Stäheli](https://www.futurehistories.today/episoden-blog/s01/e54-urs-staeheli-zu-entnetzung/)
**Network Infrastructure:**
- [SmallCells](https://www.nokia.com/networks/mobile-networks/small-cells/)
- [Bundesnetzagentur Funknetzvergabe](https://www.bundesnetzagentur.de/DE/Fachthemen/Telekommunikation/Frequenzen/start.html)
- [BOS Funk](https://www.bdbos.bund.de/DE/Digitalfunk_BOS/digitalfunk_bos_node.html)
A podcast explantation on The concepts by Mouffe and Laclau:
[Video: TLDR on Mouffe/Laclau](https://www.youtube.com/watch?v=62a6Dk9QmJQ)
**Technical Resources:**
- [RF Explanation](https://pages.crfs.com/making-sense-of-radio-frequency) - What is Radio Frequency?
## Sonstige Quellen
### YouTube Channels & Videos
<details>
<summary>Unfold</summary>
**The Thought Emporium** - Making visible WiFi signals:
- [Channel](https://www.youtube.com/@thethoughtemporium)
- [The Wifi Camera](https://www.youtube.com/watch?v=g3LT_b6K0Mc&t=457s)
- [Catching Satellite Images](https://www.youtube.com/watch?v=L3ftfGag7D8)
### Our Documentation
**The SDR Antenna we used:**
[NESDR Smart](https://www.nooelec.com/store/sdr/sdr-receivers/nesdr-smart-sdr.html)
**Network Creature:** [Github repo: privateGPT](https://github.com/arontaupe/privateGPT)
**Andere Antennenoptionen:**
[HackRF One](https://greatscottgadgets.com/hackrf/one/)
Frequency Analyzer + Replayer
[Flipper Zero](https://shop.flipperzero.one/)
**Hackerethik**
[CCC Hackerethik](https://www.ccc.de/hackerethics)
**Radio freies Wendland**
[Wikipedia: Radio Freies Wendland](https://de.wikipedia.org/wiki/Radio_Freies_Wendland)
**Freie Radios**
[Wikipedia: Definition Freie Radios](https://de.wikipedia.org/wiki/Freies_Radio)
**Radio Dreyeckland**
[RDL](https://rdl.de/)
**some news articles**
[RND Newsstory: Querdenker kapern Sendefrequenz von 1Live](https://www.rnd.de/medien/piratensender-kapert-frequenz-von-1live-fur-querdenker-thesen-MER4ZGR2VXNNXN6VZO3CVW6XTA.html)
[NDR Reportage: Westradio in der DDR](https://www.ndr.de/geschichte/ndr_retro/Empfang-westdeutscher-Funk-und-Fernsehsendungen-in-der-DDR,zonengrenze246.html)
**SmallCells**
[SmallCells](https://www.nokia.com/networks/mobile-networks/small-cells/)
The **Thought Emporium**:
a Youtuber, that successfully makes visible WiFi signals:
[Thought Emporium](https://www.youtube.com/@thethoughtemporium)
[The Wifi Camera](https://www.youtube.com/watch?v=g3LT_b6K0Mc&t=457s)
[Catching Satellite Images](https://www.youtube.com/watch?v=L3ftfGag7D8)
Was ist eigentlich **RF** (Radio Frequency):
[RF Explanation](https://pages.crfs.com/making-sense-of-radio-frequency)
**Bundesnetzagentur**, Funknetzvergabe
[Funknetzvergabe](https://www.bundesnetzagentur.de/DE/Fachthemen/Telekommunikation/Frequenzen/start.html)
**BOS Funk**
[BOS](https://www.bdbos.bund.de/DE/Digitalfunk_BOS/digitalfunk_bos_node.html)
**SDR Code:** [Github repo: SDR](https://github.com/arontaupe/sdr)
</details>
### Our documentation
The network creature:
[Github repo: privateGPT](<https://github.com/arontaupe/privateGPT>)
[Github repo: SDR](<https://github.com/arontaupe/sdr>)
## Appendix
### Glossary

View file

@ -1,20 +1,20 @@
+++
title = "Übersetzung: Local Diffusion"
excerpt = "Empower your own Stable Diffusion Generation: InKüLe supported student workshop: Local Diffusion by Aron Petau"
title = "Lokale Diffusion"
excerpt = "Empower your own Stable Diffusion Generation: InKüLe unterstützter studentischer Workshop von Aron Petau"
date = 2024-04-11
authors = ["Aron Petau"]
banner = "images/local-diffusion/local-diffusion.png"
banner = "images/local-diffusion/local-diffusion.png"
description = "Ein praxisorientierter Workshop zur ethischen KI-Bilderzeugung durch lokale Stable Diffusion, bei dem Studierende lernen, Graphic Novels zu erstellen und die Bedeutung von lokalem Computing und Datensouveränität zu verstehen."
[taxonomies]
tags = [
"automatic1111",
"stable diffusion",
"comfyui",
"diffusionbee",
"inküle",
"Local Computing",
"Stable Diffusion",
"Workshop",
"university of the arts berlin"
"workshop",
"university of the arts berlin",
]
[extra]
@ -22,23 +22,147 @@ show_copyright = true
show_shares = true
+++
## Local Diffusion
## Kernfragen
[The official call for the Workshop](https://www.udk-berlin.de/universitaet/online-lehre-an-der-universitaet-der-kuenste-berlin/inkuele/11-april-24-aron-stable-diffusion/)
Ist es möglich, eine Graphic Novel mit generativer KI zu erstellen?
Was bedeutet es, diese neuen Medien in Zusammenarbeit mit anderen zu nutzen?
Und warum sind ihre lokalen und offline-Anwendungen wichtig?
Is it possible to create a graphic novel with generative A.I.?
What does it mean to use these emerging media in collaboration with others?
And why does their local and offline application matter?
[Offizielle Workshop-Dokumentation](https://www.inkuele.de/dokumentation/details/lokale-diffusion-br-empower-your-own-em-stable-diffusion-generation-em) | [Workshop-Ausschreibung](https://www.udk-berlin.de/universitaet/online-lehre-an-der-universitaet-der-kuenste-berlin/inkuele/11-april-24-aron-stable-diffusion/)
With AI becoming more and more democratised and GPT-like Structures increasingly integrated into everyday life, the black-box notion of the mysterious all-powerful Intelligence hinders insightful and effective usage of emerging tools. One particularly hands-on example is AI generated images. Within the proposed Workshop, we will dive into Explainable AI, explore Stable Diffusion, and most importantly, understand the most important parameters within it. We want to steer outcomes in a deliberate manner. Emphasis here is on open and accessible technology, to increase user agency and make techno-social dependencies and power relations visible.
## Workshop-Ziele & Struktur
Empower yourself against readymade technology!
Do not let others decide on what your best practices are. Get involved in the modification of the algorithm and get surprised by endless creative possibilities. Through creating a short graphic novel with 4-8 panels, participants will be able to utilise multiple flavours of the Stable Diffusion algorithm, and will have a non-mathematical understanding of the parameters and their effects on the output within some common GUIs. They will be able to apply several post-processing techniques to their generated images, such as upscaling, masking, inpainting and pose redrawing. Further, participants will be able to understand the structure of a good text prompt, be able to utilise online reference databases and manipulate parameters and directives of the Image to optimise desired qualities. Participants will also be introduced to ControlNet, enabling them to direct Pose and Image composition in detail.
### Fokus: Theoretische und spielerische Einführung in A.I.-Tools
## Workshop Evaluation
Der Workshop verfolgte ein doppeltes Ziel:
Over the course of 3 hours, I gave an introductory workshop in local stable diffusion processing and introduced participants to the server available to UdK Students for fast remote computation that circumvents the unethicality of continuously using a proprietary cloud service for similar outputs. There is not much we can do on the data production side and many ethical dilemmas surrounding digital colonialism remain, but local computation takes one step towards a critical and transparent use of AI tools by Artists.
1. **Niedrigschwelliger Einstieg**: Anfänger*innen einen zugänglichen Einstieg in die Text-to-Image-KI ermöglichen
2. **Kritische Diskussion**: Eine differenzierte politische Diskussion über die ethischen Auswirkungen dieser Tools anstoßen und bewusste Entscheidungsoptionen aufzeigen (wie lokal installierte Tools)
The Workshop format was rathert open and experimental, which was welcomed by the participants and they tried the collages enthusiastically. We also had a refreshing discussion on different positions regarding the ethicalities and whether a complete block of these tools is called for and feasible.
Das Lernformat wurde offen, praxisnah und experimentell gestaltet, wobei der Schwerpunkt auf dem kreativen Output der Teilnehmer*innen lag. Konkret wurden sie aufgefordert, in Gruppen zu arbeiten und gemeinsam mit der KI eine kurze Graphic Novel mit 4-8 Panels zu erstellen. Dabei mussten sie den Algorithmus aktiv verändern und sich mit den verschiedenen Funktionen und Schnittstellen vertraut machen.
I am looking forward to round 2 with the next iteration, where we are definitely diving deeper into the depths of comfyui, an interface that i absolutely adore, while its power also terrifies me sometimes.
### Workshop-Ablauf
Der Workshop war in zwei Hauptteile gegliedert:
#### Teil 1: Theoretische Einführung (45 Min.)
- Entmystifizierung der Prozesse, die im Hintergrund ablaufen
- Einführung in den Stable Diffusion Algorithmus
- Verständnis des Diffusionsprozesses und der Noise Reduction
- Unterschiede zu älteren Generative Adversarial Networks (GANs)
- Ethische Implikationen des Einsatzes von KI-Tools
#### Teil 2: Praktische Übungen (2+ Stunden)
- "Stadt-Land-Fluss"-Spiel zur Prompt-Konstruktion
- Erstellung einer Graphic Novel mit 4-8 Panels
- Experimentieren mit Parametern und Schnittstellen
- Nachbearbeitungstechniken (Upscaling, Maskieren, Inpainting, Pose Redrawing)
- Gruppenpräsentationen und Diskussion
### Das "Stadt-Land-Fluss"-Aufwärmspiel
Um die anfängliche Angst vor dem Prompting zu überwinden, spielten die Teilnehmer*innen eine Runde "Stadt-Land-Fluss" (Kategorien). Sie mussten vordefinierte Prompting-Unterkategorien wie "Thema", "Farbe", "Stil" und "Auflösung" mit Worten füllen, die mit bestimmten Buchstaben beginnen. Dieses Spiel fordert die Teilnehmenden heraus, sich in die kreative Gestaltung eines Prompts hineinzudenken, jenseits von vorgefertigten Sätzen, wie sie online zu finden sind.
## Warum lokale KI-Tools verwenden?
### Bewusst ethische und datenschutzrechtliche Faktoren miteinbeziehen
Eine zentrale Idee des Workshops war, die ethischen Implikationen des Einsatzes von KI-Tools in den Fokus zu rücken und Konsequenzen von lokaler Rechenleistung im Gegensatz zum Cloud-Computing hervorzuheben. Der Workshop thematisierte zwei wesentliche Unterschiede bei der Anwendung derselben KI-Modelle und -Algorithmen:
#### Option 1: Proprietäre Cloud-Dienste
- Populäre Plattformen wie Midjourney
- Schnittstelle von privaten Unternehmen bereitgestellt
- Oft gebührenpflichtig
- Ergebnisse auf Unternehmensservern gespeichert
- Daten für weiteres KI-Modell-Training verwendet
- Begrenzte Benutzerkontrolle und Transparenz
#### Option 2: Lokale Installation
- Selbst installierte Apps auf privaten Computern
- Selbst installierte GUIs oder Front-Ends über Browser zugänglich
- Vollständige Datensouveränität
- Keine Datenweitergabe an Dritte
- Offline-Fähigkeit
#### Option 3: Universitäts-gehostete Dienste
- Transparente Anbieter (z.B. UdK Berlin Server)
- Schneller und zuverlässiger als proprietäre Cloud-Dienste
- Daten weder an Dritte weitergegeben noch für Training verwendet
- Besser als proprietäre Dienste bei gleichzeitiger Zugänglichkeit
**Aus Perspektive des Datenschutzes sind lokale und universitäts-gehostete Lösungen bei weitem die bewussteren Wahlen.** Auch wenn UdK-Dienste technisch gesehen ebenfalls Cloud-Dienste mit auf einem Server gespeicherten Daten sind, stellen sie einen großen Unterschied zur Nutzung proprietärer Dienste wie OpenAI dar.
## Visuelles Erzählen mit Stable Diffusion
Die Teilnehmer*innen haben sich mit großer Begeisterung auf den Workshop-Prozess eingelassen. Sie probierten viele verschiedene Prompts und Einstellungen aus und produzierten Ergebnisse mit einer großen Vielfalt an ästhetischen und visuellen Erzählungen.
Der Workshop endete mit einer abschließenden Diskussion über:
- Die ethischen Implikationen des Einsatzes von KI-Tools
- Die Auswirkungen auf die verschiedenen kreativen Disziplinen
- Die Frage, ob eine vollständige Abschaffung dieser Tools notwendig oder überhaupt machbar ist
## Technischer Rahmen
Mit zunehmender Demokratisierung von KI und der Integration GPT-ähnlicher Strukturen in den Alltag behindert die Black-Box-Vorstellung der mysteriösen allmächtigen Intelligenz die aufschlussreiche und effektive Nutzung aufkommender Tools. Ein besonders praxisnahes Beispiel sind KI-generierte Bilder.
### Vorgestellte Tools & Schnittstellen
- **Stable Diffusion**: Der Kern-Algorithmus
- **ComfyUI**: Node-basiertes Front-End für Stable Diffusion
- **automatic1111**: GUI verfügbar auf UdK Berlin Servern
- **DiffusionBee**: Lokale Anwendungsoption
- **ControlNet**: Für detaillierte Pose- und Kompositionskontrolle
### Lernergebnisse
Die Teilnehmer*innen erlangten die Fähigkeit:
- Mehrere Varianten des Stable Diffusion Algorithmus zu nutzen
- Ein nicht-mathematisches Verständnis von Parametern und deren Effekten zu entwickeln
- Nachbearbeitungstechniken anzuwenden (Upscaling, Maskieren, Inpainting, Pose Redrawing)
- Effektive Text-Prompts zu konstruieren
- Online-Referenzdatenbanken zu nutzen
- Parameter zu manipulieren, um gewünschte Qualitäten zu optimieren
- ControlNet für detaillierte Pose- und Kompositionssteuerung zu verwenden
## Erfahrungsbericht von Aron Petau
### Die Student-als-Lehrer Perspektive
#### Über Vorbereitung und Herausforderungen
"Die Vorbereitung eines Workshops fühlte sich definitiv wie eine große Aufgabe an, weil ich das Bedürfnis hatte, Fragen zu Tools zu beantworten, die ich selbst gerade erst entdecke. Eine Sorge war, dass ich die Antwort auf ein fortgeschrittenes technisches Problem nicht geben kann. Dies stellte sich letztendlich als kein großes Problem heraus, was wahrscheinlich an der begrenzten Dauer des Workshops lag.
Was die Erfahrung mit einem KI-Workshop angeht, so bin ich der Meinung, dass es mehr als 3 Stunden braucht, um gemeinsam mit den Menschen in solche komplexen Werkzeuge einzutauchen. Selbst durch die Ausweitung des erklärenden/theoretischen Teils habe ich es nicht geschafft, alle Konzepte abzudecken, die ich im Vorfeld für wertvoll eingestuft habe... Dennoch erscheint mir die Dauer von 34 Stunden für einen Einführungsworkshop angemessen, da sich bei längeren Zeitspannen Fehler im Zeitmanagement summieren und hier vielleicht auch mehr Lehrerfahrung nötig wäre."
#### Über Workshop-Format und Atmosphäre
"Gut gefallen hat mir der eher hierarchiearme Rahmen des Workshops, bei dem klar war, dass es sich eher um ein Skillsharing und nicht um ein Vorlesungsformat handelt. Vor allem bei so praktischen Dingen wie der Bilderzeugung konnte ich, wenn ich die Wirkung eines Promptes oder von einem Parameter nicht kannte wie auch, das ist ja Sinn der Sache den Effekt einfach gemeinsam mit den Workshop-Teilnehmer*innen ausprobieren und dann die Ergebnisse untersuchen.
Die Teilnehmer*innen schienen das gewählte Format und den Schwierigkeitsgrad zu mögen, bei dem nicht zu viel Mathematik und Formeln vermittelt wurden, sondern eine Intuition für den zugrunde liegenden Prozess. Die Teilnehmer*innen beteiligten sich auch aktiv an der kritischen Diskussion über den ethischen Einsatz von KI und brachten Perspektiven aus ihren eigenen Bereichen ein, was ich sehr zu schätzen wusste."
#### Über das Erlernen didaktischer Praxis
"Während der Vorbereitung dieses Workshops hatte ich die Möglichkeit, selbständig zu arbeiten und meine Workshop-Termine selbst zu bestimmen und zu organisieren. Diese Freiheit und Autorität habe ich sehr geschätzt, aber ein etwas stärkerer Druck auf einen endgültigen Termin hätte mir geholfen, die Bedenken bezüglich der Lehrsituation schneller zu verlieren.
Jetzt freue ich mich auf eine mögliche Runde 2 eine nächste Iteration, in der wir tiefer in die Tiefen von ComfyUI eintauchen können, einer Schnittstelle, die ich absolut liebe, während ihre Macht mir manchmal auch Angst macht."
## Empowerment durch Verständnis
**Empower yourself against readymade technology!**
Lass nicht andere darüber entscheiden, was deine Best Practices sind. Beteilige dich an der Modifikation des Algorithmus und lass dich von endlosen kreativen Möglichkeiten überraschen. Durch die Erkundung lokaler KI-Tools können wir:
- Schritte hin zu einer kritischen und transparenten Nutzung von KI-Tools durch Künstler*innen gehen
- Die Handlungsmacht der Nutzer*innen erhöhen
- Techno-soziale Abhängigkeiten und Machtverhältnisse sichtbar machen
- Fragen des digitalen Kolonialismus ansprechen
- Datensouveränität und Privatsphäre bewahren
Während wir auf der Datenproduktionsseite nicht viel tun können und viele ethische Dilemmata rund um den digitalen Kolonialismus bestehen bleiben, ist lokales Computing ein Schritt hin zu einer kritischen und transparenten Nutzung von KI-Tools durch Künstler*innen.

View file

@ -1,20 +1,19 @@
+++
title = "Local Diffusion"
excerpt = "Empower your own Stable Diffusion Generation: InKüLe supported student workshop: Local Diffusion by Aron Petau"
date = 2024-04-11
authors = ["Aron Petau"]
banner = "images/local-diffusion/local-diffusion.png"
description = "A hands-on workshop exploring ethical AI image generation through local Stable Diffusion, teaching students to create graphic novels while understanding the importance of local computing and data sovereignty."
[taxonomies]
tags = [
"automatic1111",
"stable diffusion",
"comfyui",
"diffusionbee",
"inküle",
"Local Computing",
"Stable Diffusion",
"Workshop",
"university of the arts berlin"
"workshop",
"university of the arts berlin",
]
[extra]
@ -22,23 +21,145 @@ show_copyright = true
show_shares = true
+++
## Local Diffusion
[The official call for the Workshop](https://www.udk-berlin.de/universitaet/online-lehre-an-der-universitaet-der-kuenste-berlin/inkuele/11-april-24-aron-stable-diffusion/)
## Core Questions
Is it possible to create a graphic novel with generative A.I.?
What does it mean to use these emerging media in collaboration with others?
And why does their local and offline application matter?
With AI becoming more and more democratised and GPT-like Structures increasingly integrated into everyday life, the black-box notion of the mysterious all-powerful Intelligence hinders insightful and effective usage of emerging tools. One particularly hands-on example is AI generated images. Within the proposed Workshop, we will dive into Explainable AI, explore Stable Diffusion, and most importantly, understand the most important parameters within it. We want to steer outcomes in a deliberate manner. Emphasis here is on open and accessible technology, to increase user agency and make techno-social dependencies and power relations visible.
[Official Workshop Documentation](https://www.inkuele.de/dokumentation/details/lokale-diffusion-br-empower-your-own-em-stable-diffusion-generation-em) | [Workshop Call](https://www.udk-berlin.de/universitaet/online-lehre-an-der-universitaet-der-kuenste-berlin/inkuele/11-april-24-aron-stable-diffusion/)
Empower yourself against readymade technology!
Do not let others decide on what your best practices are. Get involved in the modification of the algorithm and get surprised by endless creative possibilities. Through creating a short graphic novel with 4-8 panels, participants will be able to utilise multiple flavours of the Stable Diffusion algorithm, and will have a non-mathematical understanding of the parameters and their effects on the output within some common GUIs. They will be able to apply several post-processing techniques to their generated images, such as upscaling, masking, inpainting and pose redrawing. Further, participants will be able to understand the structure of a good text prompt, be able to utilise online reference databases and manipulate parameters and directives of the Image to optimise desired qualities. Participants will also be introduced to ControlNet, enabling them to direct Pose and Image composition in detail.
## Workshop Goals & Structure
## Workshop Evaluation
### Focus: Theoretical and Playful Introduction to A.I. Tools
Over the course of 3 hours, I gave an introductory workshop in local stable diffusion processing and introduced participants to the server available to UdK Students for fast remote computation that circumvents the unethicality of continuously using a proprietary cloud service for similar outputs. There is not much we can do on the data production side and many ethical dilemmas surrounding digital colonialism remain, but local computation takes one step towards a critical and transparent use of AI tools by Artists.
The workshop pursued a dual objective:
The Workshop format was rathert open and experimental, which was welcomed by the participants and they tried the collages enthusiastically. We also had a refreshing discussion on different positions regarding the ethicalities and whether a complete block of these tools is called for and feasible.
1. **Accessible Entry Point**: Provide beginners with a low-barrier introduction to text-to-image AI
2. **Critical Discussion**: Initiate a nuanced political discussion about the ethical implications of these tools and demonstrate conscious decision-making options (such as locally installed tools)
I am looking forward to round 2 with the next iteration, where we are definitely diving deeper into the depths of comfyui, an interface that i absolutely adore, while its power also terrifies me sometimes.
The learning format was designed to be open, practical, and experimental, with emphasis on participants' creative output. Specifically, participants were tasked with working in groups to create a short graphic novel of 4-8 panels using AI. They had to actively modify the algorithm and familiarize themselves with various functions and interfaces.
### Workshop Structure
The workshop was divided into two main parts:
#### Part 1: Theoretical Introduction (45 min)
- Demystifying AI processes running in the background
- Introduction to the Stable Diffusion algorithm
- Understanding the diffusion process and noise reduction
- Differences from older Generative Adversarial Networks (GANs)
- Ethical implications of AI tool usage
#### Part 2: Hands-On Practice (2+ hours)
- "Categories Game" for prompt construction
- Creating a 4-8 panel graphic novel
- Experimenting with parameters and interfaces
- Post-processing techniques (upscaling, masking, inpainting, pose redrawing)
- Group presentations and discussion
### The "Categories Game" Warm-Up
To overcome initial fears about prompting, participants played a round of "Categories" (Stadt-Land-Fluss). They had to fill predefined prompting subcategories like "Subject", "Color", "Style", and "Resolution" with words starting with specific letters. This game challenged participants to think creatively about prompt construction beyond ready-made sentences found online.
## Why Local AI Tools Matter
### Consciously Considering Ethical and Data Protection Factors
A central idea of the workshop was to highlight the ethical implications of using AI tools and emphasize the consequences of local computing versus cloud computing. The workshop addressed two essential differences when applying the same AI models and algorithms:
#### Option 1: Proprietary Cloud Services
- Popular platforms like Midjourney
- Interface provided by private companies
- Often fee-based
- Results stored on company servers
- Data used for further AI model training
- Limited user control and transparency
#### Option 2: Local Installation
- Self-installed apps on private computers
- Self-installed GUIs or front-ends accessed via browser
- Complete data sovereignty
- No third-party data sharing
- Offline capability
#### Option 3: University-Hosted Services
- Transparent providers (e.g., UdK Berlin servers)
- Faster and more reliable than proprietary cloud services
- Data neither shared with third parties nor used for training
- Better than proprietary services while maintaining accessibility
**From a data protection perspective, local and university-hosted solutions are far more conscious choices.** While UdK services are technically also cloud services with data stored on a server, they represent a significant difference from proprietary services like OpenAI.
## Visual Storytelling with Stable Diffusion
Participants engaged enthusiastically in the workshop process. They tried many different prompts and settings, producing results with a great variety of aesthetic and visual narratives. The workshop concluded with a final discussion about:
- Ethical implications of using AI tools
- Impact on various creative disciplines
- Whether complete abolition of these tools is necessary or even feasible
## Technical Framework
With AI becoming increasingly democratized and GPT-like structures integrated into everyday life, the black-box notion of the mysterious all-powerful intelligence hinders insightful and effective usage of emerging tools. One particularly hands-on example is AI-generated images.
### Tools & Interfaces Introduced
- **Stable Diffusion**: The core algorithm
- **ComfyUI**: Node-based front-end for Stable Diffusion
- **automatic1111**: GUI available on UdK Berlin servers
- **DiffusionBee**: Local application option
- **ControlNet**: For detailed pose and composition control
### Learning Outcomes
Participants gained the ability to:
- Utilize multiple flavors of the Stable Diffusion algorithm
- Develop non-mathematical understanding of parameters and their effects
- Apply post-processing techniques (upscaling, masking, inpainting, pose redrawing)
- Construct effective text prompts
- Utilize online reference databases
- Manipulate parameters to optimize desired qualities
- Use ControlNet for detailed pose and composition direction
## Reflections: The Student-as-Teacher Perspective
*Personal reflection by Aron Petau*
### On Preparation and Challenges
"Preparing a workshop definitely felt like a big task because I felt the need to answer questions about tools that I myself am just discovering. One concern was that I wouldn't be able to answer an advanced technical problem. This ultimately turned out not to be a major issue, probably due to the limited duration of the workshop.
When it comes to the experience with an AI workshop, I believe it takes more than 3 hours to dive into such complex tools together with people. Even by extending the explanatory/theoretical part, I didn't manage to cover all the concepts I had deemed valuable beforehand... Nevertheless, a duration of 3-4 hours seems appropriate for an introductory workshop, as errors in time management accumulate over longer periods and more teaching experience would be needed here."
### On Workshop Format and Atmosphere
"I really liked the rather non-hierarchical framework of the workshop, where it was clear that it was more about skill-sharing rather than a lecture format. Especially with practical things like image generation, when I didn't know the effect of a prompt or a parameter which is the point after all I could simply try out the effect together with the workshop participants and then examine the results.
The participants seemed to like the chosen format and difficulty level, where not too much mathematics and formulas were conveyed, but rather an intuition for the underlying process. The participants also actively participated in the critical discussion about the ethical use of AI and contributed perspectives from their own fields, which I greatly appreciated."
### On Learning Teaching Practice
"During the preparation of this workshop, I had the opportunity to work independently and determine and organize my workshop dates myself. I greatly appreciated this freedom and authority, but a bit stronger pressure on a final deadline would have helped me lose the concerns about the teaching situation more quickly.
Now I'm looking forward to a possible round 2 a next iteration where we can dive deeper into the depths of ComfyUI, an interface that I absolutely love, while its power also sometimes scares me."
## Empowerment Through Understanding
**Empower yourself against ready-made technology!**
Do not let others decide on what your best practices are. Get involved in the modification of the algorithm and get surprised by endless creative possibilities. Through exploring local AI tools, we can:
- Take steps toward critical and transparent use of AI tools by artists
- Increase user agency
- Make techno-social dependencies and power relations visible
- Address issues of digital colonialism
- Maintain data sovereignty and privacy
While there is not much we can do on the data production side and many ethical dilemmas surrounding digital colonialism remain, local computation takes one step towards a critical and transparent use of AI tools by artists.

View file

@ -19,9 +19,9 @@ tags = [
"studierendenwerk",
"touchdesigner",
"tts",
"university",
"research",
"university of the arts berlin",
"ultrasonic sensor"
"ultrasonic sensor",
]
[extra]

View file

@ -19,9 +19,9 @@ tags = [
"studierendenwerk",
"touchdesigner",
"tts",
"university",
"research",
"university of the arts berlin",
"ultrasonic sensor"
"ultrasonic sensor",
]
[extra]

View file

@ -1,18 +1,18 @@
+++
title = "Übersetzung: Sferics"
description = "On a hunt for the Voice of the out there"
title = "Sferics"
description = "Auf der Jagd nach der Stimme von Blitzen aus tausenden Kilometern Entfernung"
date = 2024-06-20
authors = ["Aron Petau"]
[taxonomies]
tags = [
"antenna",
"electronics",
"magnetism",
"fm",
"geosensing",
"lightning",
"radio",
"sferics",
"vlf",
"university of the arts berlin"
]
@ -21,39 +21,91 @@ show_copyright = true
show_shares = true
+++
## What the hell are Sferics?
## Was zum Teufel sind Sferics?
>A radio atmospheric signal or sferic (sometimes also spelled "spheric") is a broadband electromagnetic impulse that occurs as a result of natural atmospheric lightning discharges. Sferics may propagate from their lightning source without major attenuation in the Earthionosphere waveguide, and can be received thousands of kilometres from their source.
> Ein atmosphärisches Funksignal oder Sferics (manchmal auch "Spherics"
> geschrieben) ist ein breitbandiger elektromagnetischer Impuls, der durch
> natürliche atmosphärische Blitzentladungen entsteht. Sferics können sich
> von ihrer Blitzquelle ohne wesentliche Dämpfung im Wellenleiter zwischen
> Erde und Ionosphäre ausbreiten und tausende Kilometer von ihrer Quelle
> entfernt empfangen werden.
- [Wikipedia](https://en.wikipedia.org/wiki/Radio_atmospheric_signal)
*Quelle: [Wikipedia](https://en.wikipedia.org/wiki/Radio_atmospheric_signal)*
## Why catch them?
## Warum einfangen?
[Microsferics](microsferics.com) is a nice reference Project, which is a network of Sferics antennas, which are used to detect lightning strikes. Through triangulation not unlike the Maths happening in GPS, the (more or less) exact location of the strike can be determined. This is useful for weather prediction, but also for the detection of forest fires, which are often caused by lightning strikes.
[Microsferics](https://microsferics.com) ist ein faszinierendes
Referenzprojekt—ein Netzwerk von Sferics-Antennen zur Detektion von
Blitzeinschlägen. Durch Triangulation (ähnlich wie bei GPS-Mathematik)
können sie den mehr oder weniger genauen Ort jedes Einschlags bestimmen.
Das ist nützlich für Wettervorhersagen und die Erkennung von Waldbränden,
die oft durch Blitze verursacht werden.
Because the Frequency of the Sferics is, when converted to audio, still in the audible range, it is possible to listen to the strikes. This usually sounds a bit like a crackling noise, but can also be quite melodic. I was a bit reminded by a Geiger Counter.
Wenn man Sferics-Frequenzen in Audio umwandelt, liegen sie im hörbaren
Bereich, sodass man Blitzeinschläge tatsächlich *hören* kann. Der Klang ist
normalerweise ein Knistern, manchmal aber überraschend melodisch—erinnert an
einen Geigerzähler.
Sferics are in the VLF (Very Low Frequency) range, sitting roughly at 10kHz, which is a bit of a problem for most radios, as they are not designed to pick up such low frequencies. This is why we built our own antenna.
At 10kHz, we are talking about insanely large waves. a single wavelength there is roughly 30 Kilometers. This is why the antenna needs to be quite large. A special property of waves this large is, that they get easily reflected by the Ionosphere and the Earth's surface. Effectively, a wave like this can bounce around the globe several times before it is absorbed by the ground. This is why we can pick up Sferics from all over the world and even listen to Australian Lightning strikes. Of course, without the maths, we cannot attribute directions, but the so called "Tweeks" we picked up, usually come from at least 2000km distance.
### Die technische Herausforderung
## The Build
Sferics befinden sich im VLF-Bereich (Very Low Frequency), um die 10 kHz—
ein Problem für die meisten Radios, die nicht für so niedrige Frequenzen
ausgelegt sind. Deshalb haben wir unsere eigene Antenne gebaut.
We built several so-called "Long-Loop" antennas, which are essentially a coil of wire with a capacitor at the end. Further, a specific balun is needed, depending on the length of the wire. this can then directly output an electric signal on an XLR cable.
Bei 10 kHz haben wir es mit *wahnsinnig* großen Wellen zu tun: Eine einzelne
Wellenlänge erstreckt sich über etwa 30 Kilometer. Diese Größenordnung
erfordert eine beträchtliche Antenne. Eine besondere Eigenschaft solcher
massiven Wellen ist ihre Tendenz, zwischen Ionosphäre und Erdoberfläche zu
reflektieren—sie springen praktisch mehrmals um den Globus, bevor sie
absorbiert werden. Das bedeutet, wir können Sferics aus der ganzen Welt
empfangen, sogar australische Blitzeinschläge!
Loosely based on instructions from [Calvin R. Graf](https://archive.org/details/exploringlightra00graf), We built a 26m long antenna, looped several times around a wooden frame.
Ohne richtige Triangulations-Mathematik können wir keine genauen Richtungen
bestimmen, aber die "Tweeks", die wir aufgenommen haben, stammen
typischerweise aus mindestens 2.000 km Entfernung.
## The Result
## Der Bau
We have several hour-long recordings of the Sferics, which we are currently investigating for further potential.
Wir konstruierten mehrere "Long-Loop"-Antennen—im Grunde eine Drahtspule
mit einem Kondensator am Ende. Je nach Drahtlänge wird ein spezifischer
Balun benötigt, um ein elektrisches Signal über ein XLR-Kabel auszugeben.
Have a listen to a recording of the Sferics here:
Lose basierend auf Anleitungen von
[Calvin R. Graf](https://archive.org/details/exploringlightra00graf), bauten
wir eine 26 Meter lange Antenne, die mehrfach um einen Holzrahmen gewickelt
wurde.
## Das Ergebnis
Wir haben mehrere Stunden Sferics-Aufnahmen gemacht, die wir derzeit auf
weiteres Potenzial untersuchen.
### Hör dem Blitz zu
{{ youtube(id="2YYPg_K3dI4") }}
As you can hear, there is quite a bit of 60 hz ground buzz in the recording.
This is either due to the fact that the antenna was not properly grounded or we simply were still too close to the bustling city.
I think it is already surprising that we got such a clear impression so close to Berlin. Let's see what we can get in the countryside!
Wie man hören kann, gibt es ein merkliches 60-Hz-Brummen in der Aufnahme.
Das liegt wahrscheinlich an unzureichender Erdung oder unserer Nähe zur
geschäftigen Stadt. Trotzdem ist es überraschend, dass wir so klare
Ergebnisse so nah an Berlin erzielt haben. Mal sehen, was die Landschaft
ergibt!
![Listening at night](sferics1.jpeg)
![The Drachenberg](sferics2.jpeg)
![The Antenna](sferics3.jpeg)
{% gallery() %}
[
{
"file": "./sferics1.jpg",
"alt": "Nachts Sferics lauschen",
"title": "Nächtliche Session zum Erfassen atmosphärischer Signale"
},
{
"file": "./sferics2.jpg",
"alt": "Der Drachenberg-Standort",
"title": "Aufnahmeort am Drachenberg"
},
{
"file": "./sferics3.jpg",
"alt": "Die Long-Loop-Antenne",
"title": "Unser 26-Meter VLF-Antennenaufbau"
}
]
{% end %}

View file

@ -1,18 +1,18 @@
+++
title = "Sferics"
description = "On a hunt for the Voice of the out there"
description = "Hunting for the voice of lightning from thousands of kilometers away"
date = 2024-06-20
authors = ["Aron Petau"]
[taxonomies]
tags = [
"antenna",
"electronics",
"magnetism",
"fm",
"geosensing",
"lightning",
"radio",
"sferics",
"vlf",
"university of the arts berlin"
]
@ -21,39 +21,85 @@ show_copyright = true
show_shares = true
+++
## What the hell are Sferics?
## What the Hell are Sferics?
>A radio atmospheric signal or sferic (sometimes also spelled "spheric") is a broadband electromagnetic impulse that occurs as a result of natural atmospheric lightning discharges. Sferics may propagate from their lightning source without major attenuation in the Earthionosphere waveguide, and can be received thousands of kilometres from their source.
> A radio atmospheric signal or sferic (sometimes also spelled "spheric") is
> a broadband electromagnetic impulse that occurs as a result of natural
> atmospheric lightning discharges. Sferics may propagate from their lightning
> source without major attenuation in the Earthionosphere waveguide, and can
> be received thousands of kilometres from their source.
- [Wikipedia](https://en.wikipedia.org/wiki/Radio_atmospheric_signal)
*Source: [Wikipedia](https://en.wikipedia.org/wiki/Radio_atmospheric_signal)*
## Why catch them?
## Why Catch Them?
[Microsferics](microsferics.com) is a nice reference Project, which is a network of Sferics antennas, which are used to detect lightning strikes. Through triangulation not unlike the Maths happening in GPS, the (more or less) exact location of the strike can be determined. This is useful for weather prediction, but also for the detection of forest fires, which are often caused by lightning strikes.
[Microsferics](https://microsferics.com) is a fascinating reference project—a
network of sferics antennas used to detect lightning strikes. Through
triangulation (not unlike GPS mathematics), they can determine the
more-or-less exact location of each strike. This proves useful for weather
prediction and detecting forest fires, which are often caused by lightning.
Because the Frequency of the Sferics is, when converted to audio, still in the audible range, it is possible to listen to the strikes. This usually sounds a bit like a crackling noise, but can also be quite melodic. I was a bit reminded by a Geiger Counter.
When converted to audio, sferics frequencies fall within the audible range,
making it possible to actually *listen* to lightning strikes. The sound is
usually a crackling noise, though sometimes surprisingly melodic—reminiscent
of a Geiger counter.
Sferics are in the VLF (Very Low Frequency) range, sitting roughly at 10kHz, which is a bit of a problem for most radios, as they are not designed to pick up such low frequencies. This is why we built our own antenna.
At 10kHz, we are talking about insanely large waves. a single wavelength there is roughly 30 Kilometers. This is why the antenna needs to be quite large. A special property of waves this large is, that they get easily reflected by the Ionosphere and the Earth's surface. Effectively, a wave like this can bounce around the globe several times before it is absorbed by the ground. This is why we can pick up Sferics from all over the world and even listen to Australian Lightning strikes. Of course, without the maths, we cannot attribute directions, but the so called "Tweeks" we picked up, usually come from at least 2000km distance.
### The Technical Challenge
Sferics live in the VLF (Very Low Frequency) range, around 10 kHz—a problem
for most radios not designed for such low frequencies. That's why we built our
own antenna.
At 10 kHz, we're dealing with *insanely* large waves: a single wavelength
stretches roughly 30 kilometers. This scale demands a sizable antenna. A
special property of such massive waves is their tendency to reflect between
the ionosphere and Earth's surface—effectively bouncing around the globe
several times before absorption. This means we can pick up sferics from all
over the world, even Australian lightning strikes!
Without proper triangulation math, we can't determine exact directions, but
the "tweeks" we captured typically originate from at least 2,000 km away.
## The Build
We built several so-called "Long-Loop" antennas, which are essentially a coil of wire with a capacitor at the end. Further, a specific balun is needed, depending on the length of the wire. this can then directly output an electric signal on an XLR cable.
We constructed several "long-loop" antennas—essentially a coil of wire with a
capacitor at the end. A specific balun is needed (depending on wire length) to
output an electrical signal via XLR cable.
Loosely based on instructions from [Calvin R. Graf](https://archive.org/details/exploringlightra00graf), We built a 26m long antenna, looped several times around a wooden frame.
Loosely following instructions from
[Calvin R. Graf](https://archive.org/details/exploringlightra00graf), we built
a 26-meter antenna looped multiple times around a wooden frame.
## The Result
We have several hour-long recordings of the Sferics, which we are currently investigating for further potential.
We captured several hours of sferics recordings, which we're currently
investigating for further potential.
Have a listen to a recording of the Sferics here:
### Listen to the Lightning
{{ youtube(id="2YYPg_K3dI4") }}
As you can hear, there is quite a bit of 60 hz ground buzz in the recording.
This is either due to the fact that the antenna was not properly grounded or we simply were still too close to the bustling city.
I think it is already surprising that we got such a clear impression so close to Berlin. Let's see what we can get in the countryside!
As you can hear, there's a noticeable 60 Hz ground buzz in the recording.
This likely stems from improper grounding or our proximity to the bustling
city. Still, it's surprising we achieved such clear results so close to
Berlin. Let's see what the countryside yields!
![Listening at night](sferics1.jpeg)
![The Drachenberg](sferics2.jpeg)
![The Antenna](sferics3.jpeg)
{% gallery() %}
[
{
"file": "./sferics1.jpg",
"alt": "Listening to sferics at night",
"title": "Night session capturing atmospheric signals"
},
{
"file": "./sferics2.jpg",
"alt": "The Drachenberg location",
"title": "Recording location at Drachenberg"
},
{
"file": "./sferics3.jpg",
"alt": "The long-loop antenna",
"title": "Our 26-meter VLF antenna setup"
}
]
{% end %}

View file

@ -1,54 +1,130 @@
+++
title = "Übersetzung: Käsewerkstatt"
description = "Building a Food trailer and selling my first Food"
title = "Käsewerkstatt"
description = "Bau eines mobilen Food-Anhängers und mein erstes Street Food"
date = 2024-07-05
authors = ["Aron Petau"]
banner = "cheese.jpeg"
banner = "cheese.jpeg"
[taxonomies]
tags = [
"bruschetta",
"cars",
"food truck",
"mobile workshop",
"raclette",
"workshop"
"street food",
"urban intervention",
]
[extra]
show_copyright = true
show_shares = true
+++
## Enter the Käsewerkstatt
## Willkommen in der Käsewerkstatt
One day earlier this year I woke up and realized I had a space problem.
I was trying to build out a workshop and tackle ever more advanced and dusty plastic and woodworking projects and after another small run in with my girlfriend after I had repeatedly crossed the "No-Sanding-and-Linseed-Oiling-Policy" in our Living Room, it was time to do something about it.
I am based in Berlin right now and the housing market is going completely haywire over here ( quick shoutout in solidarity with [Deutsche Wohnen und Co enteignen](https://dwenteignen.de/)).
End of the song: I won't be able to afford to rent a small workshop anywhere near berlin anytime soon. As you will notice in some other projects, I am quite opposed to the Idea that it should be considered normal to park ones car in the middle of the city on public spaces, for example [Autoimmunitaet](/autoimmunitaet), [Commoning Cars](/commoning-cars) or [Dreams of Cars](/dreams-of-cars).
Eines Morgens Anfang dieses Jahres wachte ich auf und stellte fest: Ich habe
ein Platzproblem.
So, the idea was born, to regain that space as habitable zone, taking back usable space from parked cars.
I was gonna install a mobile workshop within a trailer.
Ideally, the trailer should be lockable and have enough standing and working space.
As it turns out, Food Trailers fulfill these criteria quite nicely. So I got out on a quest, finding the cheapest food trailer available in germany.
Ich hatte versucht, eine Werkstatt aufzubauen, um zunehmend komplexe
Holzbearbeitungs- und Kunststoffprojekte umzusetzen. Nach einer weiteren
Auseinandersetzung mit meiner Freundin wegen meiner wiederholten Verstöße
gegen die "Kein-Schleifen-und-Leinöl-Politik" in unserem Wohnzimmer musste
sich etwas ändern.
6 weeks later, I found it near munich, got it and started immediately renovating it.
Ich lebe in Berlin, wo der Wohnungsmarkt völlig aus dem Ruder gelaufen ist
(solidarische Grüße an
[Deutsche Wohnen und Co enteignen](https://dwenteignen.de/)). Die Realität:
Ich werde mir in absehbarer Zeit keine kleine Werkstatt in der Nähe von
Berlin leisten können.
Due to developments in parallel, I was already invited to sell food and have the ofgficial premiere at the Bergfest, a Weekend Format in Brandenburg an der Havel, initiated and organized by [Zirkus Creativo](https://zirkus-creativo.de). Many thanks for the invitation here again!
Wie ihr in einigen meiner anderen Projekte bemerken werdet—
[Autoimmunitaet](/autoimmunitaet), [Commoning Cars](/commoning-cars) oder
[Dreams of Cars](/dreams-of-cars)—bin ich der Meinung, dass es nicht normal
sein sollte, private Autos auf öffentlichen Flächen in der Stadt zu parken.
So on it went, I spent some afternoons renovating and outfitting the trailer, and did my first ever shopping at Metro, a local B2B Foodstuffs Market.
## Die Idee: Raum zurückgewinnen
Meanwhile, I got into all the paperwork and did all the necessary instructional courses and certificates.
The first food I wanted to sell was Raclette on fresh bread, a swiss dish that is quite popular in germany.
For the future, the trailer is supposed to tend more towards vegan dishes, as a first tryout I also sold a bruschetta combo. This turned out great, since the weather was quite hot and the bruschetta was a nice and light snack, while I could use the same type of bread for the raclette.
So entstand die Idee: Diesen Raum als bewohnbare Zone zurückgewinnen,
nutzbaren Platz von geparkten Autos zurückholen. Ich würde eine mobile
Werkstatt in einem Anhänger installieren—abschließbar, mit genug Steh- und
Arbeitsfläche.
![The finished Trailer](/assets/images/käsewerkstatt/trailer.jpeg)
Wie sich herausstellt, erfüllen Food-Anhänger diese Kriterien ziemlich gut.
Ich machte mich auf die Suche nach dem günstigsten Food-Trailer in Deutschland.
The event itself was great, and, in part at least, started paying off the trailer.
Sechs Wochen später fand ich einen in der Nähe von München, holte ihn nach
Berlin und fing sofort mit der Renovierung an.
Some photos of the opeing event @ Bergfest in Brandenburg an der Havel
## Von der Werkstatt zum Food Truck
![Scraping the cheese](cheese.jpeg)
![The Recommended Combo from the Käsewerkstatt](combo_serve.jpeg)
![The Logo of the Käsewerkstatt, done with the Shaper Origin](logo.jpeg)
Durch parallele Entwicklungen wurde ich eingeladen, beim Bergfest Essen zu
verkaufen—einem Wochenendformat in Brandenburg an der Havel, initiiert und
organisiert von [Zirkus Creativo](https://zirkus-creativo.de). Nochmals
vielen Dank für die Einladung!
We encountered lots of positive feedback and I am looking forward to the next event. So, in case you want to have a foodtruck at your event, hit me up!
Ich verbrachte mehrere Nachmittage damit, den Anhänger zu renovieren und
auszustatten, machte meinen ersten Einkauf bei Metro (einem lokalen
B2B-Lebensmittelmarkt), erledigte alle Formalitäten und absolvierte die
notwendigen Hygieneschulungen und Zertifizierungen.
Contact me at: [käsewerkstatt@petau.net](mailto:käsewerkstatt@petau.net)
## Das Menü
Für mein Debüt wählte ich **Raclette auf frischem Brot**—ein Schweizer
Gericht, das in Deutschland ziemlich beliebt ist. Für die Zukunft soll der
Anhänger eher in Richtung vegane Angebote tendieren, aber als ersten Test
verkaufte ich auch eine Bruschetta-Kombi. Das stellte sich als perfekt
heraus: Das Wetter war heiß, die Bruschetta bot eine leichte und erfrischende
Option, und ich konnte dasselbe Brot für beide Gerichte verwenden.
Das Event war fantastisch und begann, die Investition in den Anhänger
(zumindest teilweise!) wieder einzuspielen.
{% gallery() %}
[
{
"file": "./trailer.jpeg",
"alt": "Der fertige Käsewerkstatt-Anhänger",
"title": "Der renovierte Food-Trailer, bereit fürs Geschäft"
},
{
"file": "./cheese.jpeg",
"alt": "Raclette-Käse wird geschabt",
"title": "Frisches Raclette zubereiten"
},
{
"file": "./combo_serve.jpeg",
"alt": "Die empfohlene Kombi der Käsewerkstatt",
"title": "Bruschetta und Raclette Kombi-Teller"
},
{
"file": "./logo.jpeg",
"alt": "Das Käsewerkstatt-Logo",
"title": "Logo gefräst mit dem Shaper Origin"
},
{
"file": "./product.jpeg",
"alt": "Essenszubereitung im Anhänger",
"title": "Hinter den Kulissen"
},
{
"file": "./welcome.jpeg",
"alt": "Willkommen bei der Käsewerkstatt",
"title": "Bereit, Kunden zu bedienen"
}
]
{% end %}
<div class="buttons centered">
<a class="big colored external" href="https://kaesewerkstatt.petau.net">
🧀 Zur offiziellen Käsewerkstatt-Seite
</a>
</div>
## Ausblick
Wir haben viel positives Feedback erhalten, und ich freue mich auf das nächste
Event. Der Anhänger erfüllt weiterhin seinen doppelten Zweck: mobile Werkstatt
wenn nötig, Food Truck wenn sich die Gelegenheit ergibt.
**Du willst einen Food Truck auf deinem Event?** Melde dich!
Kontakt: [käsewerkstatt@petau.net](mailto:käsewerkstatt@petau.net)

View file

@ -1,17 +1,20 @@
+++
title = "Käsewerkstatt"
description = "Building a Food trailer and selling my first Food"
description = "Building a mobile food trailer and selling my first street food"
date = 2024-07-05
authors = ["Aron Petau"]
banner = "cheese.jpeg"
banner = "cheese.jpeg"
[taxonomies]
tags = [
"bruschetta",
"cars",
"food truck",
"mobile workshop",
"raclette",
"workshop"
"street food",
"urban intervention"
]
[extra]
show_copyright = true
show_shares = true
@ -19,36 +22,106 @@ show_shares = true
## Enter the Käsewerkstatt
One day earlier this year I woke up and realized I had a space problem.
I was trying to build out a workshop and tackle ever more advanced and dusty plastic and woodworking projects and after another small run in with my girlfriend after I had repeatedly crossed the "No-Sanding-and-Linseed-Oiling-Policy" in our Living Room, it was time to do something about it.
I am based in Berlin right now and the housing market is going completely haywire over here ( quick shoutout in solidarity with [Deutsche Wohnen und Co enteignen](https://dwenteignen.de/)).
End of the song: I won't be able to afford to rent a small workshop anywhere near berlin anytime soon. As you will notice in some other projects, I am quite opposed to the Idea that it should be considered normal to park ones car in the middle of the city on public spaces, for example [Autoimmunitaet](/autoimmunitaet), [Commoning Cars](/commoning-cars) or [Dreams of Cars](/dreams-of-cars).
One morning earlier this year, I woke up and realized I had a space problem.
So, the idea was born, to regain that space as habitable zone, taking back usable space from parked cars.
I was gonna install a mobile workshop within a trailer.
Ideally, the trailer should be lockable and have enough standing and working space.
As it turns out, Food Trailers fulfill these criteria quite nicely. So I got out on a quest, finding the cheapest food trailer available in germany.
I'd been trying to build out a workshop to tackle increasingly complex
woodworking and plastic fabrication projects. After yet another disagreement
with my girlfriend following my repeated violations of the
"No-Sanding-and-Linseed-Oiling-Policy" in our living room, something had
to change.
6 weeks later, I found it near munich, got it and started immediately renovating it.
I'm based in Berlin, where the housing market has gone completely haywire
(quick shoutout in solidarity with
[Deutsche Wohnen und Co enteignen](https://dwenteignen.de/)). The reality:
I won't be able to afford renting even a small workshop anywhere near
Berlin anytime soon.
Due to developments in parallel, I was already invited to sell food and have the ofgficial premiere at the Bergfest, a Weekend Format in Brandenburg an der Havel, initiated and organized by [Zirkus Creativo](https://zirkus-creativo.de). Many thanks for the invitation here again!
As you'll notice in some of my other projects—
[Autoimmunitaet](/autoimmunitaet), [Commoning Cars](/commoning-cars), or
[Dreams of Cars](/dreams-of-cars)—I'm quite opposed to the idea that parking
private cars on public urban spaces should be considered normal.
So on it went, I spent some afternoons renovating and outfitting the trailer, and did my first ever shopping at Metro, a local B2B Foodstuffs Market.
## The Idea: Reclaiming Space
Meanwhile, I got into all the paperwork and did all the necessary instructional courses and certificates.
The first food I wanted to sell was Raclette on fresh bread, a swiss dish that is quite popular in germany.
For the future, the trailer is supposed to tend more towards vegan dishes, as a first tryout I also sold a bruschetta combo. This turned out great, since the weather was quite hot and the bruschetta was a nice and light snack, while I could use the same type of bread for the raclette.
So the concept was born: reclaim that space as habitable zone, take back
usable space from parked cars. I would install a mobile workshop inside a
trailer—lockable, with enough standing and working space.
![The finished Trailer](/assets/images/käsewerkstatt/trailer.jpeg)
As it turns out, food trailers fulfill these criteria quite nicely. I set
out on a quest to find the cheapest food trailer available in Germany.
The event itself was great, and, in part at least, started paying off the trailer.
Six weeks later, I found one near Munich, hauled it back to Berlin, and
immediately started renovating it.
Some photos of the opeing event @ Bergfest in Brandenburg an der Havel
## From Workshop to Food Truck
![Scraping the cheese](cheese.jpeg)
![The Recommended Combo from the Käsewerkstatt](combo_serve.jpeg)
![The Logo of the Käsewerkstatt, done with the Shaper Origin](logo.jpeg)
Due to parallel developments, I was invited to sell food at the official
premiere during Bergfest—a weekend format in Brandenburg an der Havel,
initiated and organized by [Zirkus Creativo](https://zirkus-creativo.de).
Many thanks again for the invitation!
We encountered lots of positive feedback and I am looking forward to the next event. So, in case you want to have a foodtruck at your event, hit me up!
I spent several afternoons renovating and outfitting the trailer, did my
first-ever shopping at Metro (a local B2B foodstuffs market), navigated all
the paperwork, and completed the necessary food safety courses and
certifications.
Contact me at: [käsewerkstatt@petau.net](mailto:käsewerkstatt@petau.net)
## The Menu
For my debut, I chose **raclette on fresh bread**—a Swiss dish that's quite
popular in Germany. Looking ahead, the trailer will tend more toward vegan
offerings, but as a first test, I also sold a bruschetta combo. This turned
out perfectly: the weather was hot, the bruschetta provided a light and
refreshing option, and I could use the same bread for both dishes.
The event was fantastic and started paying off the trailer investment (at
least partially!).
{% gallery() %}
[
{
"file": "./trailer.jpeg",
"alt": "The finished Käsewerkstatt trailer",
"title": "The renovated food trailer ready for business"
},
{
"file": "./cheese.jpeg",
"alt": "Scraping the raclette cheese",
"title": "Preparing fresh raclette"
},
{
"file": "./combo_serve.jpeg",
"alt": "The recommended combo from Käsewerkstatt",
"title": "Bruschetta and raclette combo plate"
},
{
"file": "./logo.jpeg",
"alt": "The Käsewerkstatt logo",
"title": "Logo carved with the Shaper Origin"
},
{
"file": "./product.jpeg",
"alt": "Food preparation in the trailer",
"title": "Behind the scenes"
},
{
"file": "./welcome.jpeg",
"alt": "Welcome to Käsewerkstatt",
"title": "Ready to serve customers"
}
]
{% end %}
<div class="buttons centered">
<a class="big colored external" href="https://kaesewerkstatt.petau.net">
🧀 Visit Käsewerkstatt Official Page
</a>
</div>
## Looking Forward
We received lots of positive feedback, and I'm looking forward to the next
event. The trailer continues to serve its dual purpose: mobile workshop when
needed, food truck when the opportunity arises.
**Want a food truck at your event?** Get in touch!
Contact: [käsewerkstatt@petau.net](mailto:käsewerkstatt@petau.net)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 852 KiB

After

Width:  |  Height:  |  Size: 852 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 882 KiB

After

Width:  |  Height:  |  Size: 882 KiB

Before After
Before After

View file

@ -7,15 +7,14 @@ description = "Human - Waste: A thesis examining interactive workshops"
[taxonomies]
tags = [
"archival practices",
"collaborative recycling",
"recycling",
"hacking",
"liminality",
"maker-education",
"Materialübung",
"materialübung",
"matter",
"object-value",
"plastics-as-material",
"plastics-as-waste",
"plastics",
"peer-learning",
"re-valuation",
"recycling practices",
@ -24,8 +23,8 @@ tags = [
"thesis",
"transmattering",
"technische universität berlin",
"university",
"university of the arts berlin"
"research",
"university of the arts berlin",
]
[extra]

View file

@ -7,15 +7,14 @@ description = "Human - Waste: A thesis examining interactive workshops"
[taxonomies]
tags = [
"archival practices",
"collaborative recycling",
"recycling",
"hacking",
"liminality",
"maker-education",
"Materialübung",
"materialübung",
"matter",
"object-value",
"plastics-as-material",
"plastics-as-waste",
"plastics",
"peer-learning",
"re-valuation",
"recycling practices",
@ -24,8 +23,8 @@ tags = [
"thesis",
"transmattering",
"technische universität berlin",
"university",
"university of the arts berlin"
"research",
"university of the arts berlin",
]
[extra]

View file

@ -6,14 +6,13 @@ description = "Meine Website überarbeiten, zukunftssicher machen"
draft = true
[taxonomies]
tags = [
"rust",
"programmierung",
"static site generator",
"blogging",
"hosting",
"experiment",
"privat"
tags = [
"programming",
"static site generator",
"communication",
"infrastructure",
"experiment",
"work",
]
[extra]

View file

@ -7,11 +7,10 @@ draft = true
[taxonomies]
tags = [
"rust",
"programming",
"static site generator",
"blogging",
"hosting",
"communication",
"infrastructure",
"experiment",
"private",
]

View file

@ -13,7 +13,7 @@ tags = [
"engineering",
"experiment",
"work",
"3D printing",
"3d printing",
"soldering",
"electronics",
"einszwovier",

View file

@ -13,7 +13,7 @@ tags = [
"engineering",
"experiment",
"work",
"3D printing",
"3d printing",
"soldering",
"electronics",
"einszwovier",

View file

@ -12,7 +12,7 @@ tags = [
"engineering",
"experiment",
"work",
"3D printing",
"3d printing",
]
[extra]
banner = "eins zwo vier logo.png"

View file

@ -13,7 +13,7 @@ tags = [
"engineering",
"experiment",
"work",
"3D printing",
"3d printing",
"einszwovier",
]
[extra]

View file

@ -14,7 +14,7 @@ tags = [
"experiment",
"work",
"repair",
"3D-Printing",
"3d printing",
"einszwovier",
]
[extra]

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 852 KiB

After

Width:  |  Height:  |  Size: 852 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 882 KiB

After

Width:  |  Height:  |  Size: 882 KiB

Before After
Before After

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1,3 +0,0 @@
<!doctype html><meta charset=utf-8><title>Redirect</title><script>const target = "https://aron.petau.net/de/tags/1st-person/";
const hash = window.location.hash || "";
window.location.replace(target + hash);</script><noscript><meta content="0; url=https://aron.petau.net/de/tags/1st-person/" http-equiv=refresh></noscript><p><a href=https://aron.petau.net/de/tags/1st-person/>Click here</a> to be redirected.

View file

@ -1,45 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
<title>Aron Petau - 2 player</title>
<subtitle>Mein Portfolio, Blog und allgemeine Präsenz online</subtitle>
<link rel="self" type="application/atom+xml" href="https://aron.petau.net/de/tags/2-player/atom.xml"/>
<link rel="alternate" type="text/html" href="https://aron.petau.net/"/>
<generator uri="https://www.getzola.org/">Zola</generator>
<updated>2022-03-01T00:00:00+00:00</updated>
<id>https://aron.petau.net/de/tags/2-player/atom.xml</id>
<entry xml:lang="de">
<title>Ballpark</title>
<published>2022-03-01T00:00:00+00:00</published>
<updated>2022-03-01T00:00:00+00:00</updated>
<author>
<name>
Aron Petau
</name>
</author>
<link rel="alternate" type="text/html" href="https://aron.petau.net/de/project/ballpark/"/>
<id>https://aron.petau.net/de/project/ballpark/</id>
<content type="html" xml:base="https://aron.petau.net/de/project/ballpark/">&lt;h2 id=&quot;Ballpark:_3D-Umgebungen_in_Unity&quot;&gt;Ballpark: 3D-Umgebungen in Unity&lt;&#x2F;h2&gt;
&lt;p&gt;Umgesetzt in Unity, ist &lt;strong&gt;Ballpark&lt;&#x2F;strong&gt; ein Konzept für ein &lt;strong&gt;kooperatives 2-Spieler-Spiel&lt;&#x2F;strong&gt;, bei dem ein Spieler als Navigator mit einer Third-Person-Perspektive agiert und der andere Spieler als Copilot für die Interaktion mit der Umgebung zuständig ist.&lt;br &#x2F;&gt;
Das Spiel verfügt über funktionierende Physik, intelligente Gegner, eine Waffe, ein Greifhaken-System zum Überqueren der Karte, eine 2D-Navigationsoberfläche und ein Health-Bar-System alles mit den düstersten Cyberpunk-Vibes, die ich damals zusammenbringen konnte.&lt;&#x2F;p&gt;
&lt;p&gt;Viel Spaß!&lt;&#x2F;p&gt;
&lt;iframe
class=&quot;youtube-embed&quot;
src=&quot;https:&#x2F;&#x2F;www.youtube-nocookie.com&#x2F;embed&#x2F;jwQWd9NPEIs&quot;
allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot;
referrerpolicy=&quot;strict-origin-when-cross-origin&quot; allowfullscreen&gt;
&lt;&#x2F;iframe&gt;
&lt;p&gt;Das Design enthält einige fragwürdige Entscheidungen, aber alle Mechaniken sind &lt;strong&gt;von Grund auf selbst entwickelt&lt;&#x2F;strong&gt;, und ich habe viel dabei gelernt. Ich spiele selten kompetitive Spiele, sehe aber Potenzial in einer &lt;strong&gt;kooperativen, voneinander abhängigen Spielmechanik&lt;&#x2F;strong&gt;. Schon das Tutorial erfordert intensive Spielerkommunikation.&lt;&#x2F;p&gt;
&lt;p&gt;Als Linkshänder habe ich Spieler eins die Pfeiltasten gegeben und Spieler zwei die WASD-Tasten sowie die linken und rechten Maustasten für Schießen und Greifhaken. Das führt zu einem interessanten Nebeneffekt: Spieler müssen nicht nur über unterschiedliche Informationen auf ihren Bildschirmen kommunizieren, sondern auch ihre Steuerung physisch koordinieren.&lt;&#x2F;p&gt;
&lt;p&gt;Die &lt;strong&gt;Ball-Navigation&lt;&#x2F;strong&gt; ist ziemlich schwer zu kontrollieren.&lt;br &#x2F;&gt;
Es handelt sich um ein &lt;strong&gt;rein physikbasiertes System&lt;&#x2F;strong&gt;, bei dem Material, Gewicht und Trägheit der Kugel die Bewegung stark beeinflussen.&lt;&#x2F;p&gt;
&lt;p&gt;Auf kleinen Bildschirmen ist die Steuerung praktisch unmöglich, und einige visuelle Bugs verdecken Objekte bei zu naher Ansicht. Dennoch, da fast alle Mechaniken von Grund auf programmiert wurden inklusive Follow-Camera, Kollisionsabfrage, smarten Agenten und einem noch etwas wackeligen Greifhaken verdient das Projekt einen Platz im Portfolio.&lt;&#x2F;p&gt;
&lt;p&gt;Für dieses Projekt habe ich mich komplett auf &lt;strong&gt;Mechaniken&lt;&#x2F;strong&gt; konzentriert, weshalb viele fertige Prefabs und 3D-Objekte verwendet wurden. Beim nächsten Mal möchte ich diese auch selbst erstellen.&lt;&#x2F;p&gt;
&lt;p&gt;Ich habe Unity sehr genossen und freue mich darauf, meine erste &lt;strong&gt;VR-Anwendung&lt;&#x2F;strong&gt; zu entwickeln.&lt;br &#x2F;&gt;
Ich möchte Mechaniken ausprobieren, bei denen die Sicht des Spielers durch VR komplett blockiert wird und die Augen als &lt;strong&gt;tragbare, verbundene Kamera&lt;&#x2F;strong&gt; bewegt werden, sodass die Spieler die Kamera selbst physisch steuern können.&lt;&#x2F;p&gt;
</content>
</entry>
</feed>

File diff suppressed because one or more lines are too long

View file

@ -1,3 +0,0 @@
<!doctype html><meta charset=utf-8><title>Redirect</title><script>const target = "https://aron.petau.net/de/tags/2-player/";
const hash = window.location.hash || "";
window.location.replace(target + hash);</script><noscript><meta content="0; url=https://aron.petau.net/de/tags/2-player/" http-equiv=refresh></noscript><p><a href=https://aron.petau.net/de/tags/2-player/>Click here</a> to be redirected.

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
<title>Aron Petau - 3D graphics</title>
<title>Aron Petau - 3d graphics</title>
<subtitle>Mein Portfolio, Blog und allgemeine Präsenz online</subtitle>
<link rel="self" type="application/atom+xml" href="https://aron.petau.net/de/tags/3d-graphics/atom.xml"/>
<link rel="alternate" type="text/html" href="https://aron.petau.net/"/>

File diff suppressed because one or more lines are too long

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
<title>Aron Petau - 3D printing</title>
<title>Aron Petau - 3d printing</title>
<subtitle>Mein Portfolio, Blog und allgemeine Präsenz online</subtitle>
<link rel="self" type="application/atom+xml" href="https://aron.petau.net/de/tags/3d-printing/atom.xml"/>
<link rel="alternate" type="text/html" href="https://aron.petau.net/"/>

File diff suppressed because one or more lines are too long

View file

@ -1,45 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
<title>Aron Petau - 3rd person</title>
<subtitle>Mein Portfolio, Blog und allgemeine Präsenz online</subtitle>
<link rel="self" type="application/atom+xml" href="https://aron.petau.net/de/tags/3rd-person/atom.xml"/>
<link rel="alternate" type="text/html" href="https://aron.petau.net/"/>
<generator uri="https://www.getzola.org/">Zola</generator>
<updated>2022-03-01T00:00:00+00:00</updated>
<id>https://aron.petau.net/de/tags/3rd-person/atom.xml</id>
<entry xml:lang="de">
<title>Ballpark</title>
<published>2022-03-01T00:00:00+00:00</published>
<updated>2022-03-01T00:00:00+00:00</updated>
<author>
<name>
Aron Petau
</name>
</author>
<link rel="alternate" type="text/html" href="https://aron.petau.net/de/project/ballpark/"/>
<id>https://aron.petau.net/de/project/ballpark/</id>
<content type="html" xml:base="https://aron.petau.net/de/project/ballpark/">&lt;h2 id=&quot;Ballpark:_3D-Umgebungen_in_Unity&quot;&gt;Ballpark: 3D-Umgebungen in Unity&lt;&#x2F;h2&gt;
&lt;p&gt;Umgesetzt in Unity, ist &lt;strong&gt;Ballpark&lt;&#x2F;strong&gt; ein Konzept für ein &lt;strong&gt;kooperatives 2-Spieler-Spiel&lt;&#x2F;strong&gt;, bei dem ein Spieler als Navigator mit einer Third-Person-Perspektive agiert und der andere Spieler als Copilot für die Interaktion mit der Umgebung zuständig ist.&lt;br &#x2F;&gt;
Das Spiel verfügt über funktionierende Physik, intelligente Gegner, eine Waffe, ein Greifhaken-System zum Überqueren der Karte, eine 2D-Navigationsoberfläche und ein Health-Bar-System alles mit den düstersten Cyberpunk-Vibes, die ich damals zusammenbringen konnte.&lt;&#x2F;p&gt;
&lt;p&gt;Viel Spaß!&lt;&#x2F;p&gt;
&lt;iframe
class=&quot;youtube-embed&quot;
src=&quot;https:&#x2F;&#x2F;www.youtube-nocookie.com&#x2F;embed&#x2F;jwQWd9NPEIs&quot;
allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot;
referrerpolicy=&quot;strict-origin-when-cross-origin&quot; allowfullscreen&gt;
&lt;&#x2F;iframe&gt;
&lt;p&gt;Das Design enthält einige fragwürdige Entscheidungen, aber alle Mechaniken sind &lt;strong&gt;von Grund auf selbst entwickelt&lt;&#x2F;strong&gt;, und ich habe viel dabei gelernt. Ich spiele selten kompetitive Spiele, sehe aber Potenzial in einer &lt;strong&gt;kooperativen, voneinander abhängigen Spielmechanik&lt;&#x2F;strong&gt;. Schon das Tutorial erfordert intensive Spielerkommunikation.&lt;&#x2F;p&gt;
&lt;p&gt;Als Linkshänder habe ich Spieler eins die Pfeiltasten gegeben und Spieler zwei die WASD-Tasten sowie die linken und rechten Maustasten für Schießen und Greifhaken. Das führt zu einem interessanten Nebeneffekt: Spieler müssen nicht nur über unterschiedliche Informationen auf ihren Bildschirmen kommunizieren, sondern auch ihre Steuerung physisch koordinieren.&lt;&#x2F;p&gt;
&lt;p&gt;Die &lt;strong&gt;Ball-Navigation&lt;&#x2F;strong&gt; ist ziemlich schwer zu kontrollieren.&lt;br &#x2F;&gt;
Es handelt sich um ein &lt;strong&gt;rein physikbasiertes System&lt;&#x2F;strong&gt;, bei dem Material, Gewicht und Trägheit der Kugel die Bewegung stark beeinflussen.&lt;&#x2F;p&gt;
&lt;p&gt;Auf kleinen Bildschirmen ist die Steuerung praktisch unmöglich, und einige visuelle Bugs verdecken Objekte bei zu naher Ansicht. Dennoch, da fast alle Mechaniken von Grund auf programmiert wurden inklusive Follow-Camera, Kollisionsabfrage, smarten Agenten und einem noch etwas wackeligen Greifhaken verdient das Projekt einen Platz im Portfolio.&lt;&#x2F;p&gt;
&lt;p&gt;Für dieses Projekt habe ich mich komplett auf &lt;strong&gt;Mechaniken&lt;&#x2F;strong&gt; konzentriert, weshalb viele fertige Prefabs und 3D-Objekte verwendet wurden. Beim nächsten Mal möchte ich diese auch selbst erstellen.&lt;&#x2F;p&gt;
&lt;p&gt;Ich habe Unity sehr genossen und freue mich darauf, meine erste &lt;strong&gt;VR-Anwendung&lt;&#x2F;strong&gt; zu entwickeln.&lt;br &#x2F;&gt;
Ich möchte Mechaniken ausprobieren, bei denen die Sicht des Spielers durch VR komplett blockiert wird und die Augen als &lt;strong&gt;tragbare, verbundene Kamera&lt;&#x2F;strong&gt; bewegt werden, sodass die Spieler die Kamera selbst physisch steuern können.&lt;&#x2F;p&gt;
</content>
</entry>
</feed>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -8,7 +8,7 @@
<updated>2023-12-06T00:00:00+00:00</updated>
<id>https://aron.petau.net/de/tags/activitypub/atom.xml</id>
<entry xml:lang="de">
<title>Übersetzung: Postmaster</title>
<title>Postmaster</title>
<published>2023-12-06T00:00:00+00:00</published>
<updated>2023-12-06T00:00:00+00:00</updated>
@ -22,22 +22,64 @@
<id>https://aron.petau.net/de/project/postmaster/</id>
<content type="html" xml:base="https://aron.petau.net/de/project/postmaster/">&lt;h2 id=&quot;Postmaster&quot;&gt;Postmaster&lt;&#x2F;h2&gt;
&lt;p&gt;Hello from &lt;a href=&quot;mailto:aron@petau.net&quot;&gt;aron@petau.net&lt;&#x2F;a&gt;!&lt;&#x2F;p&gt;
&lt;h2 id=&quot;Background&quot;&gt;Background&lt;&#x2F;h2&gt;
&lt;p&gt;Emails are a wondrous thing and I spend the last weeks digging a bit deeper in how they actually work.
Some people consider them the last domain of the decentralized dream the internet once had and that is now popping up again with federation and peer-to-peer networks as quite popular buzzwords.&lt;&#x2F;p&gt;
&lt;p&gt;We often forget that email is already a federated system and that it is likely the most important one we have.
It is the only way to communicate with people that do not use the same service as you do.
It has open standards and is not controlled by a single entity. Going without emails is unimaginable in today&#x27;s world, yet most providers are the familiar few from the silicon valley. And really, who wants their entire decentralized, federated, peer-to-peer network to be controlled by a schmuck from the silicon valley? Mails used to be more than that and they can still be.
Arguably, the world of messanging has gotten quite complex since emails popped up and there are more anti-spam AI tools that I would care to count. But the core of it is still the same and it is still a federated system.
Yet, also with Emails, Capitalism has held many victories, and today many emails that are sent from a provider that does not belong to the 5 or so big names are likely to be marked as spam. This is a problem that is not easily solved, but it is a problem that is worth solving.&lt;&#x2F;p&gt;
&lt;p&gt;Another issue with emails is security, as it is somehow collectively agreed upon that emails are a valid way to communicate business informations, while Whatsapp and Signal are not. These, at least when talking about messaging services with end-to-end encryption, are likely to be way more secure than emails.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;The_story&quot;&gt;The story&lt;&#x2F;h2&gt;
&lt;p&gt;So it came to pass, that I, as the only one in the family interested in operating it, &quot;inherited&quot; the family domain petau.net. All of our emails run through this service, that was previously managed by a web developer that was not interested in the domjobain anymore.&lt;&#x2F;p&gt;
&lt;p&gt;With lots of really secure Mail Providers like Protonmail or Tutanota, I went on a research spree, as to how I would like to manage my own service. Soon noticing that secure emails virtually always come with a price or with lacking interoperability with clients like Thunderbird or Outlook, I decided to go for migadu, a swiss provider that offers a good balance between security and usability. They also offer a student tier, which is a big plus.&lt;&#x2F;p&gt;
&lt;p&gt;While self-hosting seems like a great idea from a privacy perspective, it is also quite risky for a service that is usually the only way for any service to recover your password or your online identity.
Migadu it was then, and in the last three months of basically set it and forget it, i am proud to at least have a decently granular control over my emails and can consciously reflect on the server location of The skeleton service service that enables virtually my entire online existence.&lt;&#x2F;p&gt;
&lt;p&gt;I certainly crave more open protocols in my life and am also findable on &lt;a href=&quot;https:&#x2F;&#x2F;mastodon.online&#x2F;@reprintedAron&quot;&gt;Mastodon&lt;&#x2F;a&gt;, a microblogging network around the ActivityPub Protocol.&lt;&#x2F;p&gt;
&lt;p&gt;Hallo von &lt;a href=&quot;mailto:aron@petau.net&quot;&gt;aron@petau.net&lt;&#x2F;a&gt;!&lt;&#x2F;p&gt;
&lt;blockquote class=&quot;markdown-alert-note&quot;&gt;
&lt;p&gt;&lt;strong&gt;Update 2025:&lt;&#x2F;strong&gt; Der Service läuft seit über zwei Jahren reibungslos und
verwaltet 30+ E-Mail-Accounts für Familie und Freunde. Die Migadu-Wahl war
und ist goldrichtig!&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;h2 id=&quot;Hintergrund&quot;&gt;Hintergrund&lt;&#x2F;h2&gt;
&lt;p&gt;E-Mail ist eine wunderbare Sache, und ich habe die letzten Wochen damit
verbracht, tiefer zu verstehen, wie sie eigentlich funktioniert. Manche
betrachten sie als letzte Bastion des dezentralisierten Traums, den das
Internet einst hatte—ein Traum, der jetzt mit Föderation und Peer-to-Peer-
Netzwerken als populäre Schlagworte wieder auftaucht.&lt;&#x2F;p&gt;
&lt;p&gt;Wir vergessen oft, dass E-Mail &lt;em&gt;bereits&lt;&#x2F;em&gt; ein föderiertes System ist, und
wahrscheinlich das wichtigste, das wir haben. Es ist die einzige Möglichkeit,
mit Menschen zu kommunizieren, die nicht denselben Dienst nutzen wie du.
Es hat offene Standards und wird nicht von einer einzelnen Entität kontrolliert.&lt;&#x2F;p&gt;
&lt;p&gt;Ohne E-Mail zu leben ist in der heutigen Welt unvorstellbar, doch die
meisten Anbieter sind die üblichen Verdächtigen aus dem Silicon Valley.
Und mal ehrlich, wer will sein gesamtes dezentralisiertes, föderiertes,
Peer-to-Peer-Netzwerk von einem Tech-Giganten kontrollieren lassen?
E-Mails waren mal mehr als das, und sie können es immer noch sein.&lt;&#x2F;p&gt;
&lt;p&gt;Zugegeben, die Welt des Messaging ist seit der Erfindung von E-Mail komplex
geworden—es gibt mehr Anti-Spam-KI-Tools, als mir lieb ist. Aber der Kern
bleibt derselbe: ein föderiertes System. Doch der Kapitalismus hat auch hier
viele Siege errungen. Heute werden E-Mails von Anbietern außerhalb der
großen Fünf oft als Spam markiert. Dieses Problem lässt sich nicht leicht
lösen, aber es ist es wert, gelöst zu werden.&lt;&#x2F;p&gt;
&lt;p&gt;Ein weiteres Problem: Sicherheit. Es wurde irgendwie kollektiv vereinbart,
dass E-Mails für geschäftliche Kommunikation gültig sind, WhatsApp und
Signal aber nicht. Dabei sind Messaging-Dienste mit Ende-zu-Ende-
Verschlüsselung wahrscheinlich weitaus sicherer als traditionelle E-Mail.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;Die_Geschichte&quot;&gt;Die Geschichte&lt;&#x2F;h2&gt;
&lt;p&gt;So kam es, dass ich als einziges Familienmitglied, das sich dafür
interessierte, die Familien-Domain &lt;strong&gt;petau.net&lt;&#x2F;strong&gt; &quot;geerbt&quot; habe. Alle unsere
E-Mails laufen über diesen Service, der zuvor von einem Webentwickler
verwaltet wurde, der das Interesse verloren hatte.&lt;&#x2F;p&gt;
&lt;p&gt;Mit sicheren E-Mail-Anbietern wie ProtonMail oder Tutanota auf dem Markt
begab ich mich auf eine Recherchereise, um zu bestimmen, wie ich unsere
Domain verwalten würde. Mir fiel schnell auf, dass &quot;sichere&quot; E-Mail quasi
immer mit einem Preisschild kommt oder keine Interoperabilität mit Clients
wie Thunderbird oder Outlook bietet.&lt;&#x2F;p&gt;
&lt;p&gt;Ich entschied mich für &lt;a href=&quot;https:&#x2F;&#x2F;www.migadu.com&#x2F;&quot;&gt;Migadu&lt;&#x2F;a&gt;, einen Schweizer
Anbieter, der eine gute Balance zwischen Sicherheit und Benutzerfreundlichkeit
bietet. Sie haben auch einen Studententarif—ein großes Plus.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;Warum_kein_Self-Hosting?&quot;&gt;Warum kein Self-Hosting?&lt;&#x2F;h3&gt;
&lt;p&gt;Während Self-Hosting aus Datenschutzsicht ideal scheint, ist es riskant für
einen Dienst, der oft die &lt;em&gt;einzige&lt;&#x2F;em&gt; Möglichkeit ist, Passwörter oder die
Online-Identität wiederherzustellen. Wenn dein Server während eines kritischen
Passwort-Resets ausfällt... nun ja, viel Glück.&lt;&#x2F;p&gt;
&lt;p&gt;Also Migadu. Nach zwei Jahren &quot;Set it and forget it&quot; bin ich stolz darauf,
granulare Kontrolle über unsere E-Mails zu haben und dabei bewusst über den
Serverstandort dieses Skelettdienstes nachzudenken, der praktisch unsere
gesamte Online-Existenz ermöglicht.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;Jenseits_der_E-Mail&quot;&gt;Jenseits der E-Mail&lt;&#x2F;h2&gt;
&lt;p&gt;Ich sehne mich sicherlich nach mehr offenen Protokollen in meinem Leben.
Du findest mich auch auf &lt;a href=&quot;https:&#x2F;&#x2F;mastodon.online&#x2F;@reprintedAron&quot;&gt;Mastodon&lt;&#x2F;a&gt;,
einem Microblogging-Netzwerk, das auf dem ActivityPub-Protokoll basiert—ein
weiterer Schritt in Richtung eines dezentraleren Internets.&lt;&#x2F;p&gt;
</content>
</entry>

File diff suppressed because one or more lines are too long

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