This commit is contained in:
bmachado
2025-11-05 00:24:05 +00:00
commit b8856c0660
1157 changed files with 26817 additions and 0 deletions

197
readme.md Normal file
View File

@ -0,0 +1,197 @@
# ARC Render
A toolkit for rendering and managing ARC (Abstraction and Reasoning Corpus) puzzle data with Retool integration.
## Project Structure
```
arc_render/
├── src/ # JavaScript rendering components
│ ├── arcRender.js
│ ├── arcRender_retool.js
│ ├── arcRender_retool_inline.js
│ └── arcRender_testOutput_inline.js
├── scripts/ # Python utility scripts
│ ├── upload_to_db.py
│ ├── extract_solutions.py
│ ├── verify_solutions.py
│ ├── generate_v1_csv.py
│ ├── generate_v2_csv.py
│ ├── generate_v1_list.py
│ ├── generate_sql.py
│ ├── list_v1_task_ids.py
│ └── check_and_fix_column.py
├── data/ # ARC puzzle data
│ ├── v1/ # ARC v1 datasets
│ ├── v2/ # ARC v2 datasets
│ ├── examples/ # Example puzzle files
│ ├── training.txt
│ └── evaluation.txt
├── docs/ # Documentation
│ ├── RETOOL_DATABASE_SETUP.md
│ ├── RETOOL_INLINE_SETUP.md
│ ├── RETOOL_USAGE.md
│ ├── ARC_V1_TASK_IDS_README.md
│ └── test.html
├── .env # Environment configuration
├── todo.md # Project tasks
└── readme.md # This file
```
## Overview
We are going to write a code to be used within retool to render ARC Problems JSON objects as visual renderings.
## Description of the JSON notation used by ARC-PRIZE:
The JSON contains two sets of grids, 'train' and 'test'. Each containing multiples GRIDS arranged in pairs INPUT-OUTPUT.
### train sets
These are the grids to teach the agent on how to grids behave in a before and after transformation.
The grid sizes may be variable across Input and Output grids.
## Representing the Grids
Each grid is represented individually, with each row being an array with the number of elements equal to the number of columns the grid has. So a 4x4 grid, would have 4 arrays with 4 elements inside each.
Each of these elements is represented by a not null numeric value that varies from 0 to 10, each value is representative of a color as indicated in the Color Code section below.
## Color code
0 = black
1 = blue
2 = red
3 = green
4 = yellow
5 = grey
6 = magenta
7 = orange
8 = light blue
9 = dark red
# Objective
We are to make a Javascript code that takes these Jsons and represent visually the grids contained in them in pair forms "INPUT-OUTPUT", with the execption of the Test Output Grid which will require a separate code so we can toggle it and save its value separately.
# Requeriments
- The code must be done in simple Javascript compatible with Retool
- No Frameworks or additional dependencies are allowed (ex. React, Vue etc)
- Display the graphic as an HTML
## 1. Layout
- Training examples should be displayd side-by-side (Input - Output) for each pair a line.
## 2. Test Output
- We are making a separate code to display it in a differente element.
## 3. Retool Integration
- Will the JSON be passed as a JavaScript variable (e.g., {{ query1.data }})?
YES
- Should the component accept a JSON string or parsed object?
Yes
- Need any interactivity (click cells, zoom, export)?
No
## 4. Multiple Grids Display
- Should it handle displaying one puzzle at a time or multiple puzzles?
Only one Puzzle at a time, with all its grids (Train and Test). We are going to load each problem individually for visualization
## 5. Styling Preferences
- Cell border color/width?
Option A: Fixed pixel size per cell
E.g., 20px × 20px per cell
Large grids may overflow or require scrolling
Simple and consistent
- Spacing between INPUT and OUTPUT grids?
Adjusted to the width of the frame with enough space to make them visually separate. Maybe about 1 or two cells of separation
- Spacing between different training examples?
1 or two lines
- Overall padding/margins?
No padding or margins necessary
- Dark mode or light background?
Transparent, since all cells with have a solid color, thats not an issue.
- Borders
Also make the border of the grids black 2px
Individual Cell Borders - a light grey, just to help separate the cells.
You mentioned "border of the grids black 2px" - do you mean:
Border around the entire grid (like a picture frame)? YES
## 6. Function Signature
- What should the main function look like? For example:
"function renderArcPuzzle(jsonData, options) { ... }
// or
renderArcGrid(grid, containerElement) { ... }"
We are going with Option A, Direct HTML Generation.
ex:
// Returns HTML string that Retool injects into an HTML component
function renderArcPuzzle(jsonData) {
// ... generate HTML ...
return htmlString;
}
// Usage in Retool HTML component:
{{ renderArcPuzzle(query1.data) }}
## 7. Labels and Titles
Should each grid pair have labels? No
"Train Example 1", "Train Example 2", etc.?
"Input" / "Output" labels above each grid? NO
"Test Input" / "Test Output" for test section?
Or no labels at all (grids only)? No labels necessary just to separate TRAIN from TEST grids
## 8. Test Section Display
Option B: Display test INPUT and OUTPUT side-by-side (like training pairs)
AND the TEST Input, we are not presenting the TEST Output [this would be separate program just for the Test Output, which is the answer to the puzzle]
This seems contradictory. Let me confirm - for the TEST section, should I: Option A: Show ONLY test INPUT (no output at all) YES! Dont show the TEST Output grid.
## 9. Grid Dimensions Display
Should we show the grid dimensions somewhere (e.g., "30×30" label)? This could be helpful since grids vary in size. Yes that's helpful! Lets show that.
## 10. Color Palette Confirmation
The corrected color code (0-9):
0 = black (#000000)
1 = blue (#0074D9)
2 = red (#FF4136)
3 = green (#2ECC40)
4 = yellow (#FFDC00)
5 = grey (#AAAAAA)
6 = magenta (#F012BE)
7 = orange (#FF851B)
8 = light blue (#7FDBFF)
9 = dark red (#85144b)
Should I use standard ARC colors or would you prefer different hex values?
Yes use the ARC standard colors.