iArt.ai
AI 모션 그래픽 소프트웨어, 누구나 사용할 수 있는 After Effects 대안, 텍스트 프롬프트로 몇 분 안에 애니메이션·설명 영상 제작
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Website of Prospekt, the iPhone lens simulator: a free lens comparison tool and focal length tables for 59 cameras, in 15 languages
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗The website for Prospekt, the iPhone lens simulator, live at https://prospekt.nakolini.com and served by GitHub Pages from main.
It has five kinds of pages, in 15 languages (the app's own, without Russian), all plain HTML that reads fine without JavaScript:
/: what the app does, price, privacy, limits, an honest comparison, FAQ./lens-compare/: a free lens comparison tool. Pick a body (and optionally a second one), focal lengths or zooms, and see the frames over a photo (a sample, or your own; it never leaves the browser) or over a standing person drawn to scale, with what each lens covers at a subject distance and how far to stand to fit a subject. Links are shareable: /lens-compare/?body=fujifilm-x-t5&f=23,33,56&d=3&u=m./cameras/ and /cameras/<body>/: focal length, full-frame equivalent and angle-of-view tables for every body in the app, plus what 24-135 mm cover at 1-10 m and portrait distances./guides/, /compare/<a>mm-vs-<b>mm/ and /focal-length/<use>/: question-shaped pages ("35 mm or 50 mm?", "best focal length for portraits") that answer first, then give the numbers for full frame, APS-C and Micro Four Thirds, the trade-offs and a link to the tool with those focal lengths. The pairs and uses are COMPARISONS and GUIDES in gen/build.py; their copy is the compare.*, guide.* and guides.* keys./changelog/: every release.404.html is the page GitHub Pages serves for any missing path. It's English only, kept out of search (noindex), and its links start at the site root (/cameras/) because it can be served at any depth.
English is at the root, other languages under /<lang>/ (/de/, /pt-br/, /zh-hans/...), linked with hreflang.
make build # regenerate every page from data/ and i18n/
make test # unit tests, translation parity, built-site checks (needs node for the JS parity test)
make check # build + test + fail if the committed output is stale (CI runs this)
make bodies # re-export the camera list from ../prospekt (PROSPEKT=path to override)
make serve # http://localhost:8000
Python 3.9+ standard library only. No dependencies.
gen/build.py: the generator and every page template. BASE_URL (canonical host) and PROVIDER_TOKEN (App Store campaign attribution) are at the top.site.css and lens-compare.js with ?v= and a hash of their content (asset_url), so a deploy never pairs new HTML with a cached old file. Rebuild after editing either.gen/lensmath.py: field-of-view math. assets/lens-compare.js has the same formulas for the tool; gen/tests/test_js_parity.py keeps them identical.data/bodies.json: generated from the app's CameraBody.curated; never edit by hand. data/mounts.json: lens mount per body, edited by hand. The tests fail if a body has no mount entry.i18n/<lang>.json: all page copy. en.json is the source; every other file must have the same keys and {placeholders} (tested).support.html, privacy.html, terms.html: hand-written, English only, linked from the App Store listing. Don't move them.favicon.ico and assets/icon-*.png, assets/apple-touch-icon.png: the app icon for browser tabs, the header logo, home-screen bookmarks and the app's JSON-LD image. Made from the app's AppIcon.png (1024 px, square) with ImageMagick: the PNGs and the .ico get iOS-style rounded corners (radius 22.4 % of the side) over transparency, the touch icon stays square because iOS rounds it itself.favicon.ico (index.html, CNAME, the IndexNow key file, lens-compare/, cameras/, changelog/, <lang>/, sitemap.xml, robots.txt, llms.txt) is generated. Edit the generator, not the output.make bodies, add its mount to data/mounts.json, make build.CHANGELOG in gen/build.py and the strings to every i18n/*.json.i18n/en.json, then update the same key in every other language. A key missing from a language falls back to English in the build, but the i18n tests fail until it's translated.COMPARISONS or GUIDES in gen/build.py and its strings to i18n/*.json (compare.<a>_<b>_answer and _choose_<n>, or guide.<slug>_name, _h1, _answer, _why_1-3, _use_<focal>, _faq_1-3_q/_a).https://prospekt.nakolini.com (Cloudflare CNAME prospekt → nakolini.github.io, DNS only). BASE_URL in gen/build.py drives canonical URLs, hreflang, the sitemap and the generated CNAME file; GitHub redirects the old nakolini.github.io/prospekt-site/ URLs there.python3 scripts/indexnow.py to notify Bing, Yandex, Seznam and Naver (the <key>.txt file at the root proves ownership). Google reads sitemap.xml from robots.txt; submit it once in Search Console.The person scene in the tool (the "Person" tile) is drawn by assets/lens-compare.js (drawScene), so it needs no credit. Sample photos (SAMPLES in gen/build.py, each credited in the footer of pages that show it):