FloxHub publication `bmorphism/ies` - a focused development environment for Clojure, Julia, Python, and multimedia with Gay.jl/Gay.bb deterministic coloring integration.
/plugin marketplace add plurigrid/asi/plugin install plurigrid-asi-skills@plurigrid/asiThis skill inherits all available tools. When active, it can use any tool Claude has access to.
FloxHub publication bmorphism/ies - a focused development environment for Clojure, Julia, Python, and multimedia with Gay.jl/Gay.bb deterministic coloring integration.
| Property | ies-flox | effective-topos |
|---|---|---|
| Focus | Data/scripting | Systems/languages |
| Packages | 10 | 62 |
| Man pages | 59 | 606 |
| Key tools | babashka, julia, ffmpeg | guile, ghc, cargo |
| Coloring | Gay.bb (Clojure) | Gay.jl (Julia) |
# Activate
flox activate -d ~/ies
# Environment includes
echo $GAY_SEED # 69
echo $GAY_PORT # 42069
echo $GAY_INTERVAL # 30
| Package | Version | Man Pages | Description |
|---|---|---|---|
| babashka | 1.12.208 | bb(1) | Clojure scripting |
| clojure | 1.12.2.1565 | clj(1), clojure(1) | JVM Lisp |
| jdk | 21.0.8 | java(1) + 45 tools | OpenJDK |
| julia-bin | 1.11.7 | julia(1) | Technical computing |
| ffmpeg | 7.1.1 | ffmpeg(1) + 10 tools | Media processing |
| python312 | 3.12.11 | python3(1) | Python interpreter |
| coreutils | 9.8 | 100+ commands | GNU utilities |
| tailscale | 1.88.4 | tailscale(1) | Mesh VPN |
| enchant2 | 2.6.9 | enchant(1) | Spell checking |
| pkg-config | 0.29.2 | pkg-config(1) | Build configuration |
#!/usr/bin/env bb
;; Fast Clojure scripting without JVM startup
;; Includes: http, json, csv, yaml, sql, shell, fs
(require '[babashka.http-client :as http])
(require '[cheshire.core :as json])
;; HTTP request
(-> (http/get "https://api.github.com/users/bmorphism")
:body
(json/parse-string true)
:public_repos)
;; File operations
(require '[babashka.fs :as fs])
(fs/glob "." "**/*.clj")
;; Shell commands
(require '[babashka.process :as p])
(-> (p/shell "ls -la") :out slurp)
;; Tasks in bb.edn
{:tasks
{:build (shell "make")
:test (shell "make test")
:repl (babashka.nrepl.server/start-server! {:port 1667})}}
;; gay.bb - deterministic coloring for Clojure
(def gay-seed (parse-long (or (System/getenv "GAY_SEED") "69")))
(defn splitmix64 [state]
(let [z (unchecked-add state 0x9e3779b97f4a7c15)]
[(unchecked-multiply
(bit-xor z (unsigned-bit-shift-right z 30))
0xbf58476d1ce4e5b9)
z]))
(defn gay-color [index seed]
(let [[h _] (splitmix64 (+ seed index))
hue (mod (/ (bit-and h 0xFFFF) 65535.0) 1.0)]
{:hue hue
:hex (format "#%06X" (bit-and h 0xFFFFFF))}))
# julia --project=$GAY_MCP_PROJECT
using Gay
# Environment seed
const SEED = parse(Int, get(ENV, "GAY_SEED", "69"))
Gay.set_seed!(SEED)
# Color IES packages
ies_packages = [
"babashka", "clojure", "jdk", "julia-bin", "ffmpeg",
"python312", "coreutils", "tailscale", "enchant2", "pkg-config"
]
for (i, pkg) in enumerate(ies_packages)
color = Gay.color_at(i)
println("$pkg: $(color.hex)")
end
# Convert formats
ffmpeg -i input.mov -c:v libx264 output.mp4
# Extract audio
ffmpeg -i video.mp4 -vn -c:a aac audio.m4a
# Resize video
ffmpeg -i input.mp4 -vf scale=1280:720 output.mp4
# Create GIF
ffmpeg -i input.mp4 -vf "fps=10,scale=320:-1" output.gif
# Concatenate
ffmpeg -f concat -i list.txt -c copy output.mp4
# Screen capture (macOS)
ffmpeg -f avfoundation -i "1" -t 10 capture.mp4
# Stream to stdout
ffmpeg -i input.mp4 -f mpegts - | ...
# Start REPL
clj
# With aliases
clj -A:dev:test
# Run script
clojure -M -m myapp.core
# Dependency tree
clj -Stree
# Execute function
clojure -X:deploy
# deps.edn structure
{:deps {org.clojure/clojure {:mvn/version "1.12.0"}}
:aliases {:dev {:extra-paths ["dev"]}}}
#!/usr/bin/env python3
"""Gay.py - port of Gay.jl for Python"""
def splitmix64(state: int) -> tuple[int, int]:
z = (state + 0x9e3779b97f4a7c15) & 0xFFFFFFFFFFFFFFFF
z = ((z ^ (z >> 30)) * 0xBF58476D1CE4E5B9) & 0xFFFFFFFFFFFFFFFF
z = ((z ^ (z >> 27)) * 0x94D049BB133111EB) & 0xFFFFFFFFFFFFFFFF
return z ^ (z >> 31), state
def gay_color(index: int, seed: int = 69) -> str:
h, _ = splitmix64(seed + index)
return f"#{h & 0xFFFFFF:06X}"
# Color IES packages
packages = ["babashka", "clojure", "jdk", "julia-bin", "ffmpeg"]
for i, pkg in enumerate(packages, 1):
print(f"{pkg}: {gay_color(i)}")
# From manifest.toml
[services]
gaybb.command = "./gaybb_daemon.sh"
gaybb.shutdown.command = "pkill -f gaybb_daemon"
# Start Gay.bb daemon
flox services start
# Check status
flox services status
# Stop
flox services stop
# Connect to tailnet
tailscale up
# Check status
tailscale status
# SSH to peer
tailscale ssh hostname
# Serve locally
tailscale serve http://localhost:8080
# Funnel (public internet)
tailscale funnel https://localhost:443
;; Use tailscale for Gay.bb peer discovery
(require '[babashka.process :as p])
(defn tailscale-peers []
(-> (p/shell {:out :string} "tailscale status --json")
:out
(json/parse-string true)
:Peer
vals
(->> (map :HostName))))
(defn broadcast-gay-seed! [seed]
(doseq [peer (tailscale-peers)]
(p/shell (format "tailscale ssh %s 'export GAY_SEED=%d'" peer seed))))
# From profile
alias gaybb="bb gay.bb"
alias gaymcp="julia --project=$GAY_MCP_PROJECT $GAY_MCP_PROJECT/bin/gay-mcp"
The ies-flox environment is designed to interoperate with effective-topos:
# Activate both environments
flox activate -d ~/.topos # effective-topos (guile, ghc, cargo)
flox activate -d ~/ies # ies-flox (bb, julia, ffmpeg)
# Or compose them
cd ~/ies
flox edit # Add include:
# [include]
# environments = [{ remote = "bmorphism/effective-topos" }]
Trit 0 (Analysis): julia → analyze data
Trit 1 (Transform): bb → process with Clojure
Trit 2 (Output): ffmpeg → render media
;; bb pipeline
(defn triadic-pipeline [input-file]
(let [;; Trit 0: Julia analysis
analysis (-> (p/shell {:out :string}
(format "julia -e 'using JSON; println(JSON.json(analyze(\"%s\")))'"
input-file))
:out
json/parse-string)
;; Trit 1: Clojure transform
transformed (transform-data analysis)
;; Trit 2: FFmpeg render
_ (p/shell (format "ffmpeg -i %s -vf 'eq=gamma=%f' output.mp4"
input-file
(:gamma transformed)))]
{:analysis analysis
:output "output.mp4"}))