Spaces:
Running
Running
File size: 14,325 Bytes
2fa46e0 b5bcaec 2fa46e0 4c674c7 2fa46e0 b5bcaec cf16871 2fa46e0 2527adf 2fa46e0 2527adf b5bcaec 2527adf 2fa46e0 2527adf 2fa46e0 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 | <!doctype html>
<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}
</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>
<blockquote><p>SillyTavern's depth. A browser tab's ease. The most feature-rich home for AI roleplay on the web.</p></blockquote>
<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. Not a knowledge or willingness test, and not one vibe score. SFW and NSFW.</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 difference from the boards you already know: <strong>nothing here is private.</strong> The test harness, the judge prompts, the scoring rubric, and the raw vote dumps are all open-source (CC-BY 4.0), so every number traces back to a file you can read and rerun. Six tests, each measuring a different facet:</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/lazyweasel/roleplay-bench">Dataset on Hugging Face</a> (CC-BY 4.0)</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>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 SillyTavern-grade control over the AI.</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>
|