factorio-learning-environment icon indicating copy to clipboard operation
factorio-learning-environment copied to clipboard

Static Production

Open kiankyars opened this issue 5 months ago • 4 comments

afaik "static" production refers to items that are directly obtained through basic actions like harvesting resources or crafting items. This is not what is observed in practice

e.g. a program which crafts iron plates but we don't see it in the observation log

Image Image Image

kiankyars avatar Jul 22 '25 15:07 kiankyars

Static achievements are always empty if:

  • No resources are harvested or items crafted between pre and post production flows.
  • The production flow data is missing or unchanged.
  • All produced items are immediately consumed, so there's no net output increase.

Static = harvested + crafted items (not automated).
If your program doesn't harvest/craft, or the flow data is wrong, static achievements will be empty.
Check the harvested and crafted fields in pre/post flows to debug.

kiankyars avatar Jul 22 '25 17:07 kiankyars

The gym observation space was meant to capture whatever was being used in the original environment and trajectory runner loop. In this case the info is coming from ThroughputTask.verify() -> TaskResponse which uses eval_program_with_achievements() which uses AchievementTracker.calculate_achievements() where there's a base case where you would get {"static": {}, "dynamic": {}}. Maybe it's hitting the base case and thus is a silent error?

kantneel avatar Aug 06 '25 10:08 kantneel

I think you're right there's something not right here. The fact that eval_program_with_achievements() calls self.instance.eval_with_error seems off.

kantneel avatar Aug 06 '25 10:08 kantneel

thanks for checking it might be hitting the base case like you mention

kiankyars avatar Aug 06 '25 11:08 kiankyars