Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 16 additions & 2 deletions spec/2025-09.md
Original file line number Diff line number Diff line change
Expand Up @@ -1307,7 +1307,8 @@ Note that the visualizer would not typically be invoked by the judging system, t
## Output visualizer

An output visualizer is an optional [program](#programs) that is run after every invocation of the output validator in order to generate images illustrating the submission output.
An output visualizer program must be an application (executable or interpreted) capable of being invoked with a command line call. It is invoked using the same arguments as the output validator, except that `output_validator_args` is replaced with `output_visualizer_args`.
An output visualizer program must be an application (executable or interpreted) capable of being invoked with a command line call.
It is invoked using the same arguments as the output validator, except that `output_validator_args` is replaced with `output_visualizer_args`.
It must be provided as a program (as specified [above](#programs)) in the directory `output_visualizer/`.
If the problem type is `interactive`, the file `team_output` passed via stdin will be an empty file.
If the problem type is `multi-pass` but not `interactive`, then `team_output` will contain the output of the submission from the last pass.
Expand All @@ -1318,7 +1319,20 @@ If the output visualizer does not have sufficient data to generate an adequate v
The visualizer may overwrite or create image files in the feedback directory with the name `teamimage.ext` or `judgeimage.ext`, where `ext` is one of: `png`, `jpg`, `jpeg`, or `svg`.
It must not write to `score.txt`, `teammessage.txt`, or any other files in the feedback directory other than those of the form `teamimage.ext` or `judgeimage.ext`.

Compile or run-time errors in the visualizer are not judge errors. The return value and any data written by the visualizer to standard error or standard output are ignored.
Compile or run-time errors in the visualizer are not judge errors.
The return value and any data written by the visualizer to standard error or standard output are ignored.
Judge systems may impose limits on the output visualizer's usage of resources, including runtime, memory or the amount of output written to stdout.
Exceeding any of these limits is not a judge error.
It is recommended that the judge system allows the output visualizer at least 5 seconds of runtime.
To avoid timeouts, it is advisable to limit the output size, as the input to the visualizer is typically user-controlled.

When writing an output visualizer, one should take care to ensure that it is portable.
In particular:
- Avoid using precompiled binary libraries or executables, such as FFmpeg.
- Avoid languages not guaranteed to be present, such as Java.
- Avoid relying on libraries not included in the standard library, such as Pillow.

To generate `png`, `jpg` or `jpeg` files, it is recommended to use an image-writing library that is not precompiled.

## Result aggregation

Expand Down