ThatAIguyA world of ideas

THE CONSCIOUSNESS ATLAS
Read. Experiment. Follow the evidence.

ConsciousnessLearn · Explore · Joseph Anady

Janady13/thatdeveloperguy-website / creative-source/plates/make-vectors.py

Source identity, revision, and recovered contents.

GitHub sourceSource text recovered

Source identity

FieldRecorded value
Source typeGitHub source
Original recordJanady13/thatdeveloperguy-website / creative-source/plates/make-vectors.py
DateNot specified in source
RepositoryJanady13/thatdeveloperguy-website
Revision2bea2ebdff0e34494bff597d4fa9c8422a0c3a94
Branchmain
Path or archive membercreative-source/plates/make-vectors.py
Original SHA-256342fec1ffc16181f5d7450a25e5c7bea3596f3bafef86e55131a19769f426d5d
Git blob SHA9112ad2277d19d7232e245a6c52593fe78b771a0
Reading-copy SHA-256342fec1ffc16181f5d7450a25e5c7bea3596f3bafef86e55131a19769f426d5d

Original source ↗

Recovered source transcript

#!/usr/bin/env python3 """Vector prep/consume for one room. `prep`: writes <room>/vec/upload/*.png (2x clean plate + chroma-keyed 4x movers) for Adobe image_vectorize. `consume`: reads <room>/vec/svg/<name>.svg (downloaded Adobe outputs), converts to RML shape fragments in <room>/vec/rml/<name>.rml.json. python3 make-vectors.py it-services.json prep | consume""" import json, sys, os, numpy as np from pathlib import Path from PIL import Image sys.path.insert(0, str(Path(__file__).resolve().parents[2] / "tools")) from svg2rml import svg_to_shapes cfg = json.load(open(sys.argv[1])); mode = sys.argv[2]; out = Path(sys.argv[1]).parent / cfg["name"]; vec = out / "vec" KEY = (255, 0, 255) if mode == "prep": (vec / "upload").mkdir(parents=True, exist_ok=True) p4 = Image.open(out / "bg_plate_4x.png"); p4.resize((p4.width // 2, p4.height // 2), Image.LANCZOS).save(vec / "upload" / "bg_plate.png") man = json.load(open(out / "layers4x" / "manifest.json")) for name in man["layers"]: im = np.asarray(Image.open(out / "layers4x" / f"{name}.png").convert("RGBA")).astype(np.float32) a = im[..., 3:] / 255; rgb = im[..., :3] * a + np.array(KEY, np.float32) * (1 - a) Image.fromarray(rgb.round().astype(np.uint8)).save(vec / "upload" / f"{name}.png") sizes = {f: os.path.getsize(vec / "upload" / f) for f in sorted(os.listdir(vec / "upload"))} json.dump(sizes, open(vec / "upload" / "sizes.json", "w"), indent=1); print(json.dumps(sizes, indent=1)) elif mode == "consume": (vec / "rml").mkdir(parents=True, exist_ok=True) man = json.load(open(out / "layers4x" / "manifest.json")); report = {} for svg_file in sorted((vec / "svg").glob("*.svg")): name = svg_file.stem; svg = svg_file.read_text() import re as _re sw = float(_re.search(r'<svg[^>]*\swidth="([\d.]+)"', svg).group(1)) # Adobe may resample; scale from the SVG's own width if name == "bg_plate": shapes, st = svg_to_shapes(svg, scale=1672 / sw, dx=0, dy=0, name_prefix="bg", min_area=float(os.environ.get("MIN_AREA","8"))) else: l = man["layers"][name] shapes, st = svg_to_shapes(svg, scale=(l["w"] / 4) / sw, dx=l["x"] / 4, dy=l["y"] / 4, name_prefix=name, drop_fill=KEY, drop_tolerance=90, min_area=float(os.environ.get("MIN_AREA","8"))) json.dump({"name": name, "shapes": shapes, "stats": st}, open(vec / "rml" / f"{name}.json", "w")) report[name] = st print(json.dumps(report, indent=1))

Search equations, builds, manuscript text, and recovered sources.