GridPulse는 작은 3x3 그리드 안에서 움직임 규칙과 색을 조합해, 브랜드 분위기에 맞는 파비콘을 빠르게 만들어주는 생성 API입니다.seed로 시그니처를 고정할 수도 있고,random으로 매번 새로운 버전을 탐색할 수도 있어요.
Features
Rule Variety
움직임/변형 규칙을 바꿔 같은 색이어도 전혀 다른 인상을 만들 수 있습니다.
Deterministic Seed
프로젝트 ID, 사용자명 같은 키를 seed로 넣으면 항상 같은 결과를 재생성합니다.
Multiple Formats
서비스 환경에 맞게 SVG부터 APNG/JSON까지 바로 선택해 사용할 수 있습니다.
Base URL
아래 베이스 주소에 원하는 스타일 파라미터를 붙여서 바로 호출하면 됩니다.
https://studyroom.im/api/gridpulseEndpoints
/api/gridpulse/random아이디어 탐색용 엔드포인트입니다. 호출할 때마다 결과가 바뀌며, 여기서는 seed를 사용하지 않습니다.
Example Request
curl "https://studyroom.im/api/gridpulse/random?mode=point&rule=inertia&format=webp&speed=140&trail=1&energy=8&chaos=45"/api/gridpulse/seed/{seed}실서비스 적용용 엔드포인트입니다. 같은 seed는 항상 같은 결과를 유지하며, 스타일 관련 쿼리(mode/rule/color/speed 등)는 무시되고 seed 기준으로 자동 결정됩니다.
Path Parameters
| Parameter | Type | Description |
|---|---|---|
| seed | string | 고정 키 (username, project-id, hash 등) |
Example Request
curl "https://studyroom.im/api/gridpulse/seed/gridpulse-v2?format=webp"If You Need Manual Style Control
curl "https://studyroom.im/api/gridpulse?seed=gridpulse-v2&mode=transform&rule=kaleidoscope&format=apng&frames=24&preset=aurora"/api/favicon레거시 연동을 위해 유지되는 호환 경로입니다. 신규 연동은 /api/gridpulse/* 사용을 권장합니다.
curl "https://studyroom.im/api/favicon?seed=legacy-seed&mode=multi&rule=repel&format=svg"Seed 동작 가이드
/api/gridpulse/seed/{seed}는 스타일 전체를 seed에서 결정합니다. seed 경로에서 mode/rule을 직접 지정하고 싶다면 /api/gridpulse?seed=... 경로를 사용하세요.
Seed-sensitive 규칙
seed에 따라 결과가 달라지는 규칙
randomWalk, knightJump, teleport, inertia, conway, rain, chase, snakeFollow
Seed-insensitive 규칙
동일 파라미터면 seed와 무관하게 동일 결과
spiral, clockwise, counterClockwise, bounce, gravity, edgeRunner, pulse, rotate, mirror
# seed 경로: 스타일 전체를 seed에서 자동 결정
curl "https://studyroom.im/api/gridpulse/seed/aaa?format=json"
curl "https://studyroom.im/api/gridpulse/seed/bbb?format=json"
# 규칙을 고정해 비교하고 싶다면 base 경로 + seed 쿼리 사용
curl "https://studyroom.im/api/gridpulse?seed=aaa&mode=point&rule=randomWalk&format=json"
curl "https://studyroom.im/api/gridpulse?seed=bbb&mode=point&rule=randomWalk&format=json"Query Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
| mode | string | point | point | transform | multi |
| rule | string | mode별 기본값 | 현재 mode의 규칙명 (또는 moveRule/transformRule/multiRule) |
| preset | string | classic | aurora | meteor | chess | duel | rainstorm |
| energy | number | 5 | 규칙 강도 (1-9) |
| chaos | number | 30 | 랜덤 개입 강도 (0-100) |
| biasX / biasY | number | 0 / 0 | 이동 편향 (-2~2) |
| wrap | boolean | false | 격자 경계 순환 이동 |
| speed | number | 300 | 프레임 간격(ms, 50-1200) |
| frames / size | number | 16 / 64 | 프레임 수(1-60), 출력 크기(16-256) |
| format | string | svg | svg | png | gif | webp | apng | json |
Usage Examples
웹, 앱, 서버 스크립트에서 바로 복붙해 적용할 수 있는 가장 자주 쓰는 패턴입니다.
HTML
<img
src="https://studyroom.im/api/gridpulse/seed/team-alpha?format=svg"
alt="Team Favicon"
/>React
function ProjectIcon({ projectId }: { projectId: string }) {
const src = "/api/gridpulse/seed/" + encodeURIComponent(projectId)
+ "?format=webp&size=96";
return <img src={src} alt="Project icon" />;
}cURL
# Random animated webp
curl -o gridpulse.webp "https://studyroom.im/api/gridpulse/random?mode=point&rule=teleport&format=webp&frames=24&trail=1"
# Deterministic JSON sequence
curl "https://studyroom.im/api/gridpulse/seed/sample-key?format=json"CORS
모든 GridPulse API 엔드포인트는 CORS가 열려 있어 외부 프론트엔드/대시보드에서도 별도 프록시 없이 직접 호출할 수 있습니다.