Training Example: Nodes – Review the Data, Give Your Score & Compare to the Real AI Evaluation

Industry Context — Common BS Fingerprints in Software, SaaS & Tech Products
Generic Claims: the all-in-one platform, trusted by thousands of companies, increase productivity by X percent, save hours every week…
Red Flags: AI claims without explaining what the AI does, customer logos without case study or testimonial evidence, no live product access or demo, SOC 2 claims without audit period or report availability…
Semantic Drift Patterns: homepage claims AI-powered but product is rules-based, claims enterprise-grade but pricing page shows startup tiers only, homepage shows Fortune 500 logos but case studies are small businesses, claims all-in-one but integration page shows critical missing pieces…
Proof Expectations: live product demo or free trial access, specific feature documentation with screenshots, verified customer logos with published case studies, third-party review scores on G2, Capterra, or TrustRadius…

Nodes

(https://nodes.io) 📸 Data Snapshot: May 25, 2026

Analyze the raw signals below. How would a machine score this business’s credibility?

Here are the exact signals captured from up to six pages of the site — the same raw inputs the evaluation engine analyzed. They are grouped by signal type so you can weigh each the way the machine does.

🏗️ Semantic Structure — heading hierarchy & page identity (Info Density · Commodity Fingerprint)
HOMEPAGE Home · Nodes – a new way to create with code | https://nodes.io (https://nodes.io)
Title

Home · Nodes – a new way to create with code | https://nodes.io

H1 Nodes
H2 Nodes is your thinking space for exploring ideas with code.
H2 Visual programming made simple
H2 Nodes for everyone
H2 First Steps
H2 Showcase
H2 The team behind Nodes
H2 What's new in Nodes?
H3 Write reusable code blocks – Nodes
H3 Combine them into larger programs
H3 Annotate, remix, experiment
H3 Create realtime 3D graphics
H3 Build interactive web apps
H3 Generate procedural geometries
H3 Create bespoke tools
H3 Parse, analyse, explore and visualise data
H3 Build simple prototypes or complex multi-stage applications
H3 Playground
H3 Getting Started
H3 Tutorial
H3 IBM Technology Garden
H3 DN&CO Broadgate
H3 GSK Visualising Advanced Technology
H3 Used on projects for
H3 Marcin Ignac
H3 Damien Seguin
H3 Nick Nikolov
H4 3D ARTIST / CREATIVE DEVELOPER
H4 WEB & FRONT-END DEVELOPER
H4 COMPUTATIONAL DESIGNER
H4 DESIGNER / CLIENTS
H4 DATA SCIENTIST / VISUALIZATION SPECIALIST
H4 INDEPENDENT / AGENCY / BRAND
H4 Interactive Installation
H4 Generative Identity
H4 Data Art
H4 Co-founder, CEO
H4 Co-founder, CTO
H4 Co-founder
NAV_HEADER_HEADING_REPEATED_BODY Playground · Nodes – a new way to create with code | https://nodes.io (https://nodes.io/playground/)
Title

Playground · Nodes – a new way to create with code | https://nodes.io

H1 Nodes
H2 ¶Beginner
H2 ¶Intermediate
H2 ¶Advanced
H2 What's new in Nodes?
H3 Hello World
H3 Generative identity
H3 Basic WebGL
H3 p5 boids
H3 three.js basic
H3 Procedural landscape
H3 Globe
H3 Renderer
H3 Data visualisation
H3 GPU particles
H3 Generative geometry
NAV_HEADER_HEADING_REPEATED_BODY Story · Nodes – a new way to create with code | https://nodes.io (https://nodes.io/story/)
Title

Story · Nodes – a new way to create with code | https://nodes.io

H1 Nodes
H2 ¶Intro
H2 ¶Quick primer on visual programming
H2 ¶Background
H2 ¶Features
H2 ¶Technology
H2 ¶Use Cases
H2 ¶Learnings and Observations
H2 ¶Appendix
H2 What's new in Nodes?
H3 Motivations and inspirations
H3 Node-based programming
H3 Anatomy of a node
H3 Graph Editing
H3 Built-in code editor
H3 Powerful search
H3 Graph State Visualisation
H3 Static and dynamic node comments
H3 Export and publishing
H3 Core
H3 User-space
H3 Visual Literate Programming
H3 Sketching In Code
H3 Short history and evolution of the interface
NAV_HEADER_HEADING Documentation · Nodes – a new way to create with code | https://nodes.io (https://nodes.io/docs/)
Title

Documentation · Nodes – a new way to create with code | https://nodes.io

H1 Nodes
H2 What's new in Nodes?
📝 The Narrative — clean text per page (Info Density · Semantic Coherence)
HOMEPAGE (https://nodes.io) Home · Nodes – a new way to create with code | https://nodes.io
[H2] Nodes is your thinking space for exploring ideas with code.
What if programming was about ideas, not semicolons? Compose, abstract, generalise. Start from top down or bottom up and refine as you go. With Nodes, programming feels like sketching on a canvas. Zoom in and out of problems, experiment on the side and easily re-use parts of other projects.Nodes is created by variable.io, a generative design and data visualisation studio.LEARN THE STORY Download Nodes
[H2] Visual programming made simple
[H3] Write reusable code blocks - Nodes
[H3] Combine them into larger programs
[H3] Annotate, remix, experiment
TRY IN THE PLAYGROUND
[H2] Nodes for everyone
Use any WebGL framework and export videos from your 3D scenes.Use the DOM with HTML, CSS and JavaScript to create applications, desktop or mobile alike.Create your models from the ground up and export them to reuse in other tools such as Blender.Export a subset of your parameters for tech savvy clients or other designers to use.Use your favourite toolchain (Ramda, D3…), connect the dots and save transformed data files in any format (csv, json).Scale from a collection of small experiments to large scale installations.
[H2] First Steps
[H2] Showcase
[H3] Used on projects for
[H2] The team behind Nodes
[H3] Marcin Ignac
[H4] Co-founder, CEO
[H3] Damien Seguin
[H4] Co-founder, CTO
[H3] Nick Nikolov
[H4] Co-founder
Simon Harris: contributorAlice Cappo: brand identityCHECK OUT VARIABLE.IO
[H2] What's new in Nodes?
Subscribe to our newsletter to be the first to know about new releases...
1557 chars
SUB-PAGE · THIN (https://nodes.io/playground/) Playground · Nodes – a new way to create with code | https://nodes.io
[H1] Playground
[H2] What's new in Nodes?
Subscribe to our newsletter to be the first to know about new releases...
115 chars
SUB-PAGE (https://nodes.io/story/) Story · Nodes – a new way to create with code | https://nodes.io
[H1] The Story
[H2] ¶Intro
Nodes is a JavaScript-based 2D canvas for computational thinking. It’s powered by web technologies and the npm ecosystem. We take inspiration from popular node-based tools but strive to bring the visual interface and textual code closer together while also encouraging patterns that aid the programmer in the prototype and exploratory stage of their process.Nodes was created and developed by Nick Nikolov, Marcin Ignac and Damien Seguin since 2017 inside Variable. Even as the very nature of the tool is to experiment and explore new ways to play with code and data, Nodes has been used in several production-grade projects and tested in various real-world scenarios. We have used it to create realtime 3D graphics installations, explore and visualise data, experiment with AI and export results in various formats like images for print, videos for social media, 3D models for mobile AR and data files for further processing.On this page we are going to explain our motivations, the evolution and the current state of Nodes and how it changed our approach to creative coding.
[H2] ¶Quick primer on visual programming
In some programming tools, the actual language is visual: instead of writing text you construct your program visually. Think Scratch, or a more modern take like Luna which technically has a dual nature, both visual and textual.ScratchLunaMost of the popular visual programming tools today use a visual interface as an abstraction just one level above textual code. Instead of files, you have 2D representations of your program, very often in the form of rectangular shapes connected by wires. Much like similarities in programming language syntaxes (use of for loops and class constructs), visual tools tend to be rectangles wired up together representing data flows. This makes them very popular in areas like visual effects programming, real-time graphics, data-processing pipelines, procedural architecture and so on.Houdini‎Artificial Intelligence is another area where computational graphs – such as Neural Networks – are likely to be visualised with nodes and wires.Netron
[H2] ¶Background
[H3] Motivations and inspirations
At Variable, our data visualisation and generative design studio, we are programmers first and foremost. But each of us has their own unique background be it in interaction and graphic design, real-time graphics, new media art, music production etc. What these fields have in common is that artists rely on professional-grade, typically very visual and sophisticated software-based tools. As our main medium of expression shifted to code, we’ve enjoyed unparalleled creative flexibility but at the same time we traded that for our ability to “see”.Visual programming tools are as old as computer monitors. Serious web-based implementations however have been rare and impractical. Today, JavaScript and the npm ecosystem offer a wide variety of actively maintained open-source libraries for creative, visual, generative and data-driven projects. Furthermore, modern browsers provide an ubiquitous, networked, collaborative platform that is hard to match. Instead of creating another bespoke and isolated tool, we opted to extend and enhance an already existing and productive environment.When we set off to create a tool of our own, there were already plenty of different node-based or visual scripting/programming tools and environments; VVVV, Houdini, TouchDesigner, Cables.gl, Vizor Patches, Lichen, MaxMSP, UE4 Blueprints and Origami were among the most popular. Since the genesis of Nodes, we have encountered even more: some old, some brand new like the latest Unity Visual Effects Graph. Looking at it this way, it’s hard to see why the world needed yet another one of those but when dissecting most of them in-depth, one quickly sees the limitations and various trade-offs each particular tool forces you to make. None in particular offers the JavaScript and npm-first, programmer heavy approach of Nodes.We made a provisional breakdown of the modern visual and web-based programming landscape in this Visual Tools Landscape Figma Board. You can see a high res version here: visual-tools-landscape.pdf.visual-tools-landscape.pdf
[H2] ¶Features
Version 1.0.0 beta has been released in the fall 2020.You use Nodes by downloading the app. A cloud-based version for collaboration and client work was always one of our goals but isn’t a priority just yet. The benefit of running locally is that you maintain control over your data and don’t have to worry about assets sizes.
[H3] Node-based programming
In Nodes, you write programs by connecting “blocks” of code. Each node – as we refer to them – is a self contained piece of functionality like loading a file, rendering a 3D geometry or tracking the position of the mouse. The source code can be as big or as tiny as you like. We’ve seen some of ours ranging from 5 lines of code to the thousands. Conceptual/functional separation is usually more important.You create a node by double clicking anywhere on the Graph Editor canvas and then choosing a node from a list of templates. Nodes can declare public properties called ports allowing them to receive and send data via connections. There are two types of ports:Trigger: expected to be updated every frame for realtime applications. We use those to define node hierarchy like render graph or UI widget tree. Because of their nature, we sometimes say they are “live”.Param: used to send data between nodes, updated only if their value changes. Examples might be: cube size, image url, material colour etc.So what’s happening here?We start at the Canvas node: on requestAnimationFrame (ideally 60 times per second), the Canvas node is firing its triggerOut callback and passing a “props” object to child nodes (think how React is passing props to child components). In this case, the props contain a reference to a Canvas 2D drawing context.That reference is used by the Background Color node to clear the background. It’s then passed further down to the Blend node, enabling multiplicative blending.Next, we split into two branches, each one receiving the same props on every frame via a trigger callback:The Time node tracks time passed and outputs that value to a port called time.The Rectangle node draws a red rectangle whose width and height equal to its radius port. We additionally connect Time.time out port to Rectangle.rotation in order to animate it.
[H3] Anatomy of a node
Each node is defined by its code. Declaring triggers or ports and then evaluating the node, updates the graph view of the node. It also populates the inspector with widgets reflecting the different port types.Click for high res versionIncoming trigger - connection from parent nodeOutgoing trigger - connection to child nodesIncoming parameter - with type colour resulting in a colour picker widget in the inspectorImporting a package from npm (has to be added to the project first)Trigger callback - this is usually called every frameReading properties provided by the parent nodeReading input parameter valueMain node code - drawing a rectangle with a given colourPassing data further down to the child nodes
[H3] Graph Editing
The graph canvas is of unlimited size which allows you to organise your code spatially and navigate around by panning (space + drag) and zooming (mouse scroll) or search (/ + type), see Powerful Search section below.You can select a node by clicking on it or select multiple nodes by Shift + Click or drawing selection rectangle around them. Nodes can be deleted by pressing Backspace, and duplicated using copy (Ctrl/Cmd+C) and paste (Ctrl/Cmd+V). We support copying and pasting nodes between different graphs and browser windows. As the copied node is simply a piece of JSON, you can even paste piece of graph into an e-mail or Slack message.It’s also possible to Undo/Redo your modifications using the habitual Cmd/Ctrl+Z and Cmd/Ctrl+Shift+Z key combinations.
[H3] Built-in code editor
One common differentiation between visual programming tools is the level of abstraction they operate on. Some tools, like Origami, are meant to prototype interactions of user interfaces and not much more. Others, like Pure Data for instance, are meant to be very low-level and let users craft their own environments. Some, like UE4 Blueprints or the Unity Visual Effects Graph, are embedded and part of a larger system (e.g. a game engine environment).Nodes is more directly comparable to Cables.gl, FlowHub or MaxMSP but there are less preconceptions on what you use it for. Unlike most of them, Nodes adopt a more programmer-first approach where the nodes themselves are generally a lot more high-level and users are encouraged to peek inside, copy, modify, and write their own. While you could drop on a lower level and express language-level semantics like if-checks and for-loops, or math concepts like add or multiply on a node level, we generally don’t feel it is a productive way to work and prefer to write logic in a textual programming language. This approach might feel conceptually familiar if you have used NoFlo before.Whatever your preference, with the built-in code editor, we are able to fluently move between such levels of abstraction and create nodes that range from rounding up a number to a complicated particle system running on the GPU. Edge cases can be handled by simply copying a node and adding more code. Reusable components can be created by splitting big nodes into smaller ones. As long as we keep the corresponding types of input/output ports intact, this can be done live on a running graph without needing to reload the whole application. We focused on opening, modifying and seeing changes as straightforwardly and instantly as possible.This brings us to the most powerful feature of the code editor: live eval. At any point in time while editing the code, you can evaluate it by pressing shift + enter. All ports already present in the node will have their values and connections preserved. If you make a mistake or typo, you can edit the code and compile again or roll back to the last saved version.Changing code on the fly while the state and relationships are both persistent and dynamic can be very freeing. If we introduce far ranging and disruptive changes, all nodes with errors will be highlighted in the graph and are usually quick to find and fix. Nodes tries to preserve the last working state as much as possible giving the programmer a chance to fix all mistakes until everything runs smoothly again.Errors: highlighted in red
[H3] Powerful search
While an unlimited 2D canvas can be very helpful to think about the “bigger picture” and reason about the architecture of your app, zooming in and jumping around the codebase should be just as fast and fluid. To search the graph, you can simply press / and start typing. Use up/down arrows to jump between results and automatically focus on the given node. To search for actual node code, you can prefix your search query with ". For example, type "ctx.texture2D to find all nodes that call the ctx.texture2D function. You can then select a node using arrows and press enter to open code editor. The editor opens at the line of code that matched your query.
[H3] Graph State Visualisation
To help you better understand the internal flow of the application, we fade out nodes with trigger ports that haven’t been updated in the last frame. Similarly, the profiling mode visualises the CPU usage of each node. By colouring nodes by the amount of time the trigger took in the previous frame, we can identify hot paths of the graph that are worth optimising.Profiler view: slow path in graph caused by one node further down.We think we are just scratching the surface here and other similar dynamic visualisations of the source code and the program logic can be very helpful in large projects.Before Nodes, we would very often create custom “debug views” alongside the deliverable of our projects; it now happens right in the graph.
[H3] Static and dynamic node comments
Continuing that line of thinking, you can create a generic textual comment box using alt + left mouse click. We allow for some basic colour and font size options.You also have access to dynamic comments by adding node.comment = 'my comment' inside a node’s code at any point. They appear below the name of the node in the Graph Editor view.We use this feature to visualise various metadata: global state serialised JSON, loading statuses, timers, simple graphs… It allows for a basic but powerful and really fast way to “annotate” your source code and present whatever is the most important top-level information in your program.Node comments can also display images, useful for example to display raw textures in big rendering graphs or even custom “drawings” using an image buffer. See more in Visual Literate Programming.Live comments: both text and images are possible
[H3] Export and publishing
From the very beginning, we wanted to be able to share prototypes with clients and collaborators. That’s where the export functionality comes in. In one click we bundle the JavaScript code, graph metadata and all the assets into an archive, ready to be hosted on a static web server or bundled as an Electron app. Additionally, the inspector allows you to “publish” a set of selected ports that are then available (although hidden by default) at runtime for tweaking and configuring the app.This functionality allowed us to build tools for other designers, screen based installations and visualisations on the web or anything else that needs to be tweaked on the fly.
[H2] ¶Technology
[H3] Core
Frontend Framework: initially, choo (A 4kb framework for creating sturdy frontend applications) was chosen but we moved to a React UI layer to facilitates collaboration, improve performances and centralise app state.Bundler: in 2017, browserify was our first choice to bundle and manage npm dependencies but as the project grew, Webpack offered more functionalities, community support and reliability over time.Styling system: tachyons + custom CSS is used to style the UI easily without adding too much complexity2D Graphics: a simple HTML Canvas is used to visualise the graphText editor: monaco
[H3] User-space
The following are some of the most common modules that work well in such an environment and that we keep coming back to:PEX is an ecosystem of open source JavaScript modules developed in-house by Variable for building modern WebGL applications. The main modules are:pex-context - a low-level WebGL wrapper based on command and pipeline abstraction similar to Metal, Vulkan or WebGPU.pex-renderer - a Physically Based Renderer (PBR) and a scene graph similar to Three.js and Babylon.js.The choice felt natural as both PEX and Nodes are developed at Variable. Having full control over the source code allowed us to improve many features of PEX that were needed for Nodes and vice versa. One downside here is that less examples and documenta
15000 chars
SUB-PAGE · THIN (https://nodes.io/docs/) Documentation · Nodes – a new way to create with code | https://nodes.io
[H1] Documentation
Below is an overview of the Nodes documentation and related resources. If something is missing or if you found some part confusing, please file an issue with your suggestions for improvement, tweet at the @nodes_io account or simply drop up a line at hello@nodes.io.
[H2] What's new in Nodes?
Subscribe to our newsletter to be the first to know about new releases...
385 chars
🛡️ Trust Signals — reviews, proof links, trust-theatre flag (Trust & Proof)
5Review mentions (all pages)
0External proof links (all pages)
PageReviewsProof links
/ (home) 0 0
/playground/ 0 0
/story/ 5 0
/docs/ 0 0
🔗 Identity & Technical Layer — schema JSON-LD: identity chains, entity gaps (Identity & Authority)
Homepage — no schema detected (entity gap)
/playground/ — no schema detected (entity gap)
/story/ — no schema detected (entity gap)
/docs/ — no schema detected (entity gap)

Your Diagnosis

Before revealing the machine’s verdict, predict the BS score for each signal. Higher = more BS (more fluff, less verifiable substance). Drag each slider, then submit to compare your judgment against the engine.

Information Density 0 / 30
Read the Narrative & headings: do hard facts (prices, dates, numbers) outweigh fluff power-words?
Semantic Coherence 0 / 20
Compare the homepage promise against the sub-page reality. Do they hold the same line?
Trust & Proof 0 / 20
Weigh review mentions against actual external proof links. Claims without verification = theatre.
Commodity Fingerprint 0 / 15
Check headings & narrative against the industry clichés in the setup above.
Identity & Authority 0 / 15
Inspect the schema: is there real Organization/Person identity with sameAs links, or gaps?
Your predicted BS score 0 / 100
💡 Stuck? Reveal the heuristic lens — how the deterministic page-auditor reads each signal (no AI, pure pattern rules)

These are the structural rules a local, deterministic auditor applies — the same lens you can use to judge each signal. They describe what to look for, not this company’s result.

Information Density

Classify each sentence as substantive or hollow. Grounding markers — numbers, currencies, dates, technical units, named entities — outweigh marketing adjectives. When fluff sits right next to hard evidence, the fluff is forgiven.

Semantic Alignment

Pull the main entities out of the H1, then check whether they actually recur through the body. A page that announces one thing and then talks about another drifts. Headings with no real sentences underneath read as pseudo-substance.

Trust & Proof

Count trust words (review, testimonial, rating, verified) against real outbound proof links (Google, Trustpilot, Clutch, G2, Yelp). Lots of trust language with zero verification links is trust theatre. Unlinked logo galleries count against it.

Commodity Fingerprint

Look at how much sentence length varies. Natural writing varies its rhythm; templated or mass-produced copy is statistically uniform. Very low variation reads as commodity content — unless unique named entities break the pattern.

Identity & Authority

Inspect the JSON-LD. Is there an Organization or Person schema, and does it carry sameAs links to real external profiles (LinkedIn, socials)? Missing schema or no identity declaration signals an anonymous entity.

Want to apply this lens yourself? The free BS Indicator Chrome extension runs these heuristic checks live on any page. Bear in mind it is a single-page, deterministic tool — it relies only on pattern rules for the page in front of it and does not perform the cross-page semantic correlation this audit uses, so its readout is a starting lens, not the full verdict.

B
BS Level
Software, SaaS & Tech Products
33.2 Avg BS

Based on 1130 businesses audited.

BS Detector

Software, SaaS & Tech Products BS: Nodes (nodes.io)

https://nodes.io 📍 Industry: Software, SaaS & Tech Products
13 BS / 100

Nodes is a substance-first technical product that demonstrates complete disdain for traditional marketing fluff. It is a rare example of a site where the documentation and ‘story’ provide more value than the homepage, indicating a product built for users rather than lead-gen.

Info Density Power-words vs. Substance ratio.
3
10% BS
Semantic Coherence Homepage promise vs. Sub-page reality.
0
0% BS
Trust & Proof Verifiable evidence vs. Trust Theatre.
3
15% BS
Commodity Fingerprint Detection of industry clichés/templates.
1
7% BS
Identity & Authority Expert verifiability & Schema depth.
6
40% BS

Implement JSON-LD Organization and Person schema to formally anchor the founders’ professional identities. Convert the ‘Used on projects for’ section into a formal portfolio with outbound links to project case studies on variable.io. Add a transparent pricing or licensing section to the Documentation page to resolve the ambiguity around tool acquisition.

The website perfectly aligns with the Software, SaaS & Tech industry, specifically targeting creative developers. The content is saturated with niche-specific technical details including WebGL, npm dependencies, and rendering pipelines.

“The score of 13 is one of the lowest possible for a commercial site. The score was only kept from being lower by the lack of structured data (Identity) and the absence of direct outbound links to the client projects mentioned (Trust).”

Verified Analysis Date: May 25, 2026 © 1EuroSEO Independent Evaluator — Non-Sponsored Result
Brand AI Reputation