Files
marf/ifield/data/stanford/__init__.py
2025-01-09 15:43:11 +01:00

77 lines
2.4 KiB
Python

from ..config import data_path_get, data_path_persist
from collections import namedtuple
import os
# Data source:
# http://graphics.stanford.edu/data/3Dscanrep/
__ALL__ = ["config", "Model", "MODELS"]
@(lambda x: x()) # singleton
class config:
DATA_PATH = property(
doc = """
Path to the dataset. The following envvars override it:
${IFIELD_DATA_MODELS}/stanford
${IFIELD_DATA_MODELS_STANFORD}
""",
fget = lambda self: data_path_get ("stanford"),
fset = lambda self, path: data_path_persist("stanford", path),
)
@property
def IS_DOWNLOADED_DB(self) -> list[os.PathLike]:
return [
self.DATA_PATH / "downloaded.json",
]
Model = namedtuple("Model", "url mesh_fname download_size_str")
MODELS: dict[str, Model] = {
"bunny": Model(
"http://graphics.stanford.edu/pub/3Dscanrep/bunny.tar.gz",
"bunny/reconstruction/bun_zipper.ply",
"4.89M",
),
"drill_bit": Model(
"http://graphics.stanford.edu/pub/3Dscanrep/drill.tar.gz",
"drill/reconstruction/drill_shaft_vrip.ply",
"555k",
),
"happy_buddha": Model(
# religious symbol
"http://graphics.stanford.edu/pub/3Dscanrep/happy/happy_recon.tar.gz",
"happy_recon/happy_vrip.ply",
"14.5M",
),
"dragon": Model(
# symbol of Chinese culture
"http://graphics.stanford.edu/pub/3Dscanrep/dragon/dragon_recon.tar.gz",
"dragon_recon/dragon_vrip.ply",
"11.2M",
),
"armadillo": Model(
"http://graphics.stanford.edu/pub/3Dscanrep/armadillo/Armadillo.ply.gz",
"armadillo.ply.gz",
"3.87M",
),
"lucy": Model(
# Christian angel
"http://graphics.stanford.edu/data/3Dscanrep/lucy.tar.gz",
"lucy.ply",
"322M",
),
"asian_dragon": Model(
# symbol of Chinese culture
"http://graphics.stanford.edu/data/3Dscanrep/xyzrgb/xyzrgb_dragon.ply.gz",
"xyzrgb_dragon.ply.gz",
"70.5M",
),
"thai_statue": Model(
# Hindu religious significance
"http://graphics.stanford.edu/data/3Dscanrep/xyzrgb/xyzrgb_statuette.ply.gz",
"xyzrgb_statuette.ply.gz",
"106M",
),
}