[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fRXOtHeuIyJNo3nL6H-fk4F9JDuhsfGk9qjJ3qMoEfvA":3,"$fi3cBMJ4sQYVtqB6UXKAXX9wO5JEgpJ4WdLhYqV0VRYI":6,"$f63-dULBmMWiUGItStXSKbWggJqD9idneEcQYV74ElmU":39},{"success":4,"data":5},true,{},{"success":4,"data":7},{"id":8,"title":9,"description":10,"long_description":11,"image":12,"image_url":13,"technologies":14,"category":21,"github_url":22,"demo_url":23,"featured":4,"status":24,"created_at":25,"updated_at":25,"problem":26,"approach":27,"trouble":28,"result_metric":29,"result_label":30,"role":31,"year":12,"tier":32,"link_status":33,"title_ko":12,"description_ko":34,"problem_ko":35,"approach_ko":36,"trouble_ko":37,"result_label_ko":38},"8b19a309-86d8-493d-9a5a-8e46bbdda696","scenefile","My first npm package: an open-source CLI that turns a short JSON file into an MP4, built so any language model, even one that cannot see images, can make a correct video and fix its own mistakes.","Twelve scene types, ten themes, bundled fonts for Latin and Cyrillic, narration in English and Russian generated on your own machine, captions and a music bed. Its check command lays every scene out in a real browser and reports each problem as text with its fix. An MCP server, recipe skills and a Claude Code plugin let coding agents use it directly.",null,"https:\u002F\u002Fkalandarov.uz\u002Fmedia\u002Fwork\u002Fscenefile.jpg",[15,16,17,18,19,20],"TypeScript","Node.js","Headless browser","ffmpeg","MCP","Vitest","AI","https:\u002F\u002Fgithub.com\u002FXusniddin-devv\u002Fscenefile","https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002Fscenefile","Live","2026-10-14T08:25:03.956596+00:00","Language models can write code but cannot see a video, so they cannot tell when text overflows a frame or a scene runs too long. Video tools built for people give them nothing to read back.","A scenefile is JSON with typed scenes. The engine measures each scene in a real browser and its check command turns every problem into a message with the field's path and a fix, so a model can correct itself in a loop. Rendering runs in several browsers at once and ffmpeg assembles the result; the guide models read is generated from the scene types, and a test fails if it drifts.","On Linux with the ffmpeg Ubuntu ships, a clip after the first scene played at the wrong moment, and it never showed on macOS where the tool was built. Footage is now placed in ffmpeg's own time units whatever its version, and CI renders clips on Linux.","11\u002F12","scenefiles from four inexpensive models passed the full check on the first reply (informal trial, Oct 2026)","Solo build","case","live","첫 npm 패키지. 짧은 JSON 파일을 MP4 영상으로 바꾸는 오픈소스 CLI로, 이미지를 볼 수 없는 언어 모델도 올바른 영상을 만들고 스스로 오류를 고칠 수 있도록 설계했습니다.","언어 모델은 코드를 쓸 수 있지만 영상을 볼 수 없어서, 글자가 화면을 벗어나거나 장면이 너무 길어도 알아차리지 못합니다. 사람을 위한 영상 도구는 모델이 읽을 수 있는 피드백을 주지 않습니다.","scenefile은 장면 타입이 정해진 JSON입니다. 엔진이 실제 브라우저에서 각 장면의 레이아웃을 측정하고, check 명령은 모든 문제를 필드 경로와 해결 방법이 담긴 메시지로 돌려주어 모델이 반복하며 스스로 고칠 수 있습니다. 렌더링은 여러 브라우저에서 병렬로 실행되고 ffmpeg가 영상을 합칩니다. 모델이 읽는 가이드는 장면 타입에서 자동 생성되며, 둘이 어긋나면 테스트가 실패합니다.","Ubuntu에 기본 포함된 ffmpeg를 쓰는 Linux에서는 첫 장면 이후의 클립이 엉뚱한 시점에 재생되었고, 개발 환경인 macOS에서는 이 문제가 드러나지 않았습니다. 이제 영상 배치는 버전과 관계없이 ffmpeg 자체의 시간 단위로 계산되며, CI가 Linux에서 클립을 직접 렌더링합니다.","저가 모델 네 개가 작성한 scenefile 중 첫 응답에서 전체 검사를 통과한 비율 (비공식 시험, 2026년 10월)",{"data":40},[41,42,46,49,52,55,58,61,64,67,71,74,77,80,83,86,89,92,95,98,101,104,107,110,113,116],{"title":9,"title_ko":12,"featured":4,"created_at":25},{"title":43,"title_ko":44,"featured":4,"created_at":45},"MoykaGo","","2026-09-10T08:30:04.940981+00:00",{"title":47,"title_ko":12,"featured":4,"created_at":48},"JobHunterKR","2026-07-20T09:00:00+00:00",{"title":50,"title_ko":12,"featured":4,"created_at":51},"Hannim","2026-07-19T10:55:07.805217+00:00",{"title":53,"title_ko":44,"featured":4,"created_at":54},"Law4Kor","2026-07-18T10:55:07.805217+00:00",{"title":56,"title_ko":12,"featured":4,"created_at":57},"TraWell","2026-07-17T10:55:07.805217+00:00",{"title":59,"title_ko":12,"featured":4,"created_at":60},"GroupWrapped","2026-07-16T10:55:07.805217+00:00",{"title":62,"title_ko":12,"featured":4,"created_at":63},"FootHost","2026-07-16T08:17:25.770148+00:00",{"title":65,"title_ko":12,"featured":4,"created_at":66},"Sening Toy","2026-07-16T06:17:25.770148+00:00",{"title":68,"title_ko":12,"featured":69,"created_at":70},"Stadium Map",false,"2026-07-16T04:17:25.770148+00:00",{"title":72,"title_ko":12,"featured":69,"created_at":73},"UniBridge","2026-07-16T02:23:30.769478+00:00",{"title":75,"title_ko":12,"featured":69,"created_at":76},"Toto Planner","2026-07-16T00:23:30.769478+00:00",{"title":78,"title_ko":12,"featured":69,"created_at":79},"Mekan Games","2026-07-15T22:43:35.782538+00:00",{"title":81,"title_ko":12,"featured":69,"created_at":82},"ManageBirthday","2026-07-15T20:43:35.782538+00:00",{"title":84,"title_ko":12,"featured":4,"created_at":85},"Boardroom","2026-07-15T10:55:07.805217+00:00",{"title":87,"title_ko":12,"featured":69,"created_at":88},"Token Saver","2026-07-14T10:55:07.805217+00:00",{"title":90,"title_ko":12,"featured":69,"created_at":91},"GeoLeads","2026-07-13T10:55:07.805217+00:00",{"title":93,"title_ko":12,"featured":69,"created_at":94},"Rival Radar","2026-07-12T10:55:07.805217+00:00",{"title":96,"title_ko":12,"featured":69,"created_at":97},"Shorts Maker","2026-07-11T10:55:07.805217+00:00",{"title":99,"title_ko":12,"featured":69,"created_at":100},"ChessCoach","2026-07-10T10:55:07.805217+00:00",{"title":102,"title_ko":12,"featured":69,"created_at":103},"ScanDina","2026-07-09T10:55:07.805217+00:00",{"title":105,"title_ko":12,"featured":69,"created_at":106},"VoiceDesk","2026-07-08T10:55:07.805217+00:00",{"title":108,"title_ko":12,"featured":69,"created_at":109},"UniDesk","2026-07-07T10:55:07.805217+00:00",{"title":111,"title_ko":12,"featured":69,"created_at":112},"Hakgil","2026-07-06T10:55:07.805217+00:00",{"title":114,"title_ko":12,"featured":69,"created_at":115},"BIGPIT","2026-07-05T10:55:07.805217+00:00",{"title":117,"title_ko":12,"featured":69,"created_at":118},"Pose Coach","2026-07-04T10:55:07.805217+00:00"]