算法艺术创作
algorithmic-art
通过代码和可调参数创作生成艺术与交互式视觉效果。
interactive-flowchart-builder【设计与创意】Build interactive "living workflow" flowcharts in the visual style of https://statuesque-starship-49757d.netlify.app/revenue-engine - vanilla HTML/CSS/JS files with a horizontal step bar, a vertical trunk that grows per step, tool-to-tool columns with animated payload pills between brand-marked tool nodes, alternating left/right step descriptions, an…
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
User asks for an interactive multi-step process flowchart with tools, edges, and animated data flow - especially one modeled on the Nebor site's "living workflow" pattern. If the user just wants a static diagram, a Mermaid chart, or a slide-deck flowchart, hand off to a different skill - this one specifically produces the Nebor-style vanilla-JS animated flowchart.
The output should match the rendering pattern of:
All three use the same vanilla-JS engine driven by two globals: window.NEBOR_TOOLS and window.NEBOR_WORKFLOW. Reproduce that engine.
Print exactly this block and wait:
Which flowchart would you like me to build?
- Revenue Engine / Sales Engine & GTM - Identify → Enrich → Personalize → Send → Qualify → Book
- Demand Gen & ABM - audience build → signal capture → orchestrated plays → measurement
- CRM & RevOps - audit → model → automate → report → govern
- Custom - tell me the domain, steps, and tools and I'll design it
Reply with
1,2,3, or4(with details).
Once the user picks an option, produce a compact markdown table with:
desc per steproles map (one sentence per tool, per step)flow edges - each with from, to, proto (one of api / webhook / event / sql / llm), labeloutput per step (e.g. "1,284 ranked accounts written to HubSpot - weekly refresh")End with: "Approve as-is, or change anything before I generate the files?"
Do not generate any files until the user types an approval (yes / approved / ship it / etc.).
After approval, write three files into the current working directory (or a path the user specifies):
index.html - DOM skeleton + inline CSS + script tagstools.js - populates window.NEBOR_TOOLSworkflow.js - populates window.NEBOR_WORKFLOW + the renderer + animation loop<section class="workflow">
<div class="workflow-track"><div class="workflow-track-fill"></div></div>
<div id="wf-nodes" class="wf-nodes"></div>
<h3 id="wf-title"></h3>
<p id="wf-desc"></p>
<div id="wf-cumulative" class="wf-cumulative"></div>
<div id="wf-output" class="wf-output"></div>
</section>
<script src="tools.js"></script>
<script src="workflow.js"></script>
window.NEBOR_TOOLS = {
"<slug>": {
name: "<Display Name>",
color: "#HEX",
cat: "<Category>", // CRM, Data, Enrichment, LLM, Outreach, Analytics, etc.
fb: "Xx", // 2-letter fallback mark
domain: "<example.com>", // optional
desc: "<one-sentence why-this-tool>"
}
};
window.NEBOR_WORKFLOW = [
{
step: "Identify",
desc: "TAM mapped from firmographics, tech-stack, and intent.",
tools: ["apollo", "clay", "builtwith", "hubspot"],
roles: {
apollo: "Sources accounts from firmographic + funding filters",
clay: "Orchestrates enrichment passes across 50+ providers",
// one role per tool
},
flow: [
{ from: "apollo", to: "clay", proto: "api", label: "POST /accounts" },
{ from: "builtwith", to: "clay", proto: "api", label: "tech.signals" },
{ from: "clay", to: "hubspot", proto: "webhook", label: "ranked.json" }
],
output: "1,284 ranked accounts written to HubSpot - weekly refresh"
}
];
NEBOR_WORKFLOW. Auto-advance every 4-6s; clicking a step jumps to it.root and merge markers..tree-section containing: .trunk-root (number + step name) → .trunk-fork (horizontal bar) → .trunk-cols[data-cols=N] (columns of from-tool → animated .tree-payload on .tree-wire → to-tool) → .trunk-merge.past and status pill "wired"; the current step renders with class current and pill "live".fb mark) + tool name + hover tooltip with the step-specific role..tree-payload by proto:
api - indigo (#4F46E5)webhook - teal (#0D9488)event - amber (#D97706)sql - violet (#7C3AED)llm - rose (#E11D48)#F5F1EA. Ink: #15140F.After writing files, print:
cd <dir> && python3 -m http.server 8000 then open http://localhost:8000.NEBOR_WORKFLOW in workflow.js.NEBOR_TOOLS in tools.js.tools.js and workflow.js into one file unless the user asks - keeping them split is what makes the flowchart editable.step, desc, tools, roles (one per tool), flow, output.flow.from, flow.to, or tools[] exists as a key in NEBOR_TOOLS.proto (api | webhook | event | sql | llm) and a human label.index.html open in the browser (no build step).