JeuWeb - Crée ton jeu par navigateur
Generateur de système solaire - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Generateur de système solaire (/showthread.php?tid=6596)

Pages : 1 2


Generateur de système solaire - Talus - 21-05-2016

Hello a tous

ça vas faire déjà plusieurs semaine que je bosse sur un "bon" generateur de système solaire, et je commence a obtenir quelque chose de vraiment pas mal

c'est un generateur aléatoire, pondéré avec des valeur et des statistique obtenue sur plusieurs site traitant astronomie, il me manque pas mal de valeurs au niveau des étoiles, en faite on ne trouve quasi que des stats sur les étoile de la "main sequence" (comme le soleil), pour les autre etoile c'est un poil plus complexe.


en ce moment je me concentre sur la generation des planètes.
pour ce dernière je réalise mes stats et mes calcule grâce aux articles de ce site : http://phl.upr.edu/home

je suis en train de rajouter a mon generateur les composition d’atmosphère en fonction des constante de planète (mass, radius, orbit, temperature, ....), je calcule aussi des indice permettant de déterminer si la planète est habitable ou non

actuellement le generateur donne du JSON : https://api.global-chaos.fr/api/galaxy
par default time est utilisée comme seed, mais vous pouvez rajouter ?seed=XXXXX, pour générer votre univers en fonction d'un seed de votre choix, la seed doit être numérique

voici une petite page de Doc faite a l'arrache : https://api.global-chaos.fr/doc


si parmi vous il y en aurais qui aurait envie d'aider, je serais prêt a partager mes recherches, et mes stats afin de pouvoir les compléter

en tout cas hésiter pas a laisser vos avis sur ce petit generateur, et dite moi ce qui vous ferrez plaisir comme valeur supplémentaire au data que je genere


PS :

voila les futur amélioration que je compte faire :

- créer un système de positionnement relatif au centre de la galaxie, afin de généré les positon des étoiles,
- rajouter l'age des étoile et en tenir compte dans les calcule
- calculer les température min et max des planètes
- calculer la période de révolution des planètes


RE: Generateur de système solaire - Xenos - 21-05-2016

Oooh, comme dit sur Skype, cela va m'intéresse d'intégrer VariiSpace là dessus, histoire d'avoir des galaxies cohérentes et réalistes Smile (Bon, ce n'est pas pour de suite, mais à terme, ouep, je suis intéressé!)

Tu ferais le partage comment ? Je veux bien essayer d'aider à cela


RE: Generateur de système solaire - seishin - 21-05-2016

Bonjour,

Intéressant

Juste une petite remarque : on parle d'étoile (star) et de système stellaire (star system).

Appeler système solaire tout système est typiquement humain Wink
(cela m'étonne que Xenos n'ait pas fait la remarque Tongue)

Seishin


RE: Generateur de système solaire - Thêta Tau Tau - 21-05-2016

(21-05-2016, 04:08 PM)seishin a écrit : Juste une petite remarque : on parle d'étoile (star) et de système stellaire (star system).

Faux, on parle de système planétaire, un système stellaire est un système constitué de plusieurs étoiles proches qui tournent les unes autours des autres (système binaire, triple...).


RE: Generateur de système solaire - Talus - 21-05-2016

pour faire plaisir a tout le monde j'ai renommer "solar system" en "system" Smile

pour aider ce serait de trouver des statistique sur la population des etoiles.
elle sont classifier avec une code (classification spectrale) par exemple G2V pour le soleil

on a pour la couleur et donc la température : OBAFGKM (il y en a d'autre mais sans trop d’intérêt pour le moment)
O ce sont les étoile les plus chaude et M des froide
ensuite un chiffre de 0 a 9 qui est sa classe de chaleur, dans l’échelle du type de l’étoile
puis de 0 a VII viens la classe de luminosité qui défini sa taille (V étant la "main séquence" ou se trouve le soleil)

dans mon algo je vais d'abord déterminer le type de taille de l’étoile de 0 a VII
or je n'ai pas réussi a trouver de stats sur les populations en fonction de leur taille

ensuite je détermine la classe OBAFGKM, mais la encore a part pour la "main sequence" pas de stats de trouver
et grâce a ça je détermine la température, le radius et la mass du soleil

par exemple pour la "main sequence" j'ai ceci :
Code PHP :
<?php 
"V" => array( //main sequence
   "percent" => 0,
   "class" => array(
      "O" => array( //blue
        "class" => "O",
         "percent" => 0.38,
         "temperature" => array("min" => 25000, "max" => 60000),
         "mass" => array("min" => 16, "max" => 100),
         "radius" => array("min" => 6.6,"max" => 10),
      ),
      "B" => array( //blue white
         "class" => "B",
         "percent" => 0.5,
         "temperature" => array("min" => 10000, "max" => 25000),
         "mass" => array("min" => 2.1, "max" => 16),
         "radius" => array("min" => 1.8, "max" => 6.6),
      ),
      "A" => array( //white
         "class" => "A",
         "percent" => 0.97,
         "temperature" => array("min" => 7500, "max" => 10000),
         "mass" => array("min" => 1.4, "max" => 2.1),
         "radius" => array("min" => 1.4, "max" => 1.8),
      ),
      "F" => array( //yellow white
         "class" => "F",
         "percent" => 3,
         "temperature" => array("min" => 6000, "max" => 7500),
         "mass" => array("min" => 1.04, "max" => 1.40),
         "radius" => array("min" => 1.15, "max" => 1.40),
      ),
      "G" => array( //yellow
         "class" => "G",
         "percent" => 7.6,
         "temperature" => array("min" => 5000, "max" => 6000),
         "mass" => array("min" => 0.80, "max" => 1.04),
         "radius" => array("min" => 0.96, "max" => 1.15),
      ),
      "K" => array( //orange
         "class" => "K",
         "percent" => 12.1,
         "temperature" => array("min" => 3500, "max" => 5000),
         "mass" => array("min" => 0.45, "max" => 0.80),
         "radius" => array("min" => 0.70, "max" => 0.96),
      ),
      "M" => array( //red star
         "class" => "M",
         "percent" => 75.45,
         "temperature" => array("min" => 2500, "max" => 3500),
         "mass" => array("min" => 0.08, "max" => 0.45),
         "radius" => array("min" => 0.40, "max" => 0.70),
      ),
   ),
),

donc globalement je cherche a compléter ces stats par la même mais pour les autres classe et "sous classe" donc si il y a des volontaire hésiter pas ^^

de même pour la répartition de la population au sein d'une galaxie en fonction de la taille, age, mass, .... afin de pouvoir position les system au sein de la galaxie


de mème une fois ça fait je rajouterai un paramètre d'URL pour avoir les système et leur coordonner au position de temps,
en gros sans param sera l’état initial de la galaxie et avec time=100 ce sera la position des système a T+100


RE: Generateur de système solaire - @lucard - 24-05-2016

Salut à tous, j'ai des fichiers comprenant
  1. une listes de 100 000 étoiles découvertes (coodonées + Magnitude + Type)
    [{N:"85", C:[ 903.32012939453, -383.0517578125, 161.67404174805 ],M:819,T: "A2"},
    ...,
    {N:"120404", C:[ -442.91323852539, -1776.1363525391, -82.783866882324 ],M:-288,"Type":"B9"}];
  2. une liste des 10 937 Galaxies proches (< 10^3 Mégaparsec ) sous ce format là :
    Code :
    Galaxy "WLM:DDO 221"
    {
           Type  "Irr"
           RA            0.0328
           Dec         -15.4611
           Distance   3.001e+06 # method: rgb
           Radius          4208
           AbsMag        -13.95
           Axis    [ -0.2128  -0.8243  -0.5246]
           Angle    177.0636
           InfoURL  "http://simbad.u-strasbg.fr/sim-id.pl?Ident=WLM"
    }
  3. Une liste des Amas Globulaires
    Code :
    Globular "NGC 288:Melotte 3:GCl 2:C 0050-268"
    {
           RA              0.8797  # [hours]
           Dec          -26.5900  # [degrees]
           Distance      2.87e+04  # [ly]
           Radius           54.27  # [ly], mu25 Isophote
           CoreRadius        1.42  # [arcmin]
           KingConcentration     0.96  # c = log10(r_t/r_c)
           AbsMag           -6.74  # [V mags]
           Axis       [  0.7644   0.4432   0.4683]
           Angle           148.9  # [degrees]
           InfoURL  "http://simbad.u-strasbg.fr/sim-id.pl?Ident=NGC 288"
    }
  4. Une liste d'éxo-planète
    Code :
    "b" "HD 75732"   # Rho1 Cnc A
    {
    Texture "exo-class3.*"

    Color  [0.53 0.62 1]
    Albedo 0.1

    Mass       260     # M.sin(i) = 0.824 jupiters
    Radius     84000

    InfoURL "http://exoplanet.eu/star.php?st=55+Cnc"

    EllipticalOrbit {
    Period          0.0401
    SemiMajorAxis   0.115
    Eccentricity    0.0159
    Inclination     107
    AscendingNode   123.5
    ArgOfPericenter 263
    MeanAnomaly     90
    }

    Obliquity             107 # guess, to match inclination
    EquatorAscendingNode  124 # guess, to match ascending node

    # likely to be in captured synchronous rotation
    }

    AltSurface "limit of knowledge" "HD 75732/b"
    {
    Texture "extrasolar-lok.*"
    }
  5. Une liste des étoiles proches (avec les orbites des systèmes binaires)
    Code :
    Barycenter "Rigil Kentaurus:Toliman:ALF Cen:Gliese 559"
    {
    RA  219.899437 # mass ratio 1.12:0.93
    Dec -60.835401 #
    Distance 4.365
    }

    71683 # ALF Cen A
    {
    OrbitBarycenter "ALF Cen"
    SpectralType "G2V"
    AppMag 0.01

    EllipticalOrbit {  
    Period           79.85
    SemiMajorAxis    10.68 # mass ratio 1.12:0.93
    Eccentricity      0.52
    Inclination      82.22
    AscendingNode    67.30
    ArgOfPericenter   4.02
    MeanAnomaly     200.13
    }
    }

    71681 # ALF cen B
    {
    OrbitBarycenter "ALF Cen"
    SpectralType "K0V"
    AppMag 1.34

    EllipticalOrbit {  
    Period           79.85
    SemiMajorAxis    12.87 # mass ratio 1.12:0.93
    Eccentricity      0.52
    Inclination      82.22
    AscendingNode    67.30
    ArgOfPericenter 184.02
    MeanAnomaly     200.13
    }
    }
  6. Une liste que d'étoiles binaires (avec commentaires anglais) (les étoiles sont déjà dans le fichier précédent)
  7. Une liste (~3000) de nom d'étoile
    Code :
    0:Sol
    88:TAU Phe
    122:TET Oct
    145:29 Psc
    154:30 Psc
    171:85 Peg
    183:ZET Scl
    186:31 Psc
    194:c Psc:32 Psc
    301:2 Cet
    330:9 Cas
    355:3 Cet
    439:Gliese 1:Cordoba 32416
    443:33 Psc
    476:86 Peg
    531:10 Cas
    664:5 Cet
    677:Alpheratz:Sirrah:ALF And:21 And:DEL Peg
    729:87 Peg
    746:Caph:Cheph:BET Cas:11 Cas
    761:KAP1 Scl
    ...
  8. une liste des objet céleste du Système Solaire (+ un fichier de mise à jour)
    Code :
    "Mercury" "Sol"
    {
    Texture "mercury.*"
    Radius 2440

    CustomOrbit "vsop87-mercury"

    # Overridden by CustomOrbit
    # EllipticalOrbit {
    #    Period            0.2408
    #    SemiMajorAxis     0.3871
    #    Eccentricity      0.2056
    #    Inclination       7.0049
    #    AscendingNode    48.33167
    #    LongOfPericenter 77.456
           #    MeanLongitude   252.251
    # }

    BodyFrame { EquatorJ2000 {} }
    CustomRotation "iau-mercury"

    # Overridden by CustomRotation
    # UniformRotation
    # {
    #    Period       1407.509405
    #    Inclination    28.55
    #    AscendingNode  11.01
    #    MeridianAngle 329.548
    # }

    Albedo            0.06
    }
  9. Une liste des lunes mineures du SS
    Code :
    "Metis:Jupiter XVI:1979 J 3" "Sol/Jupiter"
    {
    Class "minormoon"
    Texture "asteroid.jpg"
    SemiAxes [ 30 20 20 ]

    EllipticalOrbit
    {
    Period 0.294780
    SemiMajorAxis 127979
    Eccentricity 0.0012
    Inclination 0.019
    AscendingNode 263.953 #
    ArgOfPericenter 274.588 # J2000.0
    MeanAnomaly 7.649 #
    }

    RotationOffset 366

    Albedo 0.061
    }
  10. Une liste des aséroïdes (dont certain sont classé comme "planètes naines")
    Code :
    "1 Ceres:Ceres:A899 OF" "Sol"
    {
    Class "dwarfplanet"
    Texture "asteroid.jpg"
    Color [ 1.000 0.945 0.881 ]
    BlendTexture true
    Radius 487.5        # 975x909km
    Oblateness 0.068    # Thomas et al, Nature, 8 Sep 2005

    EllipticalOrbit
    {
    Epoch       2452600.5     # 2002 Nov 22 00:00UT
    Period            4.60014
    SemiMajorAxis     2.7660
    Eccentricity      0.0793
    Inclination      10.584
    AscendingNode    80.483
    ArgOfPericenter  74.043
    MeanAnomaly     232.067
    }

    UniformRotation
    {
    Period         9.074170 # Icarus 2007,188(2):451
    Epoch    2449249.91125  # 1993 Sep 19 09:52:12UT
    Inclination             11
    AscendingNode   29
    MeridianAngle       339.85
    }

    Albedo 0.113
    }
  11. Une liste des planètes naines (hors système solaire, mais attaché au centre gravitationnel du Soleil.) et leur satélite
    Code :
    "13672 Makemake:Makemake:2005 FY9" "Sol" {

    Class "dwarfplanet"
    Texture "asteroid.jpg"
    Radius  850              # estimate

    EllipticalOrbit {
    Epoch        2453600.5    # 2005 Aug 18 00:00UT
    Period           308.329
    SemiMajorAxis     45.640      
    Eccentricity       0.1519
    Inclination       28.998      
    AscendingNode     79.416
    ArgOfPericenter  245.848      
    MeanAnomaly      213.919
      }

    UniformRotation
    {
    Period     48.0   # guess
    }
    }
  12. Une liste des anneaux des planètes du SS.
    Code :
    Location "Lambda Ring" "Sol/Uranus"
    {
       LongLat [ 180 0 24465 ]
       Importance 2000
       Type "XX"
    }

    Location "Epsilon Ring" "Sol/Uranus"
    {
       LongLat [ 180 0 25590 ]
       Importance 2000
       Type "XX"
    }

  13. Une liste de groupe d'étoiles (rassemblées par constellation)
    Code :
    "Centaurus"
    [
    [ "Iota Cen" "D Cen" "Nu Cen" ]
    [ "Theta Cen" "Nu Cen" ]
    [ "Kappa Cen" "Eta Cen" "Nu Cen" "Mu Cen" "Zeta Cen" "Epsilon Cen" "Gamma Cen" "Sigma Cen" "Delta Cen" "Rho Cen" "Pi Cen" "Lambda Cen" ]
    [ "Beta Cen" "Epsilon Cen" "Alpha Cen" ]
    ]
  14. liste des 4 principales comètes
    Code :
    "Halley:1P Halley" "Sol"
    {
    Class "comet"
    Mesh "halley.cmod"
    Texture "asteroid.jpg"
    Radius 7.6 # maximum semi-axis
    MeshCenter [ -0.338 1.303 0.230 ]

    EllipticalOrbit
    {
    Epoch        2449400.5      #1994 Feb 17 00:00UT
    Period            75.31589
    SemiMajorAxis     17.834144
    Eccentricity       0.967143
    Inclination      162.262690
    AscendingNode     58.420081
    ArgOfPericenter  111.332485
    MeanAnomaly       38.384264
    }

    # chaotic rotation, imperfectly defined:
    # this version from "The New Solar System", 4th Edition; Eds.
    # JK Beatty, CC Petersen, A Chaikin
    PrecessingRotation
    {
    Period             170          # 7.1 day axial rotation period
    Inclination         66    
    PrecessionPeriod     0.010      # 3.7 day precession period
    }

    Albedo 0.04
    }



RE: Generateur de système solaire - Talus - 24-05-2016

wouah la vache, ça en fait des données !!!!
serais tu un fana d'astronomie ?

effectivement ça peut être vachement intéressant si n veux pousser le vice au plus loins, en générant les comètes, les astéroïde et tout autre géré de corps céleste
je pense que dans un premier temps je vais analyser le Json des étoiles pour obtenir les stats manquante de populations

dans la finalitee je voudrait pouvoir généré a peu prés tout type de corps céleste, pour créer une véritable api de génération ultime


mais la j'ai un petit soucis, j’arrive plus a me connecter a mon serveur ><


RE: Generateur de système solaire - @lucard - 25-05-2016

Je voulais faire une application mobile sous Unity pour "voir" l'univers en 3D... (Genre de Celestia pour Mobile)
Malheureusement il y a trop de données, et je n'ai pas suffisamment de compétences et de temps (pour accroitre mes compétences), dans la gestion des scripts d'Unity.
L'idée est simple mais l'application (le fait d'appliquer) des données est ... bloquant. x)


RE: Generateur de système solaire - Talus - 25-05-2016

effectivement ça prend pas mal de temps pour comprendre toute ces données et comment les utiliser

pour ma part ce sera avec UE4 que je vais utiliser la sortie du générateur, puis je pense qu'en faire une API ça sera utile a plein de monde


RE: Generateur de système solaire - Talus - 27-05-2016

petite mise a jour :
1 - mini page de docs effectuer : https://api.global-chaos.fr/doc
2 - le endpoint /galaxy est fini jusqu'a retour d'utilisateur
3 - passage de l'api en HTTPS, et HTTP 2, en gros fast & secure

l'api est sur un serveur dédier de bourrin donc déjà de base c'est du fast, mas si on peut faire mieux alors on fait mieux Smile

Prochainement :
1 - endpoint /sun pour gen un soleil seul
2 - endpoint /planet pour gen une planet seul


que voulez qui soit rajouter ?