Skip to main content

robot-jungol

robot-jungol is a small Python package for Jungol-style robot programming problems. It provides a grid-world robot API, Pillow-based rendering, action logs, and helpers that judge runners can use to capture and replay submitted robot actions.

The distribution name is robot-jungol. The primary import package is jungol_robot, and the package also keeps Jungol-compatible top-level modules such as robot and robot_judge.

Robot world screenshot

Installation

Install from GitHub:

python -m pip install git+https://github.com/hancomac/robot-jungol.git

For local development:

python -m pip install -e ".[dev]"

Quick Start

The top-level robot module is the compatibility entry point used by existing judge environments:

from robot import Beeper, Robot, Wall, World

world = World(width=5, height=5, walls=[Wall((1, 0), (2, 0))])
world.add_piece(Beeper(position=(2, 2)))

robot = Robot(position=(0, 0), direction="R", beepers=1)
world.add_piece(robot)

robot.set_trace("red")
robot.move()
robot.turn_left()
robot.drop_beeper()

You can also import the package API directly:

from jungol_robot import Robot, World

Judge Helpers

robot_judge runs a submitted Python file, captures logged robot actions, and emits a machine-readable line prefixed with __ROBOTLOG__.

from robot_judge import extract_actions_from_output, run_robot_judge, simulate_robot

run_robot_judge(path="User.py")

actions = extract_actions_from_output(output_text)
final_x, final_y, final_direction = simulate_robot(actions)

If a saved world should be loaded when World() is created, pass world_file or world_path to run_robot_judge. This sets the ROBOT_WORLD_SAVE environment variable for the duration of the run.

Image Output

Interactive robot actions can emit image payloads for judge UIs. Set IMG_OUT_DIR to a writable directory to produce images.jsonl and per-frame JSON files.

Supported environment variables:

  • IMG_OUT_DIR: output directory for image JSON payloads
  • IMG_MAX_WIDTH: maximum emitted image width, default 1280
  • IMG_MAX_HEIGHT: maximum emitted image height, default 720
  • IMG_WEBP_QUALITY: WebP output quality, default 85

Development

Run the test suite with the standard library test runner:

python -m unittest discover -s tests

Build source and wheel distributions:

python -m build

License

MIT. Portions are derived from the urobot project.

Metadata

Release files for robot-jungol 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for robot-jungol 0.1.0
File Size Uploaded Provenance Actions
robot_jungol-0.1.0.tar.gz 61.2 kB With provenance Details for robot_jungol-0.1.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for robot-jungol 0.1.0
File Interpreter ABI Platform Actions
robot_jungol-0.1.0-py3-none-any.whl Python 3 none any Details for robot_jungol-0.1.0-py3-none-any.whl

Total release size: 85.3 kB

Release files / robot_jungol-0.1.0.tar.gz

Download URL robot_jungol-0.1.0.tar.gz
Size 61.2 kB
Tags Source
SHA-256 checksum
How to use checksums
4954ee7322fe3fedea57f65cc605d9f8e6b86d2d03e395c2eb1398b39ba94e4d
BLAKE2b-256 checksum
How to use checksums
003499754d5cf41293841fc651e89fd9bedfac1dc7d5b6cd82fefd6fcc128006
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 23, 2026.

Transparency log

Release files / robot_jungol-0.1.0-py3-none-any.whl

Download URL robot_jungol-0.1.0-py3-none-any.whl
Size 24.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b97ffec043a1bdcd7925995675ac4e849bb77ae7a5bb018a20f6a6c000259025
BLAKE2b-256 checksum
How to use checksums
e940e1923ea60810a4d8c973d385ec52b7e3c1ebf9c9474fc5035d8ba73c06b5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 23, 2026.

Transparency log

Security for robot-jungol 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for robot_jungol-0.1.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 23, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page