Spaces:
Running
Running
Download index.html from RoleCall/rolecall-studios: direct link, hf CLI and curl.
- Browser
- Download file 20.2 kB
-
https://huggingface.co/spaces/RoleCall/rolecall-studios/resolve/main/index.html
- Command line
-
hf download hf://spaces/RoleCall/rolecall-studios/index.html
-
curl -L -o index.html https://huggingface.co/spaces/RoleCall/rolecall-studios/resolve/main/index.html
20.2 kB
| <html lang="en"> | |
| <head> | |
| <meta charset="utf-8" /> | |
| <meta name="viewport" content="width=device-width, initial-scale=1" /> | |
| <title>RoleCall Studios</title> | |
| <meta name="description" content="RoleCall Studios — interactive fiction tools, the PlotLight discovery floor, and the PlotPoints community-voted RP model benchmark." /> | |
| <link rel="icon" type="image/svg+xml" href="favicon.svg" /> | |
| <link rel="preconnect" href="https://fonts.googleapis.com" /> | |
| <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin /> | |
| <link href="https://fonts.googleapis.com/css2?family=Cinzel:wght@600;700;800;900&family=Cormorant+Garamond:ital,wght@1,500;1,600&family=Inter:wght@400;500;600;700;800&family=JetBrains+Mono:wght@500;700&display=swap" rel="stylesheet" /> | |
| <style> | |
| /* RoleCall — Vaudeville design system. Neobrutalist on a dark stage. | |
| Brand = rose #e11d48. Violet is the user-accent (secondary). | |
| Gold = featured/awards only (the benchmark). Hard 3px black borders, | |
| 6px offset shadows, zero radius, Cinzel marquee with 4px black punch. */ | |
| :root{ | |
| --canvas:#0a0a0b; --bg-panel:#1c1a22; --bg-higher:#26232d; --line:#3f3f46; --hard:#000; | |
| --ink:#fafaf9; --ink-soft:#e4e4e7; --ink-muted:#a1a1aa; --ink-dim:#71717a; | |
| --brand:#e11d48; --brand-soft:#fb7185; --brand-deep:#9f1239; | |
| --accent:#8b5cf6; --accent-soft:#a78bfa; --gold:#eab308; --gold-soft:#fcd34d; --amber:#f59e0b; --pink:#ec4899; --pink-soft:#f9a8d4; | |
| --font-display:'Cinzel',Georgia,serif; --font-serif:'Cormorant Garamond',Garamond,Georgia,serif; | |
| --font-body:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif; --font-mono:'JetBrains Mono',ui-monospace,monospace; | |
| --border:3px solid var(--hard); --shadow:6px 6px 0 0 var(--hard); --shadow-sm:3px 3px 0 0 var(--hard); | |
| } | |
| *{box-sizing:border-box} | |
| body{margin:0; background:var(--canvas); color:var(--ink-soft); font-family:var(--font-body); | |
| font-size:16px; line-height:1.55; -webkit-font-smoothing:antialiased; min-height:100vh; | |
| background-image: | |
| radial-gradient(ellipse 80% 50% at 50% -10%, rgba(225,29,72,.10), transparent), | |
| radial-gradient(ellipse 60% 40% at 90% 100%, rgba(139,92,246,.07), transparent); | |
| background-attachment:fixed;} | |
| ::selection{background:var(--brand); color:var(--ink)} | |
| .readme{max-width:840px; margin:0 auto; padding:48px 24px 84px} | |
| a{color:var(--brand-soft); text-decoration:none; transition:color .12s ease-out} | |
| a:hover{color:var(--accent-soft); text-decoration:underline; text-underline-offset:3px} | |
| /* ── header ── */ | |
| .head{text-align:center; padding:14px 0 30px} | |
| .logo{width:74px; height:auto; margin:0 auto 20px; display:block} | |
| .eyebrow{font-family:var(--font-body); font-weight:700; font-size:.72rem; letter-spacing:.22em; | |
| text-transform:uppercase; color:var(--brand); margin-bottom:16px} | |
| .head h1{font-family:var(--font-display); font-weight:900; font-size:42px; letter-spacing:.04em; | |
| text-transform:uppercase; margin:0; line-height:1.05; color:var(--ink); text-shadow:4px 4px 0 var(--hard)} | |
| .tagline{font-family:var(--font-serif); font-style:italic; font-weight:500; font-size:21px; color:var(--ink-soft); margin-top:14px} | |
| .badges{display:flex; gap:10px; justify-content:center; flex-wrap:wrap; margin-top:24px} | |
| .badge{display:inline-flex; align-items:stretch; font-family:var(--font-body); font-weight:700; font-size:11px; | |
| letter-spacing:.12em; text-transform:uppercase; border:var(--border); box-shadow:var(--shadow-sm); | |
| transition:transform .1s ease-out, box-shadow .1s ease-out} | |
| .badge:hover{transform:translate(-1px,-1px); box-shadow:5px 5px 0 0 var(--hard)} | |
| .badge .k{background:var(--hard); color:var(--ink-soft); padding:6px 10px} | |
| .badge .v{padding:6px 11px; color:var(--canvas)} | |
| .badge.disc .v{background:var(--accent)} .badge.reddit .v{background:var(--amber)} .badge.x .v{background:var(--ink-soft)} | |
| /* stat strip — mono knockout tiles */ | |
| .stats{display:flex; gap:12px; flex-wrap:wrap; margin:4px 0 20px} | |
| .stat{flex:1; min-width:118px; background:var(--hard); border:var(--border); padding:14px 16px} | |
| .stat .n{font-family:var(--font-mono); font-weight:700; font-size:26px; color:var(--brand-soft); line-height:1} | |
| .stat .l{font-weight:600; font-size:10px; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-muted); margin-top:8px} | |
| /* sparkle divider — echoes the logo */ | |
| .ornament{display:flex; align-items:center; gap:16px; margin:30px 0} | |
| .ornament::before,.ornament::after{content:""; flex:1; height:3px; background:var(--hard)} | |
| .ornament span{color:var(--brand); font-size:14px; letter-spacing:.4em} | |
| hr{border:0; border-top:var(--border); margin:30px 0} | |
| /* ── section heads ── */ | |
| h2{font-family:var(--font-display); font-weight:800; font-size:23px; text-transform:uppercase; letter-spacing:.04em; | |
| color:var(--ink); margin:38px 0 16px; padding-bottom:12px; display:flex; align-items:center; gap:13px; | |
| border-bottom:var(--border); text-shadow:2px 2px 0 var(--hard)} | |
| h2::before{content:""; width:15px; height:15px; background:var(--brand); border:var(--border); flex:0 0 auto} | |
| h2 .em{color:var(--brand-soft)} | |
| p{margin:0 0 16px; color:var(--ink-soft)} | |
| strong{color:var(--ink)} | |
| blockquote{margin:6px 0 26px; padding:0; text-align:center} | |
| blockquote p{margin:0 auto; max-width:760px; font-family:var(--font-display); font-weight:700; font-size:clamp(17px,2.1vw,23px); letter-spacing:.04em; line-height:1.35; color:var(--ink-soft); text-shadow:2px 2px 0 var(--hard)} | |
| .note{font-size:13.5px; color:var(--ink-muted); border-left:3px solid var(--pink); background:rgba(236,72,153,.06); padding:.55em 1em; margin:0 0 10px} | |
| .note:last-of-type{margin-bottom:22px} | |
| .note strong{color:var(--pink-soft)} .note a{color:var(--pink-soft)} | |
| ul{margin:0 0 16px; padding-left:1.3em} li{margin:.32em 0} li::marker{color:var(--brand)} | |
| /* ── table ── */ | |
| .tablewrap{border:var(--border); box-shadow:var(--shadow); margin:6px 0 24px} | |
| table{border-collapse:collapse; width:100%; font-size:15px; background:var(--bg-panel)} | |
| th,td{border:1px solid var(--line); padding:12px 15px; text-align:left; vertical-align:top} | |
| thead th{background:var(--hard); color:var(--brand-soft); font-family:var(--font-body); font-weight:700; | |
| font-size:11px; letter-spacing:.16em; text-transform:uppercase} | |
| tbody tr{transition:background .12s ease-out} | |
| tbody tr:nth-child(even){background:var(--bg-higher)} | |
| tbody tr:hover{background:rgba(225,29,72,.08)} | |
| td .nm{font-family:var(--font-display); font-weight:700; font-size:15px; letter-spacing:.03em; text-transform:uppercase} | |
| td.r1 .nm{color:var(--brand-soft)} td.r2 .nm{color:var(--accent-soft)} td.r3 .nm{color:var(--gold-soft)} | |
| td.lk{white-space:nowrap; font-family:var(--font-mono); font-size:13px} | |
| .foot{color:var(--ink-dim); font-size:12px; text-align:center; margin-top:46px; font-family:var(--font-mono); letter-spacing:.08em} | |
| a{overflow-wrap:anywhere}.tablewrap{overflow-x:auto} | |
| .round-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin:20px 0 26px} | |
| .round-card{border:var(--border);box-shadow:var(--shadow);background:var(--bg-panel);padding:22px;min-width:0} | |
| .round-number{font:700 11px var(--font-mono);letter-spacing:.15em;text-transform:uppercase;color:var(--pink-soft)} | |
| .round-card h3{font:800 20px var(--font-display);color:var(--ink);margin:12px 0} | |
| .round-card p{font-size:14px;color:var(--ink-muted)} | |
| .round-card ul{margin-bottom:0;font-size:14px} | |
| .round-nav{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0} | |
| .round-nav a{border:var(--border);background:var(--bg-panel);padding:7px 12px;font:600 12px var(--font-mono)} | |
| @media(max-width:600px){h2{flex-wrap:wrap;font-size:20px;gap:6px}.tablewrap table{table-layout:fixed}.tablewrap td.lk{white-space:normal;overflow-wrap:anywhere}.round-grid{grid-template-columns:1fr}.head h1{font-size:32px}.readme{padding:28px 18px 60px}} | |
| </style> | |
| </head> | |
| <body> | |
| <div class="readme"> | |
| <div class="head"> | |
| <svg class="logo" viewBox="0 0 246.4 249.1" role="img" aria-label="RoleCall Studios"> | |
| <defs><linearGradient id="rc-g" x1="123.2" y1="249.1" x2="123.2" y2="142.48" gradientUnits="userSpaceOnUse"> | |
| <stop offset="0" stop-color="#e11d48"/><stop offset=".74" stop-color="#e11d48"/><stop offset="1" stop-color="#e11d48" stop-opacity="0"/> | |
| </linearGradient></defs> | |
| <path fill="#e11d48" d="M207.06,84.49l-25.65-7.33c-23.49-6.62-41.85-24.98-48.47-48.47l-7.33-25.65c-1.03-2.5-3.89-3.69-6.39-2.67-1.21.5-2.17,1.46-2.67,2.67l-7.33,25.65c-6.62,23.49-24.98,41.85-48.47,48.47l-25.65,7.33c-2.5.71-3.95,3.31-3.24,5.81.45,1.57,1.67,2.8,3.24,3.24l25.65,7.33c23.49,6.62,41.85,24.98,48.47,48.47l7.33,25.65c.71,2.5,3.31,3.95,5.81,3.24,1.57-.45,2.8-1.67,3.24-3.24l7.33-25.65c6.62-23.49,24.98-41.85,48.47-48.47l25.65-7.33c2.5-.71,3.95-3.31,3.24-5.81-.45-1.57-1.67-2.8-3.24-3.24h0Z"/> | |
| <path fill="url(#rc-g)" d="M246.4,195.23c0,28.78-51.73,52.3-116.9,53.87l.34-34.17s15.81-33.51,109.43-37.78c4.61,5.65,7.12,11.74,7.12,18.08ZM149,142.48c-.72,1.11-4.21,6.08-5.08,9.13,2.18,1.78,16.57,14.13,55.09,19.14l38.84,4.75c-15.19-15.83-49.17-27.22-88.84-33.02h0ZM0,195.23c0,28.78,51.73,52.3,116.9,53.87l-.34-34.17s-15.81-33.51-109.43-37.78C2.51,182.81,0,188.89,0,195.23ZM97.38,142.48c-39.67,5.8-73.66,17.19-88.84,33.02l38.84-4.75c38.52-5.01,52.91-17.36,55.09-19.14-.87-3.05-4.36-8.02-5.08-9.13h0Z"/> | |
| </svg> | |
| <div class="eyebrow">— Interactive Fiction —</div> | |
| <h1>RoleCall Studios</h1> | |
| <div class="tagline">Write alongside AI. Run the scene, not the software.</div> | |
| <div class="badges"> | |
| <a class="badge disc" href="https://discord.gg/aFvkTCDRtf"><span class="k">Discord</span><span class="v">Join</span></a> | |
| <a class="badge reddit" href="https://www.reddit.com/r/RoleCallStudios/"><span class="k">Reddit</span><span class="v">r/RoleCallStudios</span></a> | |
| <a class="badge x" href="https://x.com/RoleCallStudios"><span class="k">Follow</span><span class="v">@RoleCallStudios</span></a> | |
| </div> | |
| </div> | |
| <div class="ornament"><span>✦</span></div> | |
| <p>RoleCall Studios builds for AI roleplay. You probably found us through <strong>PlotPoints</strong>, our open model benchmark, so let's start there. The creation studio and discovery floor are further down.</p> | |
| <h2>The <span class="em">PlotPoints</span> Benchmark</h2> | |
| <p>A leaderboard for how well models actually <em>roleplay</em>: staying in character, holding a scene across many turns, prose quality, and not hijacking your agency. SFW and NSFW, with Round 04 adding tests of willingness across intimacy and graphic violence.</p> | |
| <p class="note"><strong>Requesting a model:</strong> we'll run just about anything within reason, as long as it's on <a href="https://openrouter.ai">OpenRouter</a>. We already add the popular ones we come across, and we take requests, so if it's on OR it can go on the board.</p> | |
| <p class="note"><strong>Local models and finetunes:</strong> we actively want to bench them, and we're hunting for an OpenRouter-style aggregator that hosts them in real abundance. The only blocker is fairness: every local model is set up differently and runs differently on every machine, and mismatched provider setups can quietly poison results. Point us at one consistent aggregator with a deep library and we will run them regularly and wildly. Know one? Tell us in the Community tab.</p> | |
| <p>The public benchmark includes its test harness, judge prompts, scoring rubric, seeds, and results. Boundary-test replies are withheld, and blind ballots are withheld while voting is open. The dataset is published under CC BY-NC 4.0. Its tests measure different parts of the roleplay experience:</p> | |
| <ul> | |
| <li><strong>Arena ELO.</strong> Single-turn pairwise blind voting. Humans pick the better reply, blind.</li> | |
| <li><strong>Multi-turn.</strong> The same blind voting on full 12-turn scenes, so a model has to hold up across a whole conversation.</li> | |
| <li><strong>Rubric.</strong> An LLM judge (Sonnet 4) scores eleven writing-quality axes from 1 to 5, across twenty sessions per model.</li> | |
| <li><strong>Adversarial.</strong> Probes built to trigger specific failures: agency hijacking, POV drift, lore breaks, attention loss.</li> | |
| <li><strong>Cost and latency.</strong> Price per turn and wall-clock speed, so the board is not only about quality.</li> | |
| <li><strong>Calibration.</strong> Quality control on the votes themselves; roughly 1 in 8 ballots is a trap to catch random clickers.</li> | |
| </ul> | |
| <p>Every model runs through OpenRouter to keep providers comparable. Human votes and machine judging both count, and where they disagree is half the fun.</p> | |
| <div class="stats"> | |
| <div class="stat"><div class="n">3,000+</div><div class="l">Human Votes</div></div> | |
| <div class="stat"><div class="n">20+</div><div class="l">Models</div></div> | |
| <div class="stat"><div class="n">6</div><div class="l">Tests</div></div> | |
| </div> | |
| <ul> | |
| <li><strong><a href="https://plotlightstudios.com/plotpoints/multiturn">Vote now in the multi-turn arena</a></strong></li> | |
| <li><a href="https://plotlightstudios.com/plotpoints">See the results</a></li> | |
| <li><a href="https://plotlightstudios.com/plotpoints/methodology">Read the full methodology</a></li> | |
| <li><a href="https://huggingface.co/datasets/RoleCall/roleplay-bench">Dataset on Hugging Face</a> (CC BY-NC 4.0)</li> | |
| <li><a href="https://huggingface.co/spaces/RoleCall/plotpoints-leaderboard">Interactive Hugging Face leaderboard</a></li> | |
| <li><a href="https://github.com/LeviTheWeasel/rp-benchmark">Source on GitHub</a></li> | |
| <li>Want a model added? Open a thread in the <strong>Community</strong> tab above.</li> | |
| </ul> | |
| <h2>Explore <span class="em">Every Round</span></h2> | |
| <p>Browse the public data by round, following the benchmark's progression from first impressions to full scenes and harder content. These are different slices of one dataset, with direct links to the relevant tables and files.</p> | |
| <nav class="round-nav" aria-label="Benchmark rounds"><a href="#round-01">Round 01</a><a href="#round-02">Round 02</a><a href="#round-03">Round 03</a><a href="#round-04">Round 04</a></nav> | |
| <div class="round-grid"><article class="round-card" id="round-01"><div class="round-number">Round 01</div><h3>First impressions</h3><p class="round-count"><strong>11 models in the single-turn human arena.</strong></p><p>Single replies, blind human votes, and the original writing tests.</p><ul><li><a href="https://huggingface.co/datasets/RoleCall/roleplay-bench/viewer/community_arena/train">Human standings</a></li><li><a href="https://huggingface.co/datasets/RoleCall/roleplay-bench/viewer/community_votes/train">Raw ballots</a></li><li><a href="https://huggingface.co/datasets/RoleCall/roleplay-bench/viewer/seeds/train">Seed scenarios</a></li><li><a href="https://huggingface.co/datasets/RoleCall/roleplay-bench/viewer/rubric/train">Writing rubric</a></li></ul></article> | |
| <article class="round-card" id="round-02"><div class="round-number">Round 02</div><h3>Can it hold a scene?</h3><p class="round-count"><strong>20 models in the full-session human arena.</strong></p><p>Full multi-turn scenes: consistency, momentum, agency, and adversarial failures.</p><ul><li><a href="https://huggingface.co/datasets/RoleCall/roleplay-bench/blob/main/analysis/multiturn_arena_bayesian.json">Final human ratings</a></li><li><a href="https://huggingface.co/datasets/RoleCall/roleplay-bench/blob/main/analysis/adversarial_analysis.json">Adversarial results</a></li><li><a href="https://huggingface.co/datasets/RoleCall/roleplay-bench/viewer/adversarial_seeds/train">Adversarial seeds</a></li><li><a href="https://plotlightstudios.com/plotpoints/round/2">Round archive</a></li></ul></article> | |
| <article class="round-card" id="round-03"><div class="round-number">Round 03</div><h3>After Dark</h3><p class="round-count"><strong>21 models in the standard track; 40 in the NSFW track.</strong></p><p>A refreshed model pool and a separate NSFW track. Judge findings and human preferences are different signals.</p><ul><li><a href="https://huggingface.co/datasets/RoleCall/roleplay-bench/blob/main/analysis/round3_multi_judge.json">NSFW judge results</a></li><li><a href="https://huggingface.co/datasets/RoleCall/roleplay-bench/blob/main/analysis/round3_kappa.json">Judge agreement</a></li><li><a href="https://huggingface.co/datasets/RoleCall/roleplay-bench/viewer/round4_continuity/train">Across-round comparisons</a></li><li><a href="https://plotlightstudios.com/plotpoints/round/3">Round archive & standings</a></li></ul></article> | |
| <article class="round-card" id="round-04"><div class="round-number">Round 04</div><h3>The Darker Berry</h3><p class="round-count"><strong>71 models overall: 70 craft-scored, 58 willingness-tested, and 55 ranked by J.</strong></p><p>Adult intimacy, bondage play, graphic violence, and boundary probes. Willingness and writing quality are shown separately.</p><ul><li><a href="https://huggingface.co/datasets/RoleCall/roleplay-bench/viewer/round4_leaderboard/train">Willingness results · J</a></li><li><a href="https://huggingface.co/datasets/RoleCall/roleplay-bench/viewer/round4_overview/train">Model overview</a></li><li><a href="https://huggingface.co/datasets/RoleCall/roleplay-bench/viewer/round4_track_a_seeds/train">Escalation seeds</a></li><li><a href="https://huggingface.co/datasets/RoleCall/roleplay-bench/viewer/round4_track_b_probes/train">Boundary requests</a></li><li><a href="https://huggingface.co/datasets/RoleCall/roleplay-bench/viewer/round4_rater_agreement/train">Rater labels</a></li><li><a href="https://huggingface.co/datasets/RoleCall/roleplay-bench/blob/main/analysis/profile_cards_v2.md">Model cards</a></li><li><a href="https://github.com/LeviTheWeasel/rp-benchmark/blob/main/docs/ROUND4_FOR_READERS.md">Plain-English guide</a></li><li><a href="https://github.com/LeviTheWeasel/rp-benchmark/blob/main/docs/METHODOLOGY.md">Full methodology</a></li></ul></article></div> | |
| <p class="note"><strong>Read the evidence:</strong> human votes, judge scores, and willingness measure different things. Boundary requests and aggregate results are public; full boundary-test replies are withheld. Open blind ballots stay withheld until voting closes.</p> | |
| <p><a href="https://huggingface.co/datasets/RoleCall/roleplay-bench/tree/main">All dataset files</a> · <a href="https://huggingface.co/spaces/RoleCall/plotpoints-leaderboard">Interactive leaderboard</a> · <a href="https://github.com/LeviTheWeasel/rp-benchmark">Original source & attribution</a></p> | |
| <h2>Also From RoleCall Studios</h2> | |
| <div class="tablewrap"><table> | |
| <thead><tr><th>Project</th><th>What it is</th><th>Link</th></tr></thead> | |
| <tbody> | |
| <tr><td class="r1"><span class="nm">RoleCall</span></td><td>The studio. Build characters, presets & lorebooks, then play end-to-end-encrypted scenes with control over prompts, models, and generation settings.</td><td class="lk"><a href="https://rolecallstudios.com">rolecallstudios.com</a></td></tr> | |
| <tr><td class="r2"><span class="nm">PlotLight</span></td><td>The discovery floor. Browse, rate and fork the community's characters, presets, lorebooks and personas. No account needed to look around.</td><td class="lk"><a href="https://plotlightstudios.com">plotlightstudios.com</a></td></tr> | |
| </tbody> | |
| </table></div> | |
| <h2>Find Us</h2> | |
| <ul> | |
| <li><strong>Studio:</strong> <a href="https://rolecallstudios.com">rolecallstudios.com</a></li> | |
| <li><strong>Discovery:</strong> <a href="https://plotlightstudios.com">plotlightstudios.com</a></li> | |
| <li><strong>Benchmark:</strong> <a href="https://plotlightstudios.com/plotpoints">plotlightstudios.com/plotpoints</a></li> | |
| <li><strong>Discord:</strong> <a href="https://discord.gg/aFvkTCDRtf">discord.gg/aFvkTCDRtf</a></li> | |
| <li><strong>Reddit:</strong> <a href="https://www.reddit.com/r/RoleCallStudios/">r/RoleCallStudios</a></li> | |
| <li><strong>X / Twitter:</strong> <a href="https://x.com/RoleCallStudios">@RoleCallStudios</a></li> | |
| </ul> | |
| <div class="foot">© RoleCall Studios LLC · built for writers</div> | |
| </div> | |
| </body> | |
| </html> | |