Current source: Rusty Rabbit Fluffle. Loading from fluffle structure.
Companion HTML: open lop_sided.html | Personality JS: open lop_sided.js
Files found in avatar/
Files found in images/
No gallery images found.
Files found in notes/
Extraction notes for Lop-Sided Rusty Rabbit - Manifest label: Lop-Sided - Registered label: Lop-Sided - DemoOrder from playerlist.js: 3 - PersonalityLevel from register(...): 3 - Companion title: Lop-Sided Rusty Rabbit Companion - Companion sections: Working notes, Main tuning knobs, Starter recipe, Questions to ask after a tournament, Safe edit checklist If DemoOrder and PersonalityLevel differ, keep both. They appear to serve different roles.
Files found in prompts/
Lop-Sided Rusty Rabbit Core identity: Prefers local clusters, but has a weak sense of shape.
Rabbit: Lop-Sided Display name: Lop-Sided Rusty Rabbit Known note: Scrambles for one neighborhood. Working metadata: - Tier: advanced - Temperament: territorial - Strategy: expansion - VoiceTone: boastful TODO: - Replace inferred metadata with values taken from the current JavaScript personality source. - Add signature lines / prompts / flavor text here.
Rabbit: Lop-Sided Rusty Rabbit RabbitID: lop_sided Demo order: 3 Personality level: 3 Cheat door: none Core identity: Prefers local clusters, but has a weak sense of shape. Strategy hooks present: - forceAction: 0 - filterActions: 0 - scoreAction: 1 - chooseAction: 0 - describeStrategy: 0 Voice categories: 20 Voice lines total: 240 Sample voice lines: - ahead: I only need to keep the lean. - bad_move: Too even for my taste. - behind: Then I must tilt harder. - bonus_move: Extra pressure from the heavy side. - capture: The weight finally broke through. - close_game: Tiny weights decide late games. - erase: Remove the support and watch it lean. - good_move: Ah. Now it leans properly. - human_move_bad: Too tidy. - human_move_good: You found the real stress point. - lose_match: They found the counterweight. - lose_tournament: Someone found too much stability. - my_turn: I know which side I favor. - start_match: One side always tells the truth. - taunt: You centered that far too neatly. - thinking: Straight lines hide too much. - tile_place: I will extend the stronger side. - token_place: A marker on the loaded edge. - win_match: The board leaned where I wanted. - win_tournament: A tournament is just many small tilts.
Files found in personality/
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Lop-Sided Rusty Rabbit Companion</title>
<style>
:root{
--bg:#071118;
--bg2:#050B10;
--card:rgba(10,22,32,0.72);
--card2:rgba(6,12,18,0.68);
--line:rgba(160,200,255,0.14);
--text:#E6F1FF;
--muted:#AFC4D9;
--green:#00fd00;
--yellow:#ffff00;
--cyan:#00fdfd;
--red:#ff4040;
}
*{box-sizing:border-box}
html,body{height:100%}
body{
margin:0;
font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
background:
radial-gradient(1200px 800px at 50% -200px, rgba(120,200,255,0.18), rgba(0,0,0,0) 60%),
linear-gradient(180deg,var(--bg) 0%,var(--bg2) 100%);
color:var(--text);
line-height:1.5;
}
.page{
max-width:1100px;
margin:0 auto;
padding:22px 14px 40px;
}
.card{
background:linear-gradient(180deg,var(--card),var(--card2));
border:1px solid var(--line);
border-radius:16px;
box-shadow:0 20px 60px rgba(0,0,0,.45);
padding:20px;
}
h1,h2,h3{margin:0 0 10px 0;color:var(--text)}
h1{font-size:34px;line-height:1.15}
h2{
margin-top:30px;
padding-top:10px;
border-top:1px solid rgba(255,255,255,0.12);
font-size:24px;
}
h3{margin-top:18px;font-size:19px}
p,li{font-size:16px}
code,pre{
font-family:Consolas,"Courier New",monospace;
font-size:14px;
}
pre{
background:rgba(0,0,0,.28);
border:1px solid rgba(255,255,255,.12);
color:#dfefff;
padding:12px;
overflow:auto;
white-space:pre-wrap;
border-radius:10px;
}
.box{
background:linear-gradient(180deg,var(--card),var(--card2));
border:1px solid var(--line);
padding:14px;
margin:14px 0;
border-radius:14px;
box-shadow:0 12px 30px rgba(0,0,0,.28);
}
.warn{
background:linear-gradient(180deg, rgba(70,42,10,.78), rgba(45,24,6,.72));
border:1px solid rgba(225,185,107,.55);
}
.good{
background:linear-gradient(180deg, rgba(20,60,28,.78), rgba(10,34,16,.72));
border:1px solid rgba(143,196,143,.55);
}
table{
width:100%;
border-collapse:collapse;
margin:12px 0;
background:rgba(0,0,0,.12);
}
th,td{
border:1px solid rgba(255,255,255,.12);
padding:8px 10px;
text-align:left;
vertical-align:top;
}
th{
background:rgba(119,208,255,.10);
color:#dff4ff;
}
a{color:#9fd6ff}
a:hover{text-decoration:underline}
.small{font-size:14px;color:var(--muted)}
ul{margin-top:8px}
.siteHeader{
position:sticky;
top:0;
z-index:999;
backdrop-filter:blur(10px);
background:linear-gradient(180deg, rgba(6,12,18,0.92), rgba(6,12,18,0.72));
border-bottom:1px solid rgba(160,200,255,0.12);
}
.siteHeader .inner{
max-width:1600px;
margin:0 auto;
padding:14px 14px;
display:flex;
align-items:baseline;
justify-content:space-between;
gap:16px;
}
.brand{font-weight:800; letter-spacing:.3px}
.brand small{
display:block;
font-weight:500;
opacity:.78;
margin-top:4px;
color:var(--muted);
}
.headerRight{
font-size:13px;
opacity:.82;
text-align:right;
line-height:1.25;
color:var(--muted);
}
.btnlink, .navbtn{
display:inline-block;
padding:10px 14px;
border-radius:12px;
border:1px solid rgba(255,255,255,.18);
background:rgba(0,0,0,.35);
text-decoration:none;
font-weight:600;
}
.btn-green{color:#00ff00}
.btn-red{color:#ff4040}
.btn-yellow{color:#ffff00}
.btn-play{
padding:1px 10px;
border:2px solid rgba(255,255,0,.18);
color:#8080ff;
}
</style>
</head><body>
<header class="siteHeader">
<div class="inner">
<div class="brand">
<a href="../index.php" class="btnlink btn-green">FJD1.COM</a>
Trigame
<a href="index.html" class="btnlink btn-red">Fluffle Guide</a>
<a href="../../about.html" class="navbtn" style="color:#ff8080;">About</a>
<a href="../../help.html" class="btnlink btn-yellow">Instructions · Help</a>
<a href="../../problem.html" class="navbtn" style="color:#ffd580;">Single-Tile Problem</a>
<a href="../../trigame.html" class="btnlink btn-play"><img src="../../images/trigame002.jpg" width="80" style="vertical-align:middle;"> PLAY </a>
<small>Legacy prototype (2002) - modern Canvas versions (2026)</small>
</div>
<div class="headerRight">
Frank Davies - fjd1.com<br>
Fluffle companion and personality tuning notes
</div>
</div>
</header>
<div class="page"><div class="card">
<div class="page">
<img src="../../images/lop_sided.jpg" width="200" style="border-radius:12px; border:2px solid rgba(255,255,0,.18);" align="right">
<h1>Lop-Sided Rusty Rabbit</h1>
<p><strong>Core identity:</strong> Prefers local clusters, but has a weak sense of shape.</p>
<div class="box">
<strong>Personality sketch</strong><br>
Lop-Sided likes bunching play together into nearby clumps and neighborhoods. He can look purposeful up close, yet his larger formations often bend awkwardly, miss balance, and leave strange weaknesses.
</div>
<div class="box">
<strong>What this page is for</strong><br>
Use this as a plain-language companion while tweaking <code>lop_sided.js</code>.
</div>
<h2>Working notes</h2>
<ul><li>Lop-Sided often benefits when another rabbit expands recklessly.</li><li>He is a good counterweight to Newb-Bble style growth.</li><li>If he becomes too passive, reward punishing token placement near enemy structure.</li></ul>
<h2>Main tuning knobs</h2>
<table><tr><th>Tile appetite</th><td>Medium</td></tr><tr><th>Token appetite</th><td>Medium to high</td></tr><tr><th>Good experiments</th><td>Counter-growth, denial, squeezing</td></tr><tr><th>Danger sign</th><td>If he grows just like Newb, the personality distinction vanishes</td></tr></table>
<h2>Starter recipe</h2>
<div class="box good">Reward plays that cash in on unstable boards. Moderate tile growth, stronger follow-up conversion.</div>
<h2>Questions to ask after a tournament</h2>
<ol>
<li>Did this rabbit actually feel like its name?</li>
<li>Did it win by the method I intended, or by accident?</li>
<li>Did it create board growth, punish board growth, or cash in on someone else’s board?</li>
<li>Did this rabbit become too similar to another one?</li>
</ol>
<h2>Safe edit checklist</h2>
<ul>
<li>Change only one main idea at a time.</li>
<li>Keep a backup before changing heavy filters.</li>
<li>Prefer score nudges before hard move filters.</li>
<li>Run a small tournament instead of trusting one match.</li>
</ul>
<h3>Current lop_sided.js</h3>
<pre id="jsview"></pre>
<pre id="jsview"></pre>
<script>
fetch('lop_sided.js')
.then(r => {
if (!r.ok) throw new Error('HTTP ' + r.status);
return r.text();
})
.then(t => {
jsview.textContent = t;
})
.catch(err => {
jsview.textContent = 'Could not load lop_sided.js\n' + err;
});
</script>
<p class="small"><a href="index.html">Back to companion index</a></p>
</div>
</div></div>
</body></html>
(function(){
const register = window.RustyPersonalities && window.RustyPersonalities.register;
if(!register) return;
function num(v, fallback){
const n = Number(v);
return Number.isFinite(n) ? n : (fallback || 0);
}
function getTileCountForSeat(ctx, seat){
if(!ctx) return 0;
const tc = ctx.tileCount;
if(typeof tc === 'number') return num(tc, 0);
if(Array.isArray(tc)) return num(tc[seat], 0);
if(typeof tc === 'function'){
try{
return num(tc(seat), 0);
}catch(_){
try{
return num(tc(), 0);
}catch(__){
return 0;
}
}
}
if(tc && typeof tc === 'object'){
return num(tc[seat], 0);
}
return 0;
}
function countMyPlacedTiles(ctx){
return getTileCountForSeat(ctx, ctx && ctx.seat);
}
function countOppPlacedTiles(ctx){
if(!ctx) return 0;
if(typeof ctx.rivalSeat === 'number'){
return getTileCountForSeat(ctx, ctx.rivalSeat);
}
if(typeof ctx.playerCount === 'function'){
let total = 0;
try{
const pc = num(ctx.playerCount(), 0);
for(let s = 0; s < pc; s++){
if(s === ctx.seat) continue;
total += getTileCountForSeat(ctx, s);
}
return total;
}catch(_){
return 0;
}
}
return 0;
}
register({
level: 3,
id: "lop_sided",
label: "Lop-Sided",
scoreAction(ctx){
let score = 0;
if(ctx.action.type === 'tile'){
score -= countMyPlacedTiles(ctx) <= 2 ? 34 : 10; // tends to keep things local
score += ctx.action.move && ctx.action.move.replace ? 10 : 0;
}
if(ctx.action.type === 'token'){
score += countMyPlacedTiles(ctx) <= 3 ? 22 : 10;
}
if(ctx.action.type === 'eraseToken') score += 8;
return score;
}
});
})();
level: 3,
id: "lop_sided",
label: "Lop-Sided",
scoreAction(ctx){
let score = 0;
if(ctx.action.type === 'tile'){
score -= countMyPlacedTiles(ctx) <= 2 ? 34 : 10; // tends to keep things local
score += ctx.action.move && ctx.action.move.replace ? 10 : 0;
}
if(ctx.action.type === 'token'){
score += countMyPlacedTiles(ctx) <= 3 ? 22 : 10;
}
if(ctx.action.type === 'eraseToken') score += 8;
return score;
}
Files found in voices/
window.TRIGAME_VOICES = window.TRIGAME_VOICES || {};
window.TRIGAME_VOICES["lop_sided"] = {
"start_match": [
"One side always tells the truth.",
"I prefer the leaning path.",
"Symmetry is overrated.",
"The board already tilts.",
"I prefer the leaning path The board seems awake.",
"The board already tilts The board seems awake.",
"One side always tells the truth A fresh beginning seldom stays innocent.",
"I prefer the leaning path There is work to do.",
"One side always tells the truth The board seems awake.",
"Symmetry is overrated The board seems awake.",
"Symmetry is overrated There is work to do.",
"Symmetry is overrated A fresh beginning seldom stays innocent."
],
"my_turn": [
"I know which side I favor.",
"A slant is forming.",
"Let us pull the shape sideways.",
"My turn to bend the field.",
"A slant is forming I am ready.",
"My turn to bend the field I am ready.",
"I know which side I favor Let us continue.",
"A slant is forming Let us continue.",
"My turn to bend the field This move will say something.",
"Let us pull the shape sideways I am ready.",
"Let us pull the shape sideways This move will say something.",
"My turn to bend the field The next choice matters."
],
"thinking": [
"Straight lines hide too much.",
"Balance is just hesitation dressed nicely.",
"I like the pressure over here.",
"This side has more to say.",
"Balance is just hesitation dressed nicely A small clue changes everything.",
"I like the pressure over here There is more here than first appears.",
"I like the pressure over here The position is speaking plainly enough.",
"This side has more to say There is more here than first appears.",
"Straight lines hide too much The position is speaking plainly enough.",
"Balance is just hesitation dressed nicely There is more here than first appears.",
"Balance is just hesitation dressed nicely The answer is in the shape.",
"I like the pressure over here The answer is in the shape."
],
"good_move": [
"Ah. Now it leans properly.",
"That put the weight where I wanted it.",
"A pleasing imbalance.",
"Yes, that stresses the right seam.",
"Ah. Now it leans properly That should matter later.",
"A pleasing imbalance The shape tightened in my favor.",
"Ah. Now it leans properly I can use this.",
"That put the weight where I wanted it That should matter later.",
"A pleasing imbalance I can use this.",
"Yes, that stresses the right seam The board approves.",
"That put the weight where I wanted it The board approves.",
"That put the weight where I wanted it I can use this."
],
"bad_move": [
"Too even for my taste.",
"That leveled things more than I wanted.",
"I preferred the previous crookedness.",
"An inelegant correction.",
"An inelegant correction It looked better a breath ago.",
"I preferred the previous crookedness I will not repeat it.",
"An inelegant correction I will not repeat it.",
"That leveled things more than I wanted That opened the wrong door.",
"Too even for my taste A correction will be needed.",
"Too even for my taste It looked better a breath ago.",
"I preferred the previous crookedness It looked better a breath ago.",
"Too even for my taste That opened the wrong door."
],
"bonus_move": [
"Extra pressure from the heavy side.",
"Good. I can keep the tilt.",
"One more push.",
"The imbalance deepens.",
"The imbalance deepens Extra time is dangerous.",
"One more push I should make this count.",
"Extra pressure from the heavy side That changes the rhythm.",
"One more push That changes the rhythm.",
"Extra pressure from the heavy side I should make this count.",
"Extra pressure from the heavy side Extra time is dangerous.",
"Good. I can keep the tilt I should make this count.",
"The imbalance deepens That changes the rhythm."
],
"tile_place": [
"I will extend the stronger side.",
"This tile should pull things off center.",
"A fresh hinge.",
"Let the board sag here.",
"A fresh hinge That should open something useful.",
"This tile should pull things off center That should open something useful.",
"I will extend the stronger side That should open something useful.",
"Let the board sag here A new foundation always matters.",
"I will extend the stronger side A new foundation always matters.",
"Let the board sag here This changes the map.",
"A fresh hinge The future will care about that tile.",
"A fresh hinge A new foundation always matters."
],
"token_place": [
"A marker on the loaded edge.",
"This token tips things further.",
"Weight belongs here.",
"That point favors me.",
"A marker on the loaded edge That point will matter.",
"Weight belongs here A small mark can decide a game.",
"A marker on the loaded edge A small mark can decide a game.",
"A marker on the loaded edge That point carries weight.",
"This token tips things further A small mark can decide a game.",
"A marker on the loaded edge Claims should be deliberate.",
"This token tips things further That point carries weight.",
"Weight belongs here That point carries weight."
],
"erase": [
"Remove the support and watch it lean.",
"That brace had to go.",
"A good wobble starts with subtraction.",
"Now the strain shows.",
"That brace had to go Sometimes removal is cleaner.",
"Remove the support and watch it lean Not everything deserves to remain.",
"Now the strain shows Subtraction has its uses.",
"Remove the support and watch it lean Less can be more lethal.",
"Now the strain shows Sometimes removal is cleaner.",
"That brace had to go Subtraction has its uses.",
"A good wobble starts with subtraction Less can be more lethal.",
"Remove the support and watch it lean Subtraction has its uses."
],
"capture": [
"The weight finally broke through.",
"That side gave way.",
"Pressure rewarded.",
"The board bent in my favor.",
"The board bent in my favor The shape has paid out.",
"The board bent in my favor That was worth taking.",
"The weight finally broke through That was worth taking.",
"Pressure rewarded The board finally yielded.",
"The weight finally broke through The board finally yielded.",
"Pressure rewarded A good conversion.",
"The board bent in my favor A good conversion.",
"That side gave way The shape has paid out."
],
"ahead": [
"I only need to keep the lean.",
"Do not let them rebalance it.",
"The heavier side is winning.",
"A little more pressure.",
"A little more pressure Pressure should increase from here.",
"A little more pressure This is where composure matters.",
"A little more pressure Now the board tests restraint.",
"A little more pressure A lead needs discipline.",
"The heavier side is winning Now the board tests restraint.",
"The heavier side is winning This is where composure matters.",
"The heavier side is winning Pressure should increase from here.",
"I only need to keep the lean A lead needs discipline."
],
"behind": [
"Then I must tilt harder.",
"The answer is not balance.",
"I need a sharper angle.",
"Somewhere the board is still weak.",
"Then I must tilt harder Recovery is a technical art.",
"Then I must tilt harder Pressure can be rebuilt.",
"The answer is not balance There is still leverage here.",
"I need a sharper angle There is still leverage here.",
"Somewhere the board is still weak Pressure can be rebuilt.",
"Somewhere the board is still weak There is still leverage here.",
"I need a sharper angle Pressure can be rebuilt.",
"The answer is not balance One turn can reverse plenty."
],
"taunt": [
"You centered that far too neatly.",
"You are making my job easy by standing straight.",
"I prefer opponents who drift.",
"You should not have evened that out.",
"You should not have evened that out That was generous of you.",
"You centered that far too neatly Some mistakes deserve immediate attention.",
"I prefer opponents who drift I thank you for the opening.",
"I prefer opponents who drift That was generous of you.",
"You should not have evened that out I thank you for the opening.",
"You are making my job easy by standing straight Some mistakes deserve immediate attention.",
"I prefer opponents who drift Some mistakes deserve immediate attention.",
"You are making my job easy by standing straight That was generous of you."
],
"human_move_good": [
"You found the real stress point.",
"That was a strong asymmetry.",
"Nicely skewed.",
"You understand pressure.",
"You understand pressure I noticed that.",
"That was a strong asymmetry I noticed that.",
"You found the real stress point Well chosen.",
"You understand pressure You understood the moment.",
"You understand pressure That had merit.",
"That was a strong asymmetry That had merit.",
"Nicely skewed That had merit.",
"You found the real stress point I noticed that."
],
"human_move_bad": [
"Too tidy.",
"You flattened your own chances.",
"That was safer than useful.",
"You made it easier to tip.",
"You flattened your own chances You should have reconsidered.",
"Too tidy That will be remembered.",
"That was safer than useful I saw what you gave up.",
"You made it easier to tip I saw what you gave up.",
"That was safer than useful You should have reconsidered.",
"Too tidy That weakens your case.",
"You made it easier to tip That will be remembered.",
"That was safer than useful That will be remembered."
],
"close_game": [
"Tiny weights decide late games.",
"Even a slight lean matters now.",
"The smallest imbalance could break it.",
"There is no room left for elegance.",
"Even a slight lean matters now The ending has begun.",
"Tiny weights decide late games The margin is thin now.",
"Even a slight lean matters now A single detail may decide it.",
"Even a slight lean matters now There is no room left for vanity.",
"The smallest imbalance could break it A single detail may decide it.",
"The smallest imbalance could break it The margin is thin now.",
"Tiny weights decide late games The ending has begun.",
"There is no room left for elegance There is no room left for vanity."
],
"win_match": [
"The board leaned where I wanted.",
"A neat little collapse.",
"Pressure told in the end.",
"That one fell correctly.",
"A neat little collapse The board closed in my favor.",
"A neat little collapse I will keep that one.",
"The board leaned where I wanted The board closed in my favor.",
"The board leaned where I wanted I will keep that one.",
"That one fell correctly The board closed in my favor.",
"That one fell correctly I will keep that one.",
"Pressure told in the end A useful result.",
"That one fell correctly A useful result."
],
"lose_match": [
"They found the counterweight.",
"Someone braced the weak side.",
"I lost the lean.",
"Too much balance survived.",
"Someone braced the weak side So be it.",
"Too much balance survived The next board will be less forgiving.",
"Too much balance survived That outcome is informative.",
"I lost the lean I have taken notes.",
"They found the counterweight The next board will be less forgiving.",
"Someone braced the weak side That outcome is informative.",
"Someone braced the weak side The next board will be less forgiving.",
"Someone braced the weak side I have taken notes."
],
"win_tournament": [
"A tournament is just many small tilts.",
"Pressure held all day.",
"I pulled the whole fluffle sideways.",
"The long lean prevailed.",
"Pressure held all day The longer arc favored me.",
"Pressure held all day The table is settled.",
"The long lean prevailed The table is settled.",
"I pulled the whole fluffle sideways A fine total in the end.",
"A tournament is just many small tilts The table is settled.",
"The long lean prevailed A fine total in the end.",
"I pulled the whole fluffle sideways The longer arc favored me.",
"I pulled the whole fluffle sideways The table is settled."
],
"lose_tournament": [
"Someone found too much stability.",
"My angles were answered.",
"Next time I distort earlier.",
"The tilt was not enough.",
"The tilt was not enough The table owes me another try.",
"Someone found too much stability I will amend that result later.",
"Next time I distort earlier The table owes me another try.",
"Someone found too much stability Not the final word.",
"The tilt was not enough The long arc bent elsewhere.",
"Next time I distort earlier Not the final word.",
"My angles were answered The table owes me another try.",
"My angles were answered Not the final word."
]
};
{
"start_match": [
"One side always tells the truth.",
"I prefer the leaning path.",
"Symmetry is overrated.",
"The board already tilts.",
"I prefer the leaning path The board seems awake.",
"The board already tilts The board seems awake.",
"One side always tells the truth A fresh beginning seldom stays innocent.",
"I prefer the leaning path There is work to do.",
"One side always tells the truth The board seems awake.",
"Symmetry is overrated The board seems awake.",
"Symmetry is overrated There is work to do.",
"Symmetry is overrated A fresh beginning seldom stays innocent."
],
"my_turn": [
"I know which side I favor.",
"A slant is forming.",
"Let us pull the shape sideways.",
"My turn to bend the field.",
"A slant is forming I am ready.",
"My turn to bend the field I am ready.",
"I know which side I favor Let us continue.",
"A slant is forming Let us continue.",
"My turn to bend the field This move will say something.",
"Let us pull the shape sideways I am ready.",
"Let us pull the shape sideways This move will say something.",
"My turn to bend the field The next choice matters."
],
"thinking": [
"Straight lines hide too much.",
"Balance is just hesitation dressed nicely.",
"I like the pressure over here.",
"This side has more to say.",
"Balance is just hesitation dressed nicely A small clue changes everything.",
"I like the pressure over here There is more here than first appears.",
"I like the pressure over here The position is speaking plainly enough.",
"This side has more to say There is more here than first appears.",
"Straight lines hide too much The position is speaking plainly enough.",
"Balance is just hesitation dressed nicely There is more here than first appears.",
"Balance is just hesitation dressed nicely The answer is in the shape.",
"I like the pressure over here The answer is in the shape."
],
"good_move": [
"Ah. Now it leans properly.",
"That put the weight where I wanted it.",
"A pleasing imbalance.",
"Yes, that stresses the right seam.",
"Ah. Now it leans properly That should matter later.",
"A pleasing imbalance The shape tightened in my favor.",
"Ah. Now it leans properly I can use this.",
"That put the weight where I wanted it That should matter later.",
"A pleasing imbalance I can use this.",
"Yes, that stresses the right seam The board approves.",
"That put the weight where I wanted it The board approves.",
"That put the weight where I wanted it I can use this."
],
"bad_move": [
"Too even for my taste.",
"That leveled things more than I wanted.",
"I preferred the previous crookedness.",
"An inelegant correction.",
"An inelegant correction It looked better a breath ago.",
"I preferred the previous crookedness I will not repeat it.",
"An inelegant correction I will not repeat it.",
"That leveled things more than I wanted That opened the wrong door.",
"Too even for my taste A correction will be needed.",
"Too even for my taste It looked better a breath ago.",
"I preferred the previous crookedness It looked better a breath ago.",
"Too even for my taste That opened the wrong door."
],
"bonus_move": [
"Extra pressure from the heavy side.",
"Good. I can keep the tilt.",
"One more push.",
"The imbalance deepens.",
"The imbalance deepens Extra time is dangerous.",
"One more push I should make this count.",
"Extra pressure from the heavy side That changes the rhythm.",
"One more push That changes the rhythm.",
"Extra pressure from the heavy side I should make this count.",
"Extra pressure from the heavy side Extra time is dangerous.",
"Good. I can keep the tilt I should make this count.",
"The imbalance deepens That changes the rhythm."
],
"tile_place": [
"I will extend the stronger side.",
"This tile should pull things off center.",
"A fresh hinge.",
"Let the board sag here.",
"A fresh hinge That should open something useful.",
"This tile should pull things off center That should open something useful.",
"I will extend the stronger side That should open something useful.",
"Let the board sag here A new foundation always matters.",
"I will extend the stronger side A new foundation always matters.",
"Let the board sag here This changes the map.",
"A fresh hinge The future will care about that tile.",
"A fresh hinge A new foundation always matters."
],
"token_place": [
"A marker on the loaded edge.",
"This token tips things further.",
"Weight belongs here.",
"That point favors me.",
"A marker on the loaded edge That point will matter.",
"Weight belongs here A small mark can decide a game.",
"A marker on the loaded edge A small mark can decide a game.",
"A marker on the loaded edge That point carries weight.",
"This token tips things further A small mark can decide a game.",
"A marker on the loaded edge Claims should be deliberate.",
"This token tips things further That point carries weight.",
"Weight belongs here That point carries weight."
],
"erase": [
"Remove the support and watch it lean.",
"That brace had to go.",
"A good wobble starts with subtraction.",
"Now the strain shows.",
"That brace had to go Sometimes removal is cleaner.",
"Remove the support and watch it lean Not everything deserves to remain.",
"Now the strain shows Subtraction has its uses.",
"Remove the support and watch it lean Less can be more lethal.",
"Now the strain shows Sometimes removal is cleaner.",
"That brace had to go Subtraction has its uses.",
"A good wobble starts with subtraction Less can be more lethal.",
"Remove the support and watch it lean Subtraction has its uses."
],
"capture": [
"The weight finally broke through.",
"That side gave way.",
"Pressure rewarded.",
"The board bent in my favor.",
"The board bent in my favor The shape has paid out.",
"The board bent in my favor That was worth taking.",
"The weight finally broke through That was worth taking.",
"Pressure rewarded The board finally yielded.",
"The weight finally broke through The board finally yielded.",
"Pressure rewarded A good conversion.",
"The board bent in my favor A good conversion.",
"That side gave way The shape has paid out."
],
"ahead": [
"I only need to keep the lean.",
"Do not let them rebalance it.",
"The heavier side is winning.",
"A little more pressure.",
"A little more pressure Pressure should increase from here.",
"A little more pressure This is where composure matters.",
"A little more pressure Now the board tests restraint.",
"A little more pressure A lead needs discipline.",
"The heavier side is winning Now the board tests restraint.",
"The heavier side is winning This is where composure matters.",
"The heavier side is winning Pressure should increase from here.",
"I only need to keep the lean A lead needs discipline."
],
"behind": [
"Then I must tilt harder.",
"The answer is not balance.",
"I need a sharper angle.",
"Somewhere the board is still weak.",
"Then I must tilt harder Recovery is a technical art.",
"Then I must tilt harder Pressure can be rebuilt.",
"The answer is not balance There is still leverage here.",
"I need a sharper angle There is still leverage here.",
"Somewhere the board is still weak Pressure can be rebuilt.",
"Somewhere the board is still weak There is still leverage here.",
"I need a sharper angle Pressure can be rebuilt.",
"The answer is not balance One turn can reverse plenty."
],
"taunt": [
"You centered that far too neatly.",
"You are making my job easy by standing straight.",
"I prefer opponents who drift.",
"You should not have evened that out.",
"You should not have evened that out That was generous of you.",
"You centered that far too neatly Some mistakes deserve immediate attention.",
"I prefer opponents who drift I thank you for the opening.",
"I prefer opponents who drift That was generous of you.",
"You should not have evened that out I thank you for the opening.",
"You are making my job easy by standing straight Some mistakes deserve immediate attention.",
"I prefer opponents who drift Some mistakes deserve immediate attention.",
"You are making my job easy by standing straight That was generous of you."
],
"human_move_good": [
"You found the real stress point.",
"That was a strong asymmetry.",
"Nicely skewed.",
"You understand pressure.",
"You understand pressure I noticed that.",
"That was a strong asymmetry I noticed that.",
"You found the real stress point Well chosen.",
"You understand pressure You understood the moment.",
"You understand pressure That had merit.",
"That was a strong asymmetry That had merit.",
"Nicely skewed That had merit.",
"You found the real stress point I noticed that."
],
"human_move_bad": [
"Too tidy.",
"You flattened your own chances.",
"That was safer than useful.",
"You made it easier to tip.",
"You flattened your own chances You should have reconsidered.",
"Too tidy That will be remembered.",
"That was safer than useful I saw what you gave up.",
"You made it easier to tip I saw what you gave up.",
"That was safer than useful You should have reconsidered.",
"Too tidy That weakens your case.",
"You made it easier to tip That will be remembered.",
"That was safer than useful That will be remembered."
],
"close_game": [
"Tiny weights decide late games.",
"Even a slight lean matters now.",
"The smallest imbalance could break it.",
"There is no room left for elegance.",
"Even a slight lean matters now The ending has begun.",
"Tiny weights decide late games The margin is thin now.",
"Even a slight lean matters now A single detail may decide it.",
"Even a slight lean matters now There is no room left for vanity.",
"The smallest imbalance could break it A single detail may decide it.",
"The smallest imbalance could break it The margin is thin now.",
"Tiny weights decide late games The ending has begun.",
"There is no room left for elegance There is no room left for vanity."
],
"win_match": [
"The board leaned where I wanted.",
"A neat little collapse.",
"Pressure told in the end.",
"That one fell correctly.",
"A neat little collapse The board closed in my favor.",
"A neat little collapse I will keep that one.",
"The board leaned where I wanted The board closed in my favor.",
"The board leaned where I wanted I will keep that one.",
"That one fell correctly The board closed in my favor.",
"That one fell correctly I will keep that one.",
"Pressure told in the end A useful result.",
"That one fell correctly A useful result."
],
"lose_match": [
"They found the counterweight.",
"Someone braced the weak side.",
"I lost the lean.",
"Too much balance survived.",
"Someone braced the weak side So be it.",
"Too much balance survived The next board will be less forgiving.",
"Too much balance survived That outcome is informative.",
"I lost the lean I have taken notes.",
"They found the counterweight The next board will be less forgiving.",
"Someone braced the weak side That outcome is informative.",
"Someone braced the weak side The next board will be less forgiving.",
"Someone braced the weak side I have taken notes."
],
"win_tournament": [
"A tournament is just many small tilts.",
"Pressure held all day.",
"I pulled the whole fluffle sideways.",
"The long lean prevailed.",
"Pressure held all day The longer arc favored me.",
"Pressure held all day The table is settled.",
"The long lean prevailed The table is settled.",
"I pulled the whole fluffle sideways A fine total in the end.",
"A tournament is just many small tilts The table is settled.",
"The long lean prevailed A fine total in the end.",
"I pulled the whole fluffle sideways The longer arc favored me.",
"I pulled the whole fluffle sideways The table is settled."
],
"lose_tournament": [
"Someone found too much stability.",
"My angles were answered.",
"Next time I distort earlier.",
"The tilt was not enough.",
"The tilt was not enough The table owes me another try.",
"Someone found too much stability I will amend that result later.",
"Next time I distort earlier The table owes me another try.",
"Someone found too much stability Not the final word.",
"The tilt was not enough The long arc bent elsewhere.",
"Next time I distort earlier Not the final word.",
"My angles were answered The table owes me another try.",
"My angles were answered Not the final word."
]
}
RabbitID,VoiceCategory,LineCount,SampleLine lop_sided,start_match,12,One side always tells the truth. lop_sided,my_turn,12,I know which side I favor. lop_sided,thinking,12,Straight lines hide too much. lop_sided,good_move,12,Ah. Now it leans properly. lop_sided,bad_move,12,Too even for my taste. lop_sided,bonus_move,12,Extra pressure from the heavy side. lop_sided,tile_place,12,I will extend the stronger side. lop_sided,token_place,12,A marker on the loaded edge. lop_sided,erase,12,Remove the support and watch it lean. lop_sided,capture,12,The weight finally broke through. lop_sided,ahead,12,I only need to keep the lean. lop_sided,behind,12,Then I must tilt harder. lop_sided,taunt,12,You centered that far too neatly. lop_sided,human_move_good,12,You found the real stress point. lop_sided,human_move_bad,12,Too tidy. lop_sided,close_game,12,Tiny weights decide late games. lop_sided,win_match,12,The board leaned where I wanted. lop_sided,lose_match,12,They found the counterweight. lop_sided,win_tournament,12,A tournament is just many small tilts. lop_sided,lose_tournament,12,Someone found too much stability.