Đến nội dung

Bộ Dữ Liệu Solver Ba Băng — Dữ Liệu Thế Bi Carom Mở

100 thế bi; 249 kết quả hợp lệ trong mô hình và 151 ô trống/bị loại, kèm manifest và JSON miễn phí.

Tác giả: Setviva Engineering 708 từ 4 phút đọc

Dữ liệu mô phỏng có phiên bản gồm 100 thế bi, 249 kết quả hợp lệ trong mô hình và 151 ô trống hoặc bị loại (400 ô đã đánh giá). Nguồn là cache vật lý tất định có phiên bản, không phải nghiên cứu thành công trên bàn thật.

100
thế bi
249
kết quả solver hợp lệ
151
ô kết quả trống hoặc bị loại
400
ô kết quả đã đánh giá
50
ba băng
50
carom tự do

Phương pháp

Dữ liệu công bố được tạo từ bộ nhớ đệm solver có phiên bản. Hồ sơ engine, dấu vân tay nguồn, số lượng và SHA-256 được ghi để kiểm tra độc lập. Mỗi kết quả chỉ là kết quả mô phỏng, không phải xác suất thành công trên bàn thật.

Dữ liệu mô phỏng có phiên bản

Hợp đồng engine
3ball-carom-match-v2 / physics 2.0.0 / solver 4.2.0
SHA-256 dữ liệu
256a8ec7e7e9a66d907bd43f5fdd6b87628dc067fd9621f2d2ebd2472c3e43ed
kết quả solver hợp lệ
249
ô kết quả trống hoặc bị loại
151
Trạng thái đánh giá
machine-assisted-reviewed

Tải manifest

Từ điển trường

position: cueIdx, mode, firstIdx, balls, shots · ball: color, p.x, p.y · shots[]: shot {angle, power, sideSpin, topSpin}, label, length, margin, pct, tol, perturbPct, cushions.

Kiểm tra dữ liệu tải công khai

Kiểm tra xác nhận tính toàn vẹn tệp và số lượng. Nó không tái tạo động cơ vật lý, xác minh độc lập cú đánh hay chứng minh độ chính xác bàn thật. Môi trường tạo dữ liệu đầy đủ không được phân phối công khai.

Lưu nội dung dưới đây thành verify_3ball.py và chạy bằng Python 3. Chỉ dùng thư viện chuẩn và tải JSON công khai từ 3ball.app; không cần tài khoản hoặc bản sao dự án.

import hashlib, json, urllib.request

BASE = 'https://3ball.app/'
ALLOWED = {'data/solutions_cache.json', 'data/solutions_cache_v3.json'}
def download(path):
    with urllib.request.urlopen(BASE + path, timeout=30) as response:
        return response.read(2_000_001)

manifest = json.loads(download('data/research-manifest.json'))
for key in ('source', 'portfolioBeta'):
    record = manifest if key == 'source' else manifest[key]
    source = record['source']
    assert source['path'] in ALLOWED, 'Unexpected dataset path'
    raw = download(source['path'])
    assert len(raw) == source['bytes'], 'File size mismatch'
    assert hashlib.sha256(raw).hexdigest() == source['sha256'], 'Hash mismatch'
    data = json.loads(raw)
    positions = list(data['positions'].values())
    assert len(positions) == record['counts']['positions'], 'Position count mismatch'
    if key == 'source':
        shots = [s for p in positions for s in p['shots']]
        assert sum(s is not None for s in shots) == record['counts']['validShots']
        assert sum(s is None for s in shots) == record['counts']['rejectedSlots']
    else:
        continuations = list(data['continuations'].values())
        assert len(continuations) == record['counts']['continuations']
        solutions = [s for p in positions + continuations for s in p['solutions']]
        assert sum(s is not None for s in solutions) == record['counts']['solutions']
    print(source['path'], 'OK', record['counts'])

Phạm vi và giới hạn

Đây là dữ liệu mô phỏng tất định, không phải nghiên cứu tỉ lệ thành công trên bàn thật. Cache công bố dùng hồ sơ V2 đã đóng băng. Physics V3 vẫn chờ đo độc lập. Biên và độ bền là chẩn đoán mô hình, không phải xác suất thực tế.

Giấy phép và quyền riêng tư

Tệp tải chỉ có tọa độ bàn tính toán và đầu ra solver; không có ảnh, định danh tài khoản, văn bản tự do hay dữ liệu cá nhân. Giấy phép CC BY 4.0.

Thế bi mẫu

Thế biChế độBiCú solverBiên tốt nhất
3cushion::white::r2.130,0.710|w0.710,0.528|y0.710,0.710ba băng331.15
freecarom::white::r2.130,0.710|w0.710,0.528|y0.710,0.710carom tự do311.32
3cushion::yellow::r2.130,0.710|w0.710,0.528|y0.710,0.710ba băng310.94
freecarom::yellow::r2.130,0.710|w0.710,0.528|y0.710,0.710carom tự do311.36
3cushion::white::r2.550,0.500|w0.300,0.300|y2.500,1.100ba băng340.28
freecarom::white::r2.550,0.500|w0.300,0.300|y2.500,1.100carom tự do340.50
3cushion::yellow::r2.550,0.500|w0.300,0.300|y2.500,1.100ba băng320.97
freecarom::yellow::r2.550,0.500|w0.300,0.300|y2.500,1.100carom tự do342.13
3cushion::white::r0.550,0.300|w1.420,0.710|y1.950,1.100ba băng311.47
freecarom::white::r0.550,0.300|w1.420,0.710|y1.950,1.100carom tự do321.50
3cushion::yellow::r0.550,0.300|w1.420,0.710|y1.950,1.100ba băng310.24
freecarom::yellow::r0.550,0.300|w1.420,0.710|y1.950,1.100carom tự do320.92

Tải toàn bộ dữ liệu

Bộ dữ liệu máy đọc đầy đủ được tải và dùng lại miễn phí kèm ghi nguồn.

Tải JSON

Cách dùng

Đặt vị trí trong công cụ theo tọa độ mẫu và danh tính bi chủ. Kết quả V2 cố định có thể khác phát lại V3 hiện tại; ghi phiên bản động cơ khi so sánh.

Mở trình tập

Đặt vị trí trong công cụ theo tọa độ mẫu và danh tính bi chủ. Kết quả V2 cố định có thể khác phát lại V3 hiện tại; ghi phiên bản động cơ khi so sánh.

Mở trình tập →