Spotify: öppna ♫ Spotify · spellista i flygpanelen och tryck play.
Musiken kräver internet och styrs av Spotifys spelare. Stäng musik stoppar den.
Bråvalla GeoJSON: viewer/bravalla.geojson, även länkad från Om scenen.

JAS 39 Gripen — offline WebGL2

STARTA
Dubbelklicka på Gripen-offline.html. Modellen, texturerna och Three.js är
inbäddade i filen. Ingen internetanslutning eller webbserver behövs.
Webbläsaren måste ha WebGL2 aktiverat. Välj Fri kamera för att rotera och zooma.
I cockpit: dra för att se dig omkring.

ALTERNATIV: VANLIG WEBBSIDA
Dubbelklicka på Starta-visaren.command och öppna http://127.0.0.1:8765.
Den servern använder bara datorns loopback-adress och kräver inte internet.
Stäng servern med Ctrl+C. Python 3 behövs för detta alternativ.
Kopiera hela viewer-mappen till en webbserver för att integrera visaren.

VERSION 8 — KARTLAGT BRÅVALLA OCH TAKTISK LÄGESBILD
Två korsande banor, vägnät och byggnadskonturer från OpenStreetMap.
Lokal höjdmodell från Mapzen Terrain Tiles; start på kartlagd tröskel 06.
Jämfört med OSM-kartan och Joshua06:s foton från 2019 av verkstad och torn.
Byggnadshöjder och fasader är uppskattade; inte en exakt historisk kopia.
Höjddata finns runt Bråvalla, inte över hela kartan. MSL = över havet,
AGL = över lokal terräng. GNSS-ellipsoidhöjd är inte samma sak som MSL.
Övrig mark är fortfarande förenklad. Se references/bravalla/README.txt.

Kartan har militärt inspirerad lägesbild, koordinatnät, ringar, track-ID,
true heading och tre närskalor; detta är inte en autentisk NORAD-kopia.
Kamera 9 visar hela Bråvalla. 1 NM-kartan visar detaljer kring eget flygplan.
WGS84-position och MSL-höjd är separerade från kameran; UTM 33N används
för gemensamma meterkoordinater. Framtida multiplayer kan använda samma
positioner via snapshot/relativePosition. Ingen nätanslutning till andra
piloter finns ännu. Se references/MULTIPLAYER-COORDINATES.txt.

VERSION 7 — BRÅVALLA TILL GOTLAND
Automatisk start från illustrativ Bråvalla-bana, sedan Bråviken och Gotland.
Autopilot är standard och cirklar i sökområdet. Välj Manuell flygning
för A/D eller piltangenter: sväng, W/S eller upp/ned: höjd. Pekknappar finns.
1×, 5× och 20× restid. Starten begränsas till högst 5×.
Översiktskarta visar position, kurs, rutt, sökområde och upptäckta mål.
Kustkonturer kommer från Natural Earth; mark och byggnader är förenklade.
Startområde kan väljas för att snabbt besöka Linköping/kusten/Gotland.
Tre illustrativa målfartyg upptäcks inom 12 km. Målkamera (8) öppnas efter
upptäckt. Avfyrning/träffar är förenklade speleffekter. Kondens vid sväng.
Radioval spelar en av tre originalfilmer via synlig YouTube-spelare.
Internet behövs; ingen TTS-radio används. Motorljudet förblir syntetiskt.
Version 6-beskrivningen nedan är historik och dess radiolägen är ersatta.
Testat: automatisk start och hel rutt till Gotland, manuell sväng/stigning,
återstart, koordinater, målupptäckt och träff, originalspelare, WebGL utan fel.

VERSION 6 — FLYGSCEN OCH RADIO
Förfinat huvglas, cockpitram, pilotdetaljer och tre animerade instrument.
Procedurgenererad skärgård med höjder, träd och hus, moln och dagsljusval.
FFT-hav från mkling.org/experiments/wave-dynamics (David Li, MIT).
Sju kameror; cockpit med förenklad HUD. 1–7 byter kamera, A/D roll,
W/S nosläge, R återställer. Avfyrning mot tre virtuella målflottar.
Efterbrännare och blinkande fenljus är visuella approximationer.
Motorljud och radio styrs separat. Tre kanaler med egna repliker och
syntetiskt tal: kustflygning, formation och engelsk övningsradio.
Originalradio från Försvarsmaktens film kan öppnas i separat YouTube-
spelare; den kräver internet. Inget originalljud har kopierats in.
Offline-röster beror på vilka röster enheten har installerade.

Detta är en visuell flygstudie, inte en komplett flygsimulator. HUD,
flygdata och vapeneffekter är förenklade. Kusten är inspirerad av filmerna,
inte en geografiskt exakt kopia. Grundmodellens UV-upplösning kvarstår.
Tidigare versionsbeskrivningar nedan är historik; v6 ersätter gamla reglage.

VERIFIERING VERSION 6
113 794 trianglar, glTF Validator 0 fel och 0 varningar.
Samma GLB inbäddad i offlinefilen; inga externa skript eller modellfiler.
Sju kameravyer och radioväljare visuellt testade i WebGL2 utan konsolfel.
Robot/bomb och träffeffekter testade. Originalradions spelare laddad.
Mobilvy kunde inte verifieras: verktygets breddöverskrivning tog inte effekt.
Återskapa v6-modellen: Blender --background --python scripts/refine_flight.py.
Se references/FLIGHT-REFERENCES.txt för källor och begränsningar.

