README / index.html
itsppm76's picture
Upload index.html with huggingface_hub
6578297 verified
Raw History Blame Contribute Delete
7.01 kB
<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Writistic Studios</title>
<style>
:root{--bg:#0b1020;--c1:#22d3ee;--c2:#a78bfa;--c3:#34d399;--c4:#fbbf24;--c5:#f43f5e;--tx:#e8ecff;--mut:#93a0c8}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(1000px 500px at 15% -10%,#1e2a5a,transparent 60%),radial-gradient(800px 500px at 100% 0,#4a1d5a,transparent 55%),var(--bg);color:var(--tx);font-family:Inter,system-ui,Segoe UI,Arial,sans-serif}
.hero{position:relative;overflow:hidden;text-align:center;padding:60px 20px 36px}
h1{margin:0;font-size:clamp(32px,6vw,60px);background:linear-gradient(90deg,var(--c1),var(--c2),var(--c5),var(--c4),var(--c1));background-size:300% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:flow 8s linear infinite}
@keyframes flow{to{background-position:300% 0}}
.tag{color:var(--mut);max-width:720px;margin:14px auto 0;line-height:1.6}
.petal{position:absolute;width:14px;height:14px;border-radius:50% 0 50% 50%;opacity:.5;animation:fall linear infinite}
@keyframes fall{from{transform:translateY(-40px) rotate(0)}to{transform:translateY(480px) rotate(540deg)}}
.badges{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-top:18px}.b{padding:5px 12px;border-radius:99px;font-size:12px;font-weight:700;border:1px solid #ffffff22;background:#ffffff0d}
.wrap{max-width:1050px;margin:0 auto;padding:0 20px 50px}
h2{margin:34px 0 14px;font-size:22px}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}
.card{display:block;text-decoration:none;color:var(--tx);background:linear-gradient(180deg,#18214199,#10172e99);border:1px solid #ffffff14;border-radius:16px;padding:18px;transition:transform .2s,border-color .2s;animation:rise .7s both}
.card:hover{transform:translateY(-5px);border-color:var(--c)}
@keyframes rise{from{opacity:0;transform:translateY(16px)}}
.card i{font-style:normal;font-size:26px}.card b{display:block;margin:8px 0 4px}.card span{color:var(--mut);font-size:13px;line-height:1.5}
.flow{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:13px}.flow span{padding:8px 12px;border-radius:12px;background:#ffffff12;border:1px solid #ffffff22}.flow em{color:var(--c1);font-style:normal}
.bars div{margin:10px 0}.bars label{display:flex;justify-content:space-between;font-size:13px;color:var(--mut)}.bar{height:10px;border-radius:9px;background:#ffffff14;overflow:hidden}.bar i{display:block;height:100%;border-radius:9px;animation:grow 1.6s ease-out both}
@keyframes grow{from{width:0!important}}
table{width:100%;border-collapse:collapse;font-size:13px}td,th{padding:9px;border-bottom:1px solid #ffffff12;text-align:left}
.note{color:var(--mut);font-size:12px;line-height:1.6}footer{text-align:center;color:var(--mut);font-size:12px;padding:10px 20px 40px}a{color:var(--c1)}
</style></head><body>
<div class="hero" id="hero"><h1>Writistic Studios</h1>
<p class="tag">Game design and tools by <b>Pratham Prateek Mohanty</b>. We build the <b>Blossom Bifurcation Mechanism</b>: an open, free alternative to gacha mechanics where players pay for regret-free convenience, never for luck.</p>
<div class="badges"><span class="b" style="color:var(--c1)">Open source</span><span class="b" style="color:var(--c3)">MIT licence</span><span class="b" style="color:var(--c4)">Anti-gacha</span><span class="b" style="color:var(--c2)">Research + code + demo</span></div></div>
<div class="wrap">
<h2>🌸 Blossom Bifurcation Mechanism</h2>
<div class="grid">
<a class="card" style="--c:#a78bfa" href="https://huggingface.co/spaces/writistic-studios/Blossom-Bifurcation-Demo" target="_blank"><i>🎮</i><b>Live demo</b><span>Move the sliders and watch the trained model score a player in your browser.</span></a>
<a class="card" style="--c:#22d3ee" href="https://huggingface.co/writistic-studios/Blossom-Bifurcation-Threat-Model" target="_blank"><i>🧠</i><b>Threat model</b><span>5-model MLP ensemble (7-16-8-4-1) that scores meta-gaming 0 to 1.</span></a>
<a class="card" style="--c:#34d399" href="https://huggingface.co/datasets/writistic-studios/Blossom-Bifurcation-Simulated-Sessions" target="_blank"><i>📊</i><b>Dataset</b><span>30,000 simulated player sessions with 7 behaviour features.</span></a>
<a class="card" style="--c:#fbbf24" href="https://github.com/Writistic-Studios-LLP/Blossom-Bifurcation-Threat-Model" target="_blank"><i>💻</i><b>GitHub</b><span>Code, scoring API, and all six developer guides (Unity, Ren'Py, Unreal, custom engines).</span></a>
<a class="card" style="--c:#f43f5e" href="https://doi.org/10.5281/zenodo.23180849" target="_blank"><i>📄</i><b>Research paper V5.0</b><span>The full mechanism. DOI 10.5281/zenodo.23180849, CC BY 4.0.</span></a>
<a class="card" style="--c:#22d3ee" href="https://bbm-threat-api.vercel.app" target="_blank"><i>âš¡</i><b>Hosted API</b><span>Free, always-on scoring API: /api/score and /api/permutation.</span></a>
</div>
<h2>How it works</h2>
<div class="flow"><span>Story branches</span><em>&rarr;</em><span>Player pays to rewind (Fate Reversal)</span><em>&rarr;</em><span>Model watches for pattern-probing</span><em>&rarr;</em><span>Probers get more randomization</span><em>&rarr;</em><span>Casuals get consistency</span></div>
<h2>Randomization by threat score</h2>
<div class="bars">
<div><label><span>0.0 - 0.2 Casual / new</span><b>20%</b></label><div class="bar"><i style="width:20%;background:var(--c3)"></i></div></div>
<div><label><span>0.2 - 0.4 Normal</span><b>50%</b></label><div class="bar"><i style="width:50%;background:var(--c1)"></i></div></div>
<div><label><span>0.4 - 0.6 Intermediate</span><b>65%</b></label><div class="bar"><i style="width:65%;background:var(--c2)"></i></div></div>
<div><label><span>0.6 - 0.8 Suspicious</span><b>80%</b></label><div class="bar"><i style="width:80%;background:var(--c4)"></i></div></div>
<div><label><span>0.8 - 1.0 Active meta-gamer</span><b>100%</b></label><div class="bar"><i style="width:100%;background:var(--c5)"></i></div></div></div>
<h2>Honest status</h2>
<p class="note">The model is a working prototype trained on 30,000 simulated players, because no real player logs exist yet. Held-out accuracy on simulated players is 89.2% (ROC-AUC 0.946). It is near chance on sneaky player types it never saw in training. Retrain on real beta data before relying on it. See the model card for all numbers.</p>
</div><footer>&copy; 2026 Pratham Prateek Mohanty / Writistic Studios. MIT licence.</footer>
<script>const C=["#22d3ee","#a78bfa","#f43f5e","#fbbf24","#34d399"],h=document.getElementById("hero");for(let i=0;i<24;i++){const e=document.createElement("div");e.className="petal";e.style.left=Math.random()*100+"%";e.style.background=C[i%5];e.style.animationDuration=(6+Math.random()*8)+"s";e.style.animationDelay=(-Math.random()*10)+"s";h.appendChild(e)}document.querySelectorAll(".card").forEach((c,i)=>c.style.animationDelay=i*.12+"s")</script></body></html>