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 &amp; 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>