Skip to content

Instantly share code, notes, and snippets.

View santolucito's full-sized avatar
🛠️
Building

Mark Santolucito santolucito

🛠️
Building
View GitHub Profile
"""
Amaranth implementation of the bit operation synthesizer for FPGA.
This module implements the same bit operations (identity, not, shift_left, shift_right)
as the Python version, but in synthesizable Amaranth HDL for FPGA deployment.
"""
from amaranth import *
from amaranth.sim import Simulator, Tick, Delay
# amaranth_sygus_pbe_demo.py
#
# Minimal Amaranth demo for a SyGuS-style PBE bitvector task on FPGA-like hardware.
# It enumerates a tiny fixed-shape program: y = op2( op1(x, c0), c1 )
# over 4-bit values, and checks each candidate against example IO pairs stored in ROM.
# A candidate that satisfies all examples is reported as a solution.
#
# This is a hardware-accelerated-friendly shape: the checker is a small pipeline; the
# enumerator steps through configuration space (op1, op2, c0, c1). On real FPGA you would
# replicate the checker and/or feed batches; here we simulate with Amaranth's Simulator.
@santolucito
santolucito / loop.py
Created October 28, 2024 08:30
claude aoe2 computer use
"""
Agentic sampling loop that calls the Anthropic API and local implementation of anthropic-defined computer use tools.
basically the same as https://github.com/anthropics/anthropic-quickstarts/blob/8f734fd08c425c6ec91ddd613af04ff87d70c5a0/computer-use-demo/computer_use_demo/loop.py
just with a few changes to reduce overhead
"""
import platform
from collections.abc import Callable
from datetime import datetime
from enum import StrEnum
@santolucito
santolucito / ChargeLevelTTGO.ino
Created February 12, 2024 07:46
ESP32 TTGO T1 power demo
//this code will show you the battery charge left on the screen
//and dim the screen (to conserve power)
//and go to sleep when you press the left builtin button
//to wake it up again, just hit the reset button on the side
//download as zip and add to libraries folder in Arduino folder https://github.com/pangodream/18650CL
#include <Pangodream_18650_CL.h>
#define ADC_PIN 34
@santolucito
santolucito / main.py
Created December 1, 2023 11:33
Flippy donut in blender
# https://youtu.be/9nT23gPfEb8
import bpy
import math
#delete all objects
bpy.ops.object.select_all(action='SELECT')
bpy.ops.object.delete()
#delete all materials
for m in bpy.data.materials:
import bpy
import random
#delete all objects
bpy.ops.object.select_all(action='SELECT')
bpy.ops.object.delete()
#delete all materials
for m in bpy.data.materials:
bpy.data.materials.remove(m)
@santolucito
santolucito / main.py
Created November 28, 2023 19:06
blender bpy example with keyframes
import bpy
#delete all objects
bpy.ops.object.select_all(action='SELECT')
bpy.ops.object.delete()
#delete all materials
for m in bpy.data.materials:
bpy.data.materials.remove(m)
#create a new material
@santolucito
santolucito / blender_minimal.py
Last active November 28, 2023 18:57
Minimal Blender bpy script for COMS1002
import bpy
#delete all objects
bpy.ops.object.select_all(action='SELECT')
bpy.ops.object.delete()
#delete all materials
for m in bpy.data.materials:
bpy.data.materials.remove(m)
#create a new material
@santolucito
santolucito / machine.js
Created September 24, 2023 22:35
Generated by XState Viz: https://xstate.js.org/viz
const musicMachine = Machine(
{
id: 'music',
initial: '0',
states: {
0 : {
on: {
t11:
{description: 'not((inCave passage)) and not((inMarket passage)) and not((inTown passage))',
@santolucito
santolucito / test.py
Created November 1, 2022 02:28
blender example
import bpy
import random
bpy.ops.object.select_all(action='SELECT')
bpy.ops.object.delete()
from math import sin, pi
bpy.ops.object.empty_add()
cameraPath = bpy.context.active_object
cameraPath.keyframe_insert("location", frame=1)