VERSION 5 — PILOT OCH COCKPIT
Statisk, egenmodellerad pilot med flygdräkt, väst, sele, hjälm, krökt visir,
syrgasmask, ribbad slang, handskar och stövlar. Armarna är placerade mot
spak och gasreglage. Piloten är generisk; ingen specifik person återskapas.
Cockpit har fått tätningar, lås, sidokonsoler, vred, märkningar, skenor,
bakre däck och kablage. Grova äldre apparatblock har ersatts.
Små ytmonterade ventilationsdetaljer har tillkommit på flygkroppen.
Den målade yttexturen och dess upplösning från version 4 är oförändrade.

Pilot & stol visar en närbild utan huvglas. Visa pilot växlar synlighet.
Cockpit döljer piloten så att instrumenten kan granskas.
Den nya Wikipedia-länken levererade exakt samma 3008 × 1960-original
som den föregående referensen, verifierat med filernas SHA-1.
Fotot visar inte alla cockpitdetaljer; inredningen är approximativ och
instrumenten är statiska. Ingen anatomisk eller teknisk exakthet utlovas.

VERSION 4 — FOTOGRAFISK YTREFERENS
Referens: https://sv.wikipedia.org/wiki/Fil:Swedish_JAS-39_Gripen_landing.jpg
Foto: Msgt. Billy Johnston, USAF, 1 september 2003 (public domain).

Lacken har anpassats till neutralgrå färg, ljus nos, diskret patina,
smuts kring paneler och mörkare akter. 179, FARA, gula servicemarkeringar
 och lågkontrast-kronmärken finns i den reviderade texturen.
Separat roughness-textur styr den matta lackens glans. Luftintagen är
mörka och matta; utblåsets metall har dämpats.
Överlappande geometriska kronmärken från arbetsversion 3 har tagits bort
för att eliminera flimmer. Den nya atlasen är 1254 × 1254 pixlar.

Ytdetaljer, Akter & fena och Sidovy ger jämförbara utsnitt. Cockpit visar
instrumenten. Återställ vy återställer även automatisk rotation.

Grundmodellen är FlightGear-modellen och tidigare detaljering finns kvar:
807 nitar, statiska cockpitdetaljer och förenklade dekorativa yttre laster.
Flygkonfigurationen utan landningsställ behålls. Detta är en visuell
approximation, inte en exakt rekonstruktion av flygplanet i fotografiet.
Grundmodellens geometri och UV-upplösning begränsar extremt nära vyer.
Texturen är AI-redigerad från den tidigare UV-atlasen med fotot som visuell
referens; enskilda små stenciler och paneler är approximativa.

FILER
blender/gripen.blend — förfinad modell, packade texturer, kamera och studioljus.
blender/gripen-preview.png — Blender-rendering av slutversionen.
viewer/models/gripen.glb — export med inbäddade texturer.
viewer/index.html och app.js — vanlig WebGL2-visare med lokala beroenden.
Gripen-offline.html — fristående HTML med all renderingskod och modell inbäddad.
backups/v1, backups/v2 och backups/v4 — tidigare versioner för jämförelse/återskapande.
scripts/refine_gripen.py — reproducerbar detaljering av v1 i Blender.
scripts/cockpit_pilot.py — bygger revision 5 från backups/v4.
scripts/render_cockpit.py — separat närbild med dolt huvglas.
scripts/surface_photo.py — applicerar fotoanpassad yta på v2 och exporterar GLB.
scripts/render_preview.py — studioljus och förhandsbild.
blender/textures — albedo, roughness och Imagegen-prompt.
references — fotografi och källuppgifter.
scripts/build_offline.py — bygger HTML-filen med esbuild (argument: binärens sökväg).
source/JAS39-Gripen — ursprunglig FlightGear-källa inklusive licens.

KÄLLA OCH LICENS
https://github.com/FGMEMBERS/JAS39-Gripen
Commit: cd4cd2f42a8d8495abccaedaffca080b5b3d476c
Emmanuel Baranger (Helijah), med FGMEMBERS/FlightGear-bidrag.
GPL-2.0 enligt källprojektet; se source/JAS39-Gripen/COPYING.
Behåll attribution, licens och motsvarande källor när paketet delas.
Three.js 0.186.1: MIT, se viewer/vendor/LICENSE-three.txt.

VERIFIERING 2026-10-10
GLB: 104,288 trianglar, 7,614,560 byte.
Khronos glTF Validator: 0 fel, 0 varningar.
Alla GLB-texturer är inbäddade; HTML innehåller exakt samma GLB.
Inga externa skript eller modellhämtningar behövs i Gripen-offline.html.
Visuellt granskat i Blender-rendering och WebGL2 via lokal HTTP:
helhet, ytdetaljer, akter/fena, sidovy, pilot, pilotens synlighetsreglage
och cockpit. Inga konsolfel.
Direktöppning av file:// har inte testats automatiskt.
blender/web-preview.jpg visar den verifierade webbversionen.

ÅTERSKAPA
1. Blender --background --python scripts/refine_gripen.py (v1 till v2)
2. Blender --background --python scripts/surface_photo.py (använder backups/v2)
   Revision 5: Blender --background --python scripts/cockpit_pilot.py (backups/v4)
3. Blender --background --python scripts/render_preview.py
4. python3 scripts/build_offline.py /sökväg/till/esbuild
5. node scripts/validate.cjs /sökväg/till/gltf-validator
Den tidigare scripts/sharp_markings.py ingår INTE i slutversionens arbetsgång.
På denna Mac finns Blender i /Applications/Blender.app/Contents/MacOS/Blender.
