Survival LLM
A free AI assistant and survival library (1.5 million offline articles) that runs on your own computer, with no internet. Shows the source of every answer. Mac and Windows.
翻译准备中
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 README。 仓库 README ↗
正在加载完整 README。
查看完整 README ↗A tiny web app that picks one thing at random from a list, rolls up to five 3D dice or flips a coin, with a spinning name reel, tumbling dice, confetti and sound effects.
Try it: https://neckfors.github.io/randomizer/
It installs on your phone like a normal app, works offline, and remembers your lists.
Anything where you need a fair, random pick:
Sam, Ben), or paste a list with one option per line. The field's example (e.g. Sam, Ben, Pizza, Burger) shows as many of those as fit the screen.Every pick is completely random. Each option in the draw has the same chance every time, even if it was picked last time.
Pick each only once: switch this on for a list when you want to go round instead, like taking turns on chores. Whatever gets picked sits out automatically, and when everything has been picked, the button turns into ↺ Start over to put everything back. The setting is saved per list, so Game night can allow repeats while Who makes dinner takes turns.
Recent picks: under the options and the short tip about them, 🕘 Recent picks (centered, tap to open) keeps the last 100 picks for each list, handy for "who did the dishes last time?". It shows the newest 10; tap Show all to see the rest.
Switch to 🎲 Dice at the top to roll dice, or any random number, instead of picking from a list. It works just like a list, except each row is a range of numbers:
Roll each number only once: switch this on for a range when the same number must not come up twice, like drawing raffle tickets. Numbers already rolled sit out, the switch shows how many have been rolled, and when every number has been rolled the button turns into ↺ Start over. The setting is saved per range, and works with one die.
Recent rolls: under the ranges and the short tip about them, 🕘 Recent rolls (centered, tap to open) keeps your last 100 rolls across all ranges. Each result shows in a small gold badge, with what was rolled next to it, like 2d6: 4 + 5 or 10 to 30. It shows the newest 10; tap Show all to see the rest.
Your ranges are remembered and included in backups. https://neckfors.github.io/randomizer/#dice opens straight in Dice mode (older #number links still work).
Which die a range gets. Every range is rolled with a real-looking 3D die whenever a real die can do it fairly. Otherwise it gets the magic die:
| Range | Die | Faces |
|---|---|---|
| 4 numbers | d4 | each number once |
| 1 number | d4 | the same number on every face |
| 2 numbers | d4 | each number twice |
| 6 numbers | d6 | each number once (dots for a plain 1 to 6) |
| 3 numbers | d6 | each number twice, like a real d3 |
| 8 numbers | d8 | each number once |
| 10 numbers | d10 | each number once |
| 5 numbers | d10 | each number twice |
| 12 numbers | d12 | each number once |
| 20 numbers | d20 | each number once |
| anything else (7, 9, 15, 37, 100, 1,000, …) | magic d20 | twinkling symbols |
The faces always show the range's own numbers, so 5 to 9 is a d10 with 5, 6, 7, 8 and 9 on it twice, and 95 to 100 is a cube with 95 to 100. The numbers must fit on the faces: up to 2 characters on the small triangles of the d4, d8 and d20, and up to 3 on the bigger faces of the d6, d10 and d12 (a minus sign counts). Longer numbers, like 1001 to 1020, also get the magic die.
Like real dice, opposite faces add up to the same total (1 and 6, 2 and 5, 3 and 4 on a d6), and 6 and 9 are underlined so they can't be mixed up.
The magic die ✨ is a purple, glowing d20 for ranges no real die can roll. Symbols swap on its faces while it tumbles, and it lands on a face just like the other dice, then its number flies out into the gold badge. The sparkles around it keep twinkling as long as it is on screen.
How a roll works. The number is chosen first, completely at random. Every number in the range has the same chance, using the browser's secure random numbers (crypto.getRandomValues). The die's tumble is then worked out to fit: from exactly where the die rests, it turns about one axis, a few whole turns plus the turn that brings up that face, and slows down until it stops with the face pointing straight at you. That axis always leans at an angle, never straight sideways or up and down, so the die tumbles at a slant instead of just rolling forward. When the turn to the face would be straight (as it always is for a d6), the die spins about a leaning axis instead. The small extra turn it still needs is spread evenly over the whole roll, so the tumble drifts a little but never turns toward the number at the end. It simply rolls to a stop, like a real die. With several dice, each one spins about its own axis, at least 26° away from every other die's, so no two tumble alike. When a number is on a die twice, one of its faces is picked at random. The animation only shows the result; it never decides it.
Several dice are each rolled on their own and added up, just like real dice. So with 2d6, a 7 (six ways to make it) comes up six times as often as a 2 or a 12 (one way each). Each die lands on its own number, shown under the total, like 4 + 5.
The result. Nothing shows under the dice while they spin, so no made-up numbers flash past. When the dice land, the result appears in the gold badge: the number for one die, or the total with the dice under it for several. Screen readers hear the result once it lands.
Reroll one die. After rolling several dice, tap a die to roll just that one again and keep the others, like in Yahtzee-style dice games. The total, the dice under it and Recent rolls update. A small Tap a die to reroll it under the total reminds you. To roll them all again, tap Roll again or swipe across the dice. (With one die, tapping it is just a new roll.)
Fitting the screen. The more dice you roll, the smaller they are, so up to five fit side by side. On a narrow phone, or with the phone's display zoom turned up, they shrink a little more to fit, and they resize when you turn the phone.
Sounds. Each die knocks on the table every quarter turn as it tumbles: quick at first, then further apart and softer as it slows, with a deeper knock when it comes to rest. The magic die twinkles instead.
Switch to 🪙 Coin at the top and tap Flip! (or shake your phone, tap the coin itself, or swipe across it). To flip again, tap Flip again, the coin, or the Heads or Tails badge. The result shows as Heads or Tails, and each side comes up half the time. Under the card, a tally counts how many heads and tails you've flipped; Reset starts it over. https://neckfors.github.io/randomizer/#coin opens straight in Coin mode.
The coin is a big 3D coin seen from above, lying on a table: gold on heads with a raised crown, and silver on tails with a raised star, so you can tell the sides apart at a glance, even mid-flip. Each side has a raised rim around a slightly sunken middle, with a ring of raised dots, and the ridged edge is half gold, half silver. The raised parts are lit on one side and shadowed on the other, and the metal catches the light as it turns.
How a flip works. Like the dice, the side is picked first (with secure random numbers), and the whole flip is worked out to end on it:
It never turns over at the end to show the right side; the toss is planned so it lands that way.
In the list panel:
Every list has its own address, for example https://neckfors.github.io/randomizer/#game-night. Opening it starts Randomizer straight on that list, and the address bar follows whichever list you're on. Copy it with ✎ → 🔗 Copy this list's address, and bookmark it if you like. The address only opens your copy of the list on that device. To give a list to someone else, use Share below. If you rename a list, it gets a new address, and the old one keeps working.
Tap ✎ on a list, then ⤴ Share this list. You get a link to send to anyone. When they open it, Randomizer asks whether to add the list, with all its options, to their own lists. The list travels inside the link itself, so nothing is uploaded anywhere.
Tap the ⛶ button at the top to show only the picker: the Pick!, Roll! or Flip! card in the middle of the screen, with everything else hidden. Where the phone allows it (Android), it also goes fullscreen. Leave with the ✕ in the corner, the phone's back gesture, or Esc on a keyboard. Handy on a table at game night.
On Android the installed app opens fullscreen, without the status bar. (iPhone always keeps the status bar for home screen apps.) Swiping up from the very bottom edge to bring back Android's bar doesn't scroll or tap anything in the app.
Screen readers hear each result once it has landed, like Picked Sam, Rolled 9: 4 + 5 or Heads, instead of every flicker of the spin.
Sound: the 🔊 button at the top turns the sound effects on or off. On iPhone, the silent switch also mutes them.
Updates: the app checks for a new version whenever you open it or come back to it, and every half hour while it stays open. When one has downloaded, a bar with New version available and an Update button appears at the top. The new version waits until you tap Update, so nothing is cut off halfway. Your lists and ranges are kept. Settings shows which version your phone is running.
Used to be Pick One: the app was called Pick One and lived at neckfors.github.io/pick-one/. Old links, bookmarks and installed copies are sent to the new address automatically, and your lists come along. If you had installed the old app, install it again from the new address and remove the old icon.
Plain HTML, CSS and JavaScript, with no build step or dependencies.
| File | Purpose |
|---|---|
index.html | The whole app: layout, styles and logic |
manifest.json | App name, icons and colors, so it can be installed |
sw.js | Service worker that caches the files for offline use |
icon-192.png, icon-512.png | App icons |
screenshots/ | The pictures in this README |
localStorage on your device. Nothing is sent anywhere.#list=, which never reaches the server.crypto.getRandomValues.<canvas> by a small built-in 3D renderer. Each die shape is only its corner points, and the faces are worked out from them. The knocks, clinks and whooshes are filtered noise, also generated on the fly.classic-dice.Edit the files and push to main. GitHub Pages publishes automatically.
Increase VERSION in sw.js every time (for example 108 → 109), otherwise installed copies keep showing the old version and the update bar never appears.
If you like the app, you can support the author on PayPal. Thank you!