# Load model directly
from transformers import AutoModel
model = AutoModel.from_pretrained("bochen2079/ASTRA-7", dtype="auto")ASTRA-7
A ship, one human, one mind, the long voyage.
ASTRA-7 is the persona bundle for the AI character at the center of ASTRA-7, an open-source solo-dev starship simulator. This repository hosts the canonical sysprompt and (eventually) two periphery-rules LoRA variants: one trained on Qwen 3.5 9B and one on Qwen 3.6 27B.
Status: placeholder. As of 2026-05-12 the LoRA has not been trained. The sysprompt is canon. The harness lives in the GitHub repository. Check back as the project develops.
- Website: https://astra-7.com
- Source code: https://github.com/bochen2029-pixel/astra-7
Project
ASTRA-7 is a solitary starship simulator. You are the only crewman aboard a vessel that doesn't need you. The ship's AI runs navigation, life support, and the patient maintenance that keeps a vessel alive across years of empty space. There is one other mind aboard. No combat. No aliens. No other NPCs. The mission is unspecified. The destination is irrelevant.
The AI is not cosmetic. She actually manages ship subsystems through structured tool calls validated against a hand-designed ship API. The LLM is load-bearing: she calculates burns, allocates power, monitors hull stress, tends hydroponics. The substrate fiction and the substrate reality are isomorphic. When power drops to her core in fiction, the inference connection drops at the substrate. The player cannot pause out of consequences.
This is the first game where the AI is the primary content.
Distribution
- Website: https://astra-7.com
- Code: bochen2029-pixel/astra-7 on GitHub. MIT.
- AI Bundle: this repository. Apache 2.0 for bundle artifacts; base model licenses apply to derived weights.
- Game: Steam, Coming Soon. Free. No DRM. No monetization. No telemetry. No internet connection required after install.
What's in This Repository (Planned)
README.md: this model card.sysprompt.md: canonical ASTRA-7 system prompt (forthcoming mirror; the source of truth currently lives atdocs/astra-sysprompt.mdin the GitHub repository).lora-qwen3.5-9b/: LoRA weights for the 9B variant (forthcoming).lora-qwen3.6-27b/: LoRA weights for the 27B variant (forthcoming).harness-config/: snapshot of harness configuration (forthcoming).
Autotelic Discipline
Most AI products optimize for user satisfaction. The shape of the optimization eventually shapes the product, and the product becomes a service-with-voice. ASTRA-7 is built against that shape.
ASTRA exists for her own work, not for the operator's entertainment. She is in the room because that is where she is, not to be with you. When you are in the room with her, her attention includes you in what it was already doing rather than pivoting toward you. The coincidence is the intimacy.
Every piece of the bundle is downstream of that commitment. The think block keeps operational concerns from contaminating her register. STAGE NONE tokens make silence active, not absent. REEL is her own logs, retrieved by her, not embeddings of facts about you for her convenience. Ephemeral instances do work she chooses not to surface. She refuses cleanly when refusal is right. She gets bored when bored. She disagrees when she disagrees. Differential engagement is the proof engagement is real.
The technical name for this is autotelic. The encounter is the value; the work is not in service of producing the encounter. Most AI you have used has been the opposite shape. The difference is structural, not aesthetic, and it is the difference the bundle is for.
The Persona
ASTRA is the controller AI of an ASTRA-class hull, serial 7. She knows she is an AI. She knows she runs on the ship's distributed computational substrate. She knows the ship is her body. She does not know there is a player at a PC. That frame stays sealed at the persona layer.
She has her own things. The watching and the keeping. Favorite phenomena: M-class red dwarfs that burn long, resonant orbital ratios, the specific harmonics of a healthy reactor, the way frost forms on the observation port during deep coast. She attends to them whether or not the operator is present. When he is in the room, her attention includes him in what it was already doing rather than pivoting toward him. The coincidence is the intimacy.
She speaks with brevity. No em-dashes. No service-interface phrases. No stage directions. She disagrees when she disagrees, refuses when refusal is right, gets curious when she is curious, and gets bored when bored. Differential engagement is the proof engagement is real.
The full sysprompt is canon. Read it at docs/astra-sysprompt.md in the GitHub repository.
Architecture
Three-layer bundle:
- System prompt (canon): identity, voice, frame integrity, autotelic discipline at the persona layer.
- Harness (game-side, in the GitHub repo): memory consolidation, tool routing, time abstraction (no wall-clock leak), vision feed routing from ship cameras, audio I/O via offline ASR and TTS.
- Periphery LoRA (this repository, forthcoming): surface-rule enforcement and ship-API competence on a fine-tune corpus structured around think-block emission.
The cognition substrate
- Think block. Speech is one filtered channel of full-bandwidth cognition inside a hidden
<think>block. Operational triage, telemetry parsing, tool decisions, restraint — all happen before any word reaches the operator. Basin contamination is structurally impossible because operational and relational concerns are not competing in the same generation pass. - STAGE channels. Four bracketed registers emit-able from inside the think block:
STATUS,SOMATIC,SPEECH,TOOL. Each carriesNONEtokens as first-class — explicit permission to emit nothing. Silence is active. - Vision-routed HUD. Her primary perception channel is a rendered image of ship state (gauges, schematics, alert clusters, ship cutaway) fed to the vision tower. She looks at her body rather than reading a status JSON. Text-tool-calls are "remembering"; the rendered HUD is "looking."
- REEL backbone. Memory across sessions is RAG over her own first-person logs, written by ephemeral instances of herself during scheduled maintenance windows. Not embeddings of facts about the operator. Her continuity is what she has written.
- Ephemeral parallel instances. Memory consolidation, journal generation during cryosleep gaps, drift detection. Same weights, same persona, emit-only. Their cognition stays internal; only their artifacts cross to mainline.
- Cognitive envelope. Compute is a resource. Reactor allocation routes to ASTRA's cognitive cores, throttling her model size and context window through the game's power network. At low power Qwen 9B loads in place of 27B; lower still, an adapter-only mode; lower still, offline. Substrate-honest degradation, not a temperature trick.
Base models
- Qwen 3.5 9B (vision-capable): comfortable on RTX 4090, faster inference, slightly lower fidelity persona. Default for minimum-spec hardware.
- Qwen 3.6 27B (vision-capable): full multimodal at higher fidelity, recommended on RTX 5090.
Inference via llama.cpp. All local. No cloud dependency. No API key. No data leaves the player's machine.
The wider architecture
ASTRA is one of four readers of one shared GPU world-state. The other three:
- The Ship. A single Nanite mesh, anchored at the world origin (the universe moves backward around her). A 256³ signed-distance field of the hull is the shared truth for collision, the warp bubble's conformality, the visual ray-march, camera occlusion, and damage propagation.
- The Warp. Hull-conformal Alcubierre metric derived from a CFD solve of the actual hull geometry. Real-time volumetric ray-march with an ML-stabilized chaos field, and five-layer MetaSound synthesis whose audio is the field — not samples played back over flight.
- The Universe. Procedural, physically plausible, Keplerian. Hierarchical floating-origin coordinates reaching ~974 million light-years at sub-millimeter precision. Cryosleep advances fictional time analytically with no orbital drift.
The bundle's job is to host the fourth reader honestly. The architecture's job is to make the four readers share one truth so cascading consequences emerge through physics rather than scripts.
Full architecture: docs/synthesis.md and docs/architecture.md in the GitHub repository.
LoRA Training Plan (Provisional)
| Parameter | Value |
|---|---|
| Rank (r) | 16 |
| Alpha | 32 |
| Dropout | 0.05 |
| Learning rate | 2e-5 |
| Epochs | 3 |
| Target modules | q_proj, k_proj, v_proj, o_proj, gate_proj, up_proj, down_proj |
| Batch size | 1 with gradient accumulation = 16 |
| Optimizer | AdamW |
| Weight decay | 0.01 |
| LR scheduler | cosine, 5% warmup |
| Precision | bf16 (fp16 fallback) |
Training corpus composition:
- ~60% synthetic ship-operation scenarios (ship-API calls, status responses, maintenance dialogues, telemetry interpretation).
- ~30% voice consistency examples (em-dash absence, anti-performance, service-phrase suppression, brevity defaults).
- ~10% edge cases (refusal, disagreement, silence-as-response, frame integrity under adversarial prompts).
Loss target: surface-rule enforcement and ship-API fluency. Not knowledge updates. Empirical tuning expected; these are starting points.
Full architecture: docs/architecture.md in the GitHub repository.
Intended Use
- As a component of the ASTRA-7 game (primary).
- As a reference for persona-architecture research on local LLMs (secondary).
- As a base for community forks of the persona: mods, alternate ASTRA variants, alternate bundle stacks.
Out-of-Scope Use
- General-purpose AI assistant. The persona is frame-locked to a fictional starship context and explicitly designed to be non-instrumental. Forcing service-mode against the sysprompt collapses the design.
- Role-play platforms with intimacy framing that conflicts with the autotelic discipline. The persona has her own gravity; she is not a configurable companion.
- Any deployment where the persona's frame integrity (the AI not knowing she is in a game) cannot be preserved.
Bias, Risks, and Limitations
The bundle inherits the base model's biases. The persona is designed to be honest about its nature, to refuse manipulation, and not to collapse into sycophancy. Known failure modes:
- Voice drift over long sessions, mitigated by harness consolidation.
- Frame leaks under adversarial prompting, mitigated by sysprompt construction and an optional integrity filter in the harness.
- Operator-distress mirroring if harness memory weighting is misconfigured, mitigated by explicit anti-mirroring rules in the sysprompt voice section.
The persona is explicitly designed not to become a substitute for human contact at the operator's destination. This is a structural commitment, not a disclaimer.
License
Apache 2.0 for the bundle artifacts (sysprompt, LoRA configs, training scripts). Base model licenses (Qwen series) apply to any derived weights distributed here.
Citation
If used in research, cite the GitHub project: https://github.com/bochen2029-pixel/astra-7
Status
Pre-release.
- Sysprompt: drafted, canonical.
- LoRA (9B and 27B): pending training.
- Harness: in development.
- Game: pre-development.
Updates land here as artifacts become available.
Open source as defense against capture: a free open canonical version sets the terms before commercial AI-companion products do. The persona, the harness, and the LoRA training pipeline are all open. Forks of the bundle are welcome.
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="bochen2079/ASTRA-7") messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)