Signal-K / sytizen

Citizen Science (Sci-tizen) visualisation in the Unity.com engine
http://ar.skinetics.tech/stellarios/compass/#vis
MIT License
1 stars 1 forks source link

🦈🔗 ↝ Generate asset, ID & stats/elements for anomalies when being claimed #32

Open Gizmotronn opened 1 year ago

Gizmotronn commented 1 year ago

See STA-31 STA-32 STA-33 STA-34

Use matplotlib to generate an image (will be a 3d asset in MVP/prod) when an anomaly is being created. Cross-reference it with the metadata mentioned at https://github.com/Signal-K/sytizen/issues/29, i.e. adding new metadata like its radius. This metadata is then used in the Generator component (3JS/Unity as well as in Matplot).

Update the fields to include things like the "seed" in https://steveasleep.com/stellardream/. This should match the seed in the 3JS planet editor:

const seed = usePlanetEditorFieldState('seed', randomSeed(), value => { planet.seed = value; planet.regenerateTerrain(); planet.regenerateShading(); return planet.seed; });

Star system should be the same as the TIC Id (which will cause conflicts between the correct/real fields like radius from lightkurve and the fields created by stellardream → however, this is useful for fictional planets, plus comparing the two identical seeds/ids in-game. Helps to train models/users to identify differences between candidates.

So: Create a planet by entering some fields in a new createPlanet form.

First, a random TIC ID will be sent to the server which will return 1 image (graph) and the estimated radius. This radius is then sent to the Generator:

"Send a request to the python Generator" →

import numpy as np import matplotlib.pyplot as plt

from tqdm import tqdm from noise import double_perlin3D, background

from geometry import normal, cos_vec, reflection from colour import colorize

res = 2048 radius = 0.4 ...

Return this image (saved as examples/out0.png to the client) and then delete it from the server so the next time it is called, the image generated will be saved to the same path.

A planet with id "ticId" is created with a profile image (examples/out0.png) and in its stats, the field "radius" and the graph generated from Lightkurve above.

A copy of a notebook that has that anomaly's dataset will be added to the "profile page" of that anomaly/planet, as well as the 3JS/Unity generator with the radius field filled in from the dataset.

The planet is then owned by the player who generated it. It costs 1 reputation/credit/currency to create it, but they can then earn 2 by adding some new data to it (saved as a new field), which will be a demo of the classification process.

Then, save export its fields from its table (including owner address) to a new lazy minted NFT

Linear info: WB3-14