04Content Services
MaterialService
MaterialService holds the material definitions parts use: one .mat.toml file per material in the Space's MaterialService
folder, loaded into a MaterialRegistry of named materials. A definition sets
PBR factors and optional texture maps (base color, normal,
metallic-roughness, occlusion, emissive, depth). Texture paths resolve against
the Space first, then the engine's bundled library, and every map is
mipmapped as it loads. The bundled library repeats every 4 m with no visible
seam.
[material]
name = "CustomBrick"
preset = "Brick"
# Factors multiply the maps.
[pbr]
base_color = [1.0, 1.0, 1.0, 1.0]
roughness = 1.0
metallic = 0.0
# metallic_roughness is packed glTF-style:
# R = occlusion, G = roughness, B = metallic.
[textures]
base_color = "textures/brick_base_color.png"
normal = "textures/brick_normal.png"
metallic_roughness = "textures/brick_orm.png"
occlusion = "textures/brick_orm.png"A part uses a material through its Material property, by name. Materials and textures in depth are covered in Building.
SoundService
SoundService is where audio belongs. The Insert menu's Audio group puts a new
Sound here when nothing is selected, and the Space loader recognizes audio
files (.ogg, .mp3, .wav,
.flac) in this folder only. Eustress Engine does not play
audio yet; Audio covers what is stored today and
what comes next.
Its template lists AmbientReverb (NoReverb), DistanceFactor (3.33), DopplerScale (1), RolloffScale (1), VolumeScale (0.5) and RespectFilteringEnabled (false). No system reads these values yet.
Data, Experiments, Adornments
- DataService holds Data Platform objects: Dataset, Series, Column, Run and Connector. Connect on the Data tab creates a REST Connector here, with its endpoint, poll interval in seconds and format to fill in through Properties. A new Connector starts switched off. Once enabled, a Connector whose source is SAM.gov or Grants.gov polls it on its interval, never more often than every 60 seconds; other source types are not polled yet.
- ExperimentService is the place for designs, the parts they are made of, the laws wiring those parts, and every run over them. Its Properties rows (Designs, Runs, Envelopes, Conflicts, FreeParameters, Unfalsifiable) are read-only counts that nothing computes yet.
- AdornmentService holds beams, billboards, particles and highlights. Instance files placed loose in its folder load as objects.
Website
Website holds the values a website reads. Publishing bakes them into a single
manifest at universes/{id}/website-manifest.json for a site to
fetch. Its Properties panel carries the manifest's Namespace and
SchemaVersion and the rows for its access key. The whole workflow is in Website Service.