GridPulse Favicon API

Playground

GridPulse는 작은 3x3 그리드 안에서 움직임 규칙과 색을 조합해, 브랜드 분위기에 맞는 파비콘을 빠르게 만들어주는 생성 API입니다.seed로 시그니처를 고정할 수도 있고,random으로 매번 새로운 버전을 탐색할 수도 있어요.

Features

Rule Variety

움직임/변형 규칙을 바꿔 같은 색이어도 전혀 다른 인상을 만들 수 있습니다.

Deterministic Seed

프로젝트 ID, 사용자명 같은 키를 seed로 넣으면 항상 같은 결과를 재생성합니다.

Multiple Formats

서비스 환경에 맞게 SVG부터 APNG/JSON까지 바로 선택해 사용할 수 있습니다.

Base URL

아래 베이스 주소에 원하는 스타일 파라미터를 붙여서 바로 호출하면 됩니다.

https://studyroom.im/api/gridpulse

Endpoints

GET/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"
GET/api/gridpulse/seed/{seed}

실서비스 적용용 엔드포인트입니다. 같은 seed는 항상 같은 결과를 유지하며, 스타일 관련 쿼리(mode/rule/color/speed 등)는 무시되고 seed 기준으로 자동 결정됩니다.

Path Parameters

ParameterTypeDescription
seedstring고정 키 (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"
LEGACY/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

ParameterTypeDefaultDescription
modestringpointpoint | transform | multi
rulestringmode별 기본값현재 mode의 규칙명 (또는 moveRule/transformRule/multiRule)
presetstringclassicaurora | meteor | chess | duel | rainstorm
energynumber5규칙 강도 (1-9)
chaosnumber30랜덤 개입 강도 (0-100)
biasX / biasYnumber0 / 0이동 편향 (-2~2)
wrapbooleanfalse격자 경계 순환 이동
speednumber300프레임 간격(ms, 50-1200)
frames / sizenumber16 / 64프레임 수(1-60), 출력 크기(16-256)
formatstringsvgsvg | 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가 열려 있어 외부 프론트엔드/대시보드에서도 별도 프록시 없이 직접 호출할 수 있습니다.

studyroom.im