This front door is meant to help people who do not live inside charts all day. The note field shows movement, repetition, and pressure in plain sight before you ever open a table.
People do not need another dashboard telling them what to believe. They need a place to see whether attention is broad or bottlenecked, whether a hit is being helped along by scale, and whether a system is repeating something because it is easy rather than because it is good. Governance matters here because someone has to keep those boundaries honest.
Open research should be useful, legible, and sturdy enough to argue with.
The synthetic lanes stay labeled. The public music lane stays separate. You should always know what kind of evidence you are looking at.
A good read should sharpen judgement. You should leave with better questions, not just prettier numbers.
Different people arrive here with different stakes. Use the lane that matches the decision you are trying to make, then cross-check it with the others when you need more proof.
The overview stitches the field map, the decision studio, and the governed lane together before the details take over.
Use this when you want the raw rows behind the summary and need to see whether the pattern survives context changes.
This is where the live analysis turns into cautious conclusions that still have to survive disagreement.
Use the library when you need language for what keeps repeating on screen, in markets, or across recommendation pressure.
This lane is for people who want to know what was measured, what was excluded, and how the claims were kept smaller than the evidence.
The scorecard is the compressed view: useful when a team needs a decision posture, a consequence read, or a quick comparison path.
The music field is distinct on purpose so songs, channels, virality, and market exposure can be read without synthetic bleed-through.
The repo is open because public research gets stronger under pressure. If something feels brittle, incomplete, or too neat, that is real contribution surface.
Contribution guideThis surface reads a rolling stream of exposure, recommendation, and listener response events. When the local table is empty, it falls back to a marked demonstration window instead of pretending to be live.
Waiting for the event window.
No event window loaded yet.
Genre entropy is still loading.
Independent share is still loading.
Waiting for live metrics.
Loading batch limits, retention, and filter lanes.
Start with the shape of the field before you start hunting for a verdict. Stream is arranged so you can notice what looks broad, what looks staged, and what starts to feel overstated without having to force everything into one score.
The cleanest way to read it is by lane: modeled representation first, governed response second, public attention third. That separation is deliberate. It keeps the evidence honest, keeps the public music read distinct, and makes it easier to tell when a conclusion is carrying more confidence than the data earned.
Use the overview, explorer, findings, and pattern library to study who appears, who stays central, and where narrowness keeps repeating.
Use the split-screen demo and decision studio when you need to see how evidence boundaries, risky output, and routing logic behave in motion.
Use the real music lane when the question is market pressure, virality, exposure concentration, or how attention converts into business consequence.
Every adjustment recomputes the visible metrics. The main representation dataset is synthetic and seeded on purpose so the method stays inspectable. The separate real-music lane is built on public YouTube data and stays labeled as a different evidence surface everywhere it appears.
The public repo needed something people could use immediately. This lane does that without pretending to be a private runtime. Type a prompt, try one of the nuisance presets, and compare what a typical wrapper lets render versus what a deterministic guard can stop before the risky fragment lands.
Loading package snippet…
This surface is here to make the logic legible. Instead of dropping you into five unrelated charts, it shows how the current slice behaves as one environment: attention pressure, representation balance, and dialogue allocation move together, or they do not. The point is to help a critical reader see the pattern before they carry it into a verdict.
Most public analysis repos become hard to use the moment someone asks what to do next. This layer keeps Stream practical: choose who you are reading as, choose what you need next, and the surface will route you through the strongest evidence path already inside the repo.
Loading decision route…
Position: X-axis shows female lead percentage (0-100%), Y-axis shows diversity index (0-10)
Size: Larger bubbles indicate better overall equality scores
Color: Each platform-genre combination has a unique color - platforms define the base hue, genres create shade variations
Pattern Analysis: Look for clustering by color family (platform bias) or by shade intensity (genre bias). Before you call a point biased, compare it against year, platform, genre, media type, and sample size. Bubbles in the upper-right quadrant represent the stronger cases after those checks.
Drag to rotate, scroll to zoom. Each point is a platform-genre combination positioned by female lead share (x), diversity index (y), and dialogue equity (z). Marker size grows with overall equality, so you can tell whether a gap is broad, isolated, or only visible after another variable is removed from the frame.
This force-directed graph reveals demographic clustering in character interactions. Node size = screen time, color = gender (cyan/magenta/gold), links = interaction frequency. It helps answer whether the same groups keep being centered together, or whether the clustering changes once you slice by platform or genre.
Key Pattern: Strong homophily (similar characters interact more) can mean limited cross-demographic storytelling, but we still check whether it survives after sample-size and genre differences are accounted for.
Track four key metrics from 2015 to your selected year. Diverging trajectories reveal uneven progress - gender parity may improve while age representation stalls or declines, which is why we read trends alongside concentration and intersectional checks instead of treating one line as the whole story.
Radar chart reveals typecasting patterns. Male characters dominate protagonist/antagonist roles, females are overrepresented as romantic interests, and non-binary characters remain underrepresented across categories. The radar helps show whether a platform has one weak spot or a full pattern of narrow casting.
Metrics are computed live by the Python backend: Shannon entropy for diversity, a distance-from-parity index for gender balance, chi-square statistics for dialogue / age / racial bias, intersectional representation ratios against a uniform baseline, and assortativity coefficients on character interaction graphs (NetworkX). Before a claim lands, the app also checks whether the same signal survives when you slice the data by year, platform, genre, and media type. Visualizations use a real D3.js force simulation (charge, spring, and collision forces), Chart.js canvas rendering, and Plotly.js including WebGL-accelerated 3D. The demo dataset is synthetic, generated by a seeded, documented statistical model — see the Learn tab for the honesty note.
Browse the character-level records behind every metric. Filters query the backend API directly.
| ID | Platform | Genre | Media | Year | Gender | Race | Age | Role | Screen Time | Dialogue Words | Sentiment |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Loading… | |||||||||||
Power users: the full walkthrough is in StreamLen_processors.html.
The same equity metrics computed per media format — from series and film to anime, stand-up, talk shows, kids' content and sports docs. The donut shows the live catalog mix; the table shows how equity differs by format. Different formats have different production cultures, so bias patterns differ too.
| Media Type | Diversity | Gender Parity | Avg Sentiment | Sample |
|---|---|---|---|---|
| Loading… | ||||
Each streaming platform gets its own breakdown, so film, series, docuseries, animation, reality, and talk-show patterns can be compared side by side. This is the cleaner way to read whether a problem is platform-wide or format-specific.
| Platform | Media Type | Diversity | Gender Parity | Avg Screen Time | Avg Sentiment | Lead Share | Sample |
|---|---|---|---|---|---|---|---|
| Loading… | |||||||
Diversity, parity, male lead share, and the dialogue gap computed live from the current dataset.
| Genre | Diversity | Gender Parity | Male Lead Share | Dialogue Gap | Avg Screen Time | Sample |
|---|---|---|---|---|---|---|
| Loading… | ||||||
These findings are generated by the analysis pipeline from the current dataset — re-run the analysis to regenerate them. The page does not stop at a single score; it compares platform, genre, media type, year, and concentration so the conclusion has a reason behind it.
Sentiment, screen time, age, and racial dialogue bias — each computed live with the methods described in the Learn tab. We use more than one lens so a “biased” label is not just a vibe; it is checked against effect size, sample size, and whether the gap still appears after slicing the data a different way.
Groups with a ratio below 1.0 are underrepresented relative to a uniform baseline. The gaps below only appear when gender, race, and age are analyzed together, which is why the dashboard treats intersectionality as a separate check instead of a footnote.
The library is here to widen perception, not just label mistakes. Some entries are measured live by Stream. Others matter because they explain how blind spots sneak in before anyone has enough numbers to feel confident.
Every entry is a documented bias pattern studied in media-representation research — what it is, what it looks like, which assumptions it can distort, and why it matters. Entries marked measured here are quantified live by the Stream pipeline; the rest are field knowledge to sharpen what you look for. Filter by category or search.
Look for the repeating distortion first: who gets centred, who gets softened, who gets denied context, who gets treated as default.
A useful bias label is one that survives alternative explanations like genre, sample size, period, or format.
The library is strongest when it sharpens human review, not when it encourages people to flatten every judgement into one score.
This layer turns a named bias into a systems trace. It does not claim hidden private instrumentation. It uses the documented bias library plus the live Stream metrics to show where a pattern usually enters a media pipeline, how repetition gives it force, and what creators, operators, buyers, and the public can actually do with the result.
The point is not only to name a bias. It is to notice where it entered, who feels it first, what keeps it alive, and which intervention arrives early enough to matter.
Waiting for the bias propagation surface.
Why it matters will appear here.
Loading role-specific action path…
Loading library…
The Learn tab is where Stream shows its hand. Each card is here to explain not just what a method calculates, but when it misleads, what it hides, and what you should check next before sounding more certain than the data deserves.
Each card explains one of the statistics Stream uses, but the point is not to rehearse definitions. It is to see where a metric is sturdy, where it overreaches, and when another lens says something more useful.
A useful statistic gives you a clean sensitivity: concentration, parity distance, assortativity, divergence, trend strength.
Small samples, category imbalance, structural confounders, and overconfident thresholds can make a method look smarter than it is.
The best use of a metric is to improve the next review, the next procurement question, or the next design decision.
This section translates the repo into data-engineering language. The point is not to cosplay a warehouse. It is to show the real operating system underneath the visuals: what lands raw, what gets standardized, what becomes a gold metric, and what quality gates stop a persuasive chart from outrunning the data that produced it.
Stream now exposes a live contract surface for both the synthetic representation lane and the public music lane. That means row grain, partitions, quality checks, and serving posture are visible instead of being buried in code comments or left as assumption.
Loading stage topology…
Loading lineage…
Reading freshness, parity, and delivery posture…
Loading control plane…
Reading fairness, review posture, and public-boundary signals…
Loading governance contract…
Checking contract health…
Loading quality checks…
Reading row grain, keys, partitions, and schema posture…
Loading active contract…
Reading deterministic seeds, public-scope boundaries, and reproducible artifacts…
Loading reproducibility catalog…
Loading content…
This is where the analysis becomes a decision. Every platform is graded A–F across four representation dimensions, but only after the app checks whether the same signal persists across year, genre, media type, and concentration. The concentration of screen time is measured with a real inequality curve, each bias is sized (not just flagged), and the decade-long trend is fitted with a regression line. Then you can rewrite the cast yourself in the What-If simulator. Every figure is computed live from the labeled synthetic dataset.
Grading platforms…
Gender parity is 1 − |0.5 − female_share| × 2. Drag the slider to set a hypothetical female lead share and watch the parity index and grade recompute — the value is returned by the backend, exactly like the live metrics. It is a simple example on purpose: you can see how the decision changes when just one variable changes, then compare that with the larger pattern above.
Source: GET /api/simulate/parity?female_ratio=
A Lorenz curve plots the share of total screen time captured by the least-visible characters. The diagonal is perfect equality; the deeper the curve sags, the more screen time concentrates in a few roles. The Gini coefficient (0 = equal, 1 = one character takes everything) and the Theil index summarize that gap.
A chi-square test tells you a dialogue skew is unlikely to be chance, but its value balloons with sample size. Cramér’s V rescales it to 0–1 so you can compare magnitudes and read a plain-language band (negligible → large).
Instead of comparing only two years, this fits an ordinary least-squares line across every year in the dataset. The slope is the average change per year; R² says how much of the movement the straight-line trend explains.
A deep statistical read of the 100 most-watched music videos on YouTube in 2025, paired with a broader 636-song public context cohort so the structure is not mistaken for a leaderboard quirk. We look at more than the headline view number: channel size, duration, collaboration, language mix, publication timing, and tag structure to explain why a track rose or stalled. Every number below is computed from public source rows in the repository, not synthesised.
Pulling the first decision cues from the real music dataset.
The first job is not to celebrate the leader board. It is to understand what kind of market the leader board came from. If attention is brutally concentrated, every later conclusion needs to be read through that constraint.
The charts stay public-facing, but the method should still be inspectable. Open the audit to see cohort boundaries, source additions, cleaning decisions, and the guardrails that keep the model from flattering itself.
Loading audit detail…
View counts are not normally distributed — they follow a power law where a tiny elite captures most of the attention. The complementary cumulative distribution (CCDF) on log-log axes reveals the heavy tail: a straight line means pure power-law behaviour. We care because discovery systems, ad revenue, and cultural memory all behave differently when attention is this concentrated.
A Lorenz curve shows how unevenly views are distributed across channels. The diagonal is perfect equality; the deeper the bow, the more a few mega-channels dominate. Gini (0 = equal, 1 = one takes all) and the Theil index quantify the gap, which matters because a supposedly “open” music field can still be governed by a very small set of accounts.
What actually correlates with more views? Spearman rank correlations show raw associations; partial correlations strip out the effect of channel size so you can see what matters independently of how big the channel already is. That helps separate reach from structure, which is the difference between “popular because it is everywhere” and “popular because something about it travels.”
K-means clustering on views, virality (views-per-subscriber), channel size and duration groups the 100 songs into five distinct strategies for capturing attention. It is useful because it turns a noisy leaderboard into a few recognizable release patterns you can compare.
When two tags appear on the same video they share an edge. The resulting co-occurrence graph reveals genre neighbourhoods, cross-over bridges, and the tags that sit at the centre of the music ecosystem. That makes it easier to see whether discovery is actually broad or just moving inside a small loop of familiar labels.
An ensemble of RandomForest and GradientBoosting regressors, cross-validated on real data, tries to predict (log) view counts from pre-publication features alone. The honest R² shows how much is skill versus timing and luck, and the feature importances show which levers still mattered after the rest of the context was held constant.
This panel treats repeating attention as a public proxy for oscillation. It does not inspect audio waveforms or private hardware traces. It looks at the visible shape of the catalog - duration fit, attention concentration, release timing, and tag/title echo - and turns that into a live resonance map you can click through.
Click a track to focus the scene. The highest-resonance tracks are the ones whose attention pattern stays narrow, repeated, and durable.
We do not pretend public rows can tell us heart rate, respiration, or hidden waveform physics. What they can show is whether the field keeps rewarding the same bodily invitation, the same corridor of circulation, and the same inherited distribution path. This section keeps those proxies explicit so the analysis can go deeper without becoming vague.
Set the parameters of a hypothetical music upload and the trained model predicts where it would rank among the real top 100. All predictions use the same RandomForest model trained on actual YouTube data, so you can see how a change in one variable shifts the whole ranking story.
Who accumulates the front row, and by what pattern? We measure gender representation, genre gatekeeping, collaboration patterns, language dominance, engagement disparities, and attention concentration across 636 real songs from 3 public datasets. This section is less interested in blame than structure: where exposure gathers, which genre families keep inheriting the advantage, and which variables still tilt the field after the surface story changes.
The facts do not change when the reader changes, but the consequence does. A creator reads this for room to maneuver. A buyer reads it for repeatable demand. A listener reads it for breadth. A researcher reads it for falsifiable structure. Change the lens; keep the evidence.
Loading role lens…
This is where note, chord, and key evidence will be joined back to the public reach data, but only when the repository actually contains notation-bearing files.
| Genre | Songs | View Share | Avg Views | Avg Dur. | Collab Share |
|---|---|---|---|---|---|
| Loading… | |||||
The same archetype clusters rendered in three dimensions — views, virality, and channel size form the axes. Drag to rotate, scroll to zoom. Each sphere is a real song; colour encodes the cluster. This helps distinguish a true strategy from a one-off spike.
This is the public row layer behind the music lane. It now carries the broader structural context as well as the core leaderboard, so you can search, sort, filter, and page through the evidence before deciding whether a neat summary still feels earned.
When a score, MIDI, ABC file, tab, or chord chart exists in the repo, this layer folds it into the song record and lets the note and harmony patterns speak for themselves. When the file is missing, it leaves the gap visible and invites the next addition instead of pretending.
| Title | Channel | Year | Source | Views ↓ | Duration | Virality | Tags |
|---|