diff --git a/.gitattributes b/.gitattributes index 97e3af63a920a5ea0f7b5df38c0fa59ede575786..e6844e6b46f6f001b86e106f626ef40c5e9a3726 100644 --- a/.gitattributes +++ b/.gitattributes @@ -38,3 +38,16 @@ assets/user/embedding/mteb-leaderboard.png filter=lfs diff=lfs merge=lfs -text assets/user/illustration/agent-workflow.jpg filter=lfs diff=lfs merge=lfs -text assets/user/linkedin/banner.png filter=lfs diff=lfs merge=lfs -text assets/user/linkedin/profile.png filter=lfs diff=lfs merge=lfs -text +assests/embedding_links/arena.ai_leaderboard[[:space:]](2).png filter=lfs diff=lfs merge=lfs -text +assests/embedding_links/mteb-leaderboard.hf.space_.png filter=lfs diff=lfs merge=lfs -text +assests/illustration/agent_working_story.jpg filter=lfs diff=lfs merge=lfs -text +assests/linkedin[[:space:]]bg[[:space:]](4).png filter=lfs diff=lfs merge=lfs -text +assests/profile-pic.png filter=lfs diff=lfs merge=lfs -text +assests/slide_wise_new/body_animationv1.svg filter=lfs diff=lfs merge=lfs -text +assests/slide_wise_new/bodyanimationv2.webm filter=lfs diff=lfs merge=lfs -text +assests/slide_wise_new/brain-1791631278192.svg filter=lfs diff=lfs merge=lfs -text +assests/slide_wise_new/brain-1791631695827.svg filter=lfs diff=lfs merge=lfs -text +assests/slide_wise_new/embedding_model.gif filter=lfs diff=lfs merge=lfs -text +assests/slide_wise_new/mcp_architecture.png filter=lfs diff=lfs merge=lfs -text +assests/slide_wise_new/mcp_componenet_illustration.png filter=lfs diff=lfs merge=lfs -text +assests/slide_wise_new/React_chain_of_thought.png filter=lfs diff=lfs merge=lfs -text diff --git a/assests/.DS_Store b/assests/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..c8b69875618bd03bcfce0f1ef3a774a48452a15d Binary files /dev/null and b/assests/.DS_Store differ diff --git a/assests/certification/coursera.png b/assests/certification/coursera.png new file mode 100644 index 0000000000000000000000000000000000000000..f7ca87f2431201a82046f69fbbc9829d70e339e9 Binary files /dev/null and b/assests/certification/coursera.png differ diff --git a/assests/certification/deeplearning.png b/assests/certification/deeplearning.png new file mode 100644 index 0000000000000000000000000000000000000000..36b53415fab97dc530d75105e1967d83034e2d92 Binary files /dev/null and b/assests/certification/deeplearning.png differ diff --git a/assests/certification/nptel-logo.png b/assests/certification/nptel-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..306a45ffc5fb8231b1edcd49ee0e020af4332bb1 Binary files /dev/null and b/assests/certification/nptel-logo.png differ diff --git a/assests/cw2_company.jpg b/assests/cw2_company.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4af78e5df7cb4d58475cdac51409f7d70eda9989 Binary files /dev/null and b/assests/cw2_company.jpg differ diff --git a/assests/embedding_links/COT_Chain_Of_thought_example.png b/assests/embedding_links/COT_Chain_Of_thought_example.png new file mode 100644 index 0000000000000000000000000000000000000000..3e07ac5c08e7f8c18e2bb236020125791e904878 Binary files /dev/null and b/assests/embedding_links/COT_Chain_Of_thought_example.png differ diff --git a/assests/embedding_links/arena.ai_leaderboard (2).png b/assests/embedding_links/arena.ai_leaderboard (2).png new file mode 100644 index 0000000000000000000000000000000000000000..2c8d53489d37261bbe8da6716f2f5cad97d6276f --- /dev/null +++ b/assests/embedding_links/arena.ai_leaderboard (2).png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:242dbba55ac27ed8d9ff0815c851fb34a67791aff88c21465fceb0161a0c9296 +size 218036 diff --git a/assests/embedding_links/links.txt b/assests/embedding_links/links.txt new file mode 100644 index 0000000000000000000000000000000000000000..2cfa7649940306a429d2c285c9c0adeac1276e7f --- /dev/null +++ b/assests/embedding_links/links.txt @@ -0,0 +1,3 @@ +mteb leaderboard - https://mteb-leaderboard.hf.space/ +lmarena leaderboard - https://lmarena-ai-arena-leaderboard.static.hf.space + diff --git a/assests/embedding_links/mteb-leaderboard.hf.space_.png b/assests/embedding_links/mteb-leaderboard.hf.space_.png new file mode 100644 index 0000000000000000000000000000000000000000..a592cb19868e100a430661927452714a3eb8ed1c --- /dev/null +++ b/assests/embedding_links/mteb-leaderboard.hf.space_.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d33d5d8a65277b47d96940986111a2f97cd93a9e401ff7e9e128eaf90c447369 +size 175838 diff --git a/assests/html_sample/brain_motion_v4.zip b/assests/html_sample/brain_motion_v4.zip new file mode 100644 index 0000000000000000000000000000000000000000..87f05efd4703a68a56b2b141c5978d43e3dcafb9 --- /dev/null +++ b/assests/html_sample/brain_motion_v4.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:48a69c13e697f21cc078a52a27598d65a71aa6d5fa7903ae6c4c3fce5682ad49 +size 48385 diff --git a/assests/html_sample/index1.html b/assests/html_sample/index1.html new file mode 100644 index 0000000000000000000000000000000000000000..1be87f55387e36c8c85fe7b9bb7997c202bd8a77 --- /dev/null +++ b/assests/html_sample/index1.html @@ -0,0 +1,553 @@ + + + + + +Brain Motion — SVG Video Studio + Color Grade + + + +
+
+ +
+

Brain Motion — SVG Video Studio

+

Video → SVG cells with transparent export + full color grading. Works as a static site.

+
+ Fable Edition • Color Grade +
+ +
+ + +
+
+

Preview

Checker = transparent +
+
+ +
Choose a video or image.
Add SVG icons to use them as cells.
+
+
+ + + 0:00 / 0:00 +
+

Ready.

+
+
+
+ + + + + diff --git a/assests/html_sample/index2.html b/assests/html_sample/index2.html new file mode 100644 index 0000000000000000000000000000000000000000..75c8f53f20fafc78b630bc214d43c9b37e658d1b --- /dev/null +++ b/assests/html_sample/index2.html @@ -0,0 +1,1464 @@ + + + + + +Brain Motion — SVG Video Studio + + + + + +
+
+ +
+

Brain Motion — SVG Video Studio

+

Turn video into animated SVG-cell artwork with a transparent background.

+
+
+ +
+ + +
+
+

Preview

+ The checkerboard indicates transparent pixels. +
+ +
+ +
Choose a video to start.
Add one or more SVG files to use them as animated cells.
+
+ +
+ + + 0:00 / 0:00 +
+ +

Ready. Choose a video to begin.

+
+
+
+ + + + + + + \ No newline at end of file diff --git a/assests/html_sample/index3.html b/assests/html_sample/index3.html new file mode 100644 index 0000000000000000000000000000000000000000..620f5b5daa3e6860c2d373b076ec2b26e67ae345 --- /dev/null +++ b/assests/html_sample/index3.html @@ -0,0 +1,1587 @@ + + + + + +Brain Motion — SVG Video Studio + + + + + +
+
+ +
+

Brain Motion Studio

+

Transform video into dynamic SVG-cell artwork with transparency & color grading.

+
+
+ +
+ + +
+
+

Preview

+ Checkerboard = Transparency +
+ +
+ +
+
✦
+
Choose a video to start.
Add SVGs to use them as animated cells.
+
+
+ +
+ + + 0:00 / 0:00 +
+ +

Ready. Load a video to begin.

+
+
+
+ + + + + + + \ No newline at end of file diff --git a/assests/html_sample/index4.html b/assests/html_sample/index4.html new file mode 100644 index 0000000000000000000000000000000000000000..5eff9d96a384cc4d10fb70cf1db6c6c821e31e26 --- /dev/null +++ b/assests/html_sample/index4.html @@ -0,0 +1,1666 @@ + + + + + +Brain Motion Studio v4 — Custom Palette & Shades + + + + + +
+
+ +
+

Brain Motion Studio v4

+

Transform video into dynamic SVG-cell artwork with custom color palette & shades of black.

+
+
+ +
+ + +
+
+

Preview

+ Checkerboard = Transparency +
+ +
+ +
+
✦
+
Choose a video to start.
Add SVGs to use them as animated cells.
+
+
+ +
+ + + 0:00 / 0:00 +
+ +

Ready. Load a video to begin.

+
+
+
+ + + + + + + diff --git a/assests/html_sample/ping_pong.html b/assests/html_sample/ping_pong.html new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/assests/illustration/COT_Chain_Of_thought_example.png b/assests/illustration/COT_Chain_Of_thought_example.png new file mode 100644 index 0000000000000000000000000000000000000000..3e07ac5c08e7f8c18e2bb236020125791e904878 Binary files /dev/null and b/assests/illustration/COT_Chain_Of_thought_example.png differ diff --git a/assests/illustration/agent_working_story.jpg b/assests/illustration/agent_working_story.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1c5aa6562041c981df03f52aaca43a5d2e5a59f6 --- /dev/null +++ b/assests/illustration/agent_working_story.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:876c4b0374b4a9aceee37fda0a058acd48dca8ce9758eee908c867ca08390f3c +size 286864 diff --git a/assests/illustration/anthropic-light.svg b/assests/illustration/anthropic-light.svg new file mode 100644 index 0000000000000000000000000000000000000000..8632f70b0430e90a672560329fe8895c9555c2a9 --- /dev/null +++ b/assests/illustration/anthropic-light.svg @@ -0,0 +1 @@ +Anthropic \ No newline at end of file diff --git a/assests/illustration/docling.svg b/assests/illustration/docling.svg new file mode 100644 index 0000000000000000000000000000000000000000..b64e1732ec45950d222bae6388a0856d1b910e63 --- /dev/null +++ b/assests/illustration/docling.svg @@ -0,0 +1,305 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assests/illustration/huggingface-color.svg b/assests/illustration/huggingface-color.svg new file mode 100644 index 0000000000000000000000000000000000000000..dc1cf3ffb77fb795d2c2ec82efd58813ccd50b59 --- /dev/null +++ b/assests/illustration/huggingface-color.svg @@ -0,0 +1 @@ +HuggingFace \ No newline at end of file diff --git a/assests/illustration/langchain (1).webp b/assests/illustration/langchain (1).webp new file mode 100644 index 0000000000000000000000000000000000000000..0d696e075ca480363cfdb3f00fbeb769139b2b88 Binary files /dev/null and b/assests/illustration/langchain (1).webp differ diff --git a/assests/illustration/langchain-color.svg b/assests/illustration/langchain-color.svg new file mode 100644 index 0000000000000000000000000000000000000000..939b79989a77a021838aa741f768766c16e20ad8 --- /dev/null +++ b/assests/illustration/langchain-color.svg @@ -0,0 +1 @@ +LangChain \ No newline at end of file diff --git a/assests/illustration/llamaindex-color.svg b/assests/illustration/llamaindex-color.svg new file mode 100644 index 0000000000000000000000000000000000000000..99be517874ead7ecc6ac99dbb110f0895b98a1b5 --- /dev/null +++ b/assests/illustration/llamaindex-color.svg @@ -0,0 +1 @@ +LlamaIndex \ No newline at end of file diff --git a/assests/illustration/rag_indexing.avif b/assests/illustration/rag_indexing.avif new file mode 100644 index 0000000000000000000000000000000000000000..3a396466504a393629eb690aa66f6b9dab938e43 Binary files /dev/null and b/assests/illustration/rag_indexing.avif differ diff --git a/assests/illustration/rag_retrieval_generation.avif b/assests/illustration/rag_retrieval_generation.avif new file mode 100644 index 0000000000000000000000000000000000000000..4999d32e8a069cec9f62bcb7b07f4bccb6767dde Binary files /dev/null and b/assests/illustration/rag_retrieval_generation.avif differ diff --git a/assests/illustration/smolagent.webp b/assests/illustration/smolagent.webp new file mode 100644 index 0000000000000000000000000000000000000000..4be2c482082e0d2f08c88336d89a71f2b1f2f55e Binary files /dev/null and b/assests/illustration/smolagent.webp differ diff --git a/assests/illustration/unstructured-color.svg b/assests/illustration/unstructured-color.svg new file mode 100644 index 0000000000000000000000000000000000000000..502dd6335d90b7d060a0f21c8223abe6a63cdb61 --- /dev/null +++ b/assests/illustration/unstructured-color.svg @@ -0,0 +1 @@ +Unstructured \ No newline at end of file diff --git a/assests/learning reference/2 blue 3 brown.jpg b/assests/learning reference/2 blue 3 brown.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7a398e314216a71e155501b95298748f095ef18f Binary files /dev/null and b/assests/learning reference/2 blue 3 brown.jpg differ diff --git a/assests/learning reference/5 minutes engineering.jpg b/assests/learning reference/5 minutes engineering.jpg new file mode 100644 index 0000000000000000000000000000000000000000..58c715dd4aac19135662690fb3e7b94b6598a7cf Binary files /dev/null and b/assests/learning reference/5 minutes engineering.jpg differ diff --git a/assests/learning reference/analytics_india_magazine_logo.jpg b/assests/learning reference/analytics_india_magazine_logo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..770d3114251fe8c3f2284378d9d3c046b8ff342e Binary files /dev/null and b/assests/learning reference/analytics_india_magazine_logo.jpg differ diff --git a/assests/learning reference/arenaai_logo.jpg b/assests/learning reference/arenaai_logo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..259677d03b0ae60d7e3c16d13a5ad4606c90f66c Binary files /dev/null and b/assests/learning reference/arenaai_logo.jpg differ diff --git a/assests/learning reference/campusx.jpg b/assests/learning reference/campusx.jpg new file mode 100644 index 0000000000000000000000000000000000000000..87aedf8083c2893a7a64b055ddfc806f71b43cad Binary files /dev/null and b/assests/learning reference/campusx.jpg differ diff --git a/assests/learning reference/codewithharry.jpg b/assests/learning reference/codewithharry.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5898195a5470d27fa9eda2a8c595239d9648de09 Binary files /dev/null and b/assests/learning reference/codewithharry.jpg differ diff --git a/assests/learning reference/evolving_ai_logo.jpg b/assests/learning reference/evolving_ai_logo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..cb4f2ca037708c5fc84e15df00596dd7f5a84be3 Binary files /dev/null and b/assests/learning reference/evolving_ai_logo.jpg differ diff --git a/assests/learning reference/graduate_ml.jpg b/assests/learning reference/graduate_ml.jpg new file mode 100644 index 0000000000000000000000000000000000000000..254aa4f2fd87a91294faa1ea1d5f16d78f6ec725 Binary files /dev/null and b/assests/learning reference/graduate_ml.jpg differ diff --git a/assests/learning reference/krish_naik.jpg b/assests/learning reference/krish_naik.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b56f6c73012d2e5179bfbbe71e2614f1e08cae18 Binary files /dev/null and b/assests/learning reference/krish_naik.jpg differ diff --git a/assests/learning reference/nptel.jpg b/assests/learning reference/nptel.jpg new file mode 100644 index 0000000000000000000000000000000000000000..40371f0c94904de3f481dc3ccb8751734f40fe4d Binary files /dev/null and b/assests/learning reference/nptel.jpg differ diff --git a/assests/learning reference/varun mayya.jpg b/assests/learning reference/varun mayya.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e143156c6dd6cc7cd8305dd521f95b09094fe5b0 Binary files /dev/null and b/assests/learning reference/varun mayya.jpg differ diff --git a/assests/linkedin bg (4).png b/assests/linkedin bg (4).png new file mode 100644 index 0000000000000000000000000000000000000000..2857af6f268bdb502a62f51ecf081458cfe16efe --- /dev/null +++ b/assests/linkedin bg (4).png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cf05862ac06d23326ebee8067aa66e71c9762fc1fce2a0d72163ca079a245c42 +size 506478 diff --git a/assests/linkedin-profile-card.html b/assests/linkedin-profile-card.html new file mode 100644 index 0000000000000000000000000000000000000000..e03cc950a2807d65bb966b2cf41fb2f9173dc0c7 --- /dev/null +++ b/assests/linkedin-profile-card.html @@ -0,0 +1,166 @@ + + + + + +LinkedIn Dynamic Profile Card + + + + +
+
Banner Image URL +
+ + +
+
+
Profile Image URL +
+ + +
+
+
Company Logo URL +
+ + +
+
+
+ +
+
+ + +
+ Dev Patel + Profile image +
+ +
+

Dev Patel + + + + +

+

AI/ML Engineer @Codewinglet || Building Next-Gen AI Solutions ...

+

Bardoli, Gujarat

+ +
+
+ + Upload/paste custom logo URL +
+ Codewinglet Private Limited +
+
+
+
+ + + + diff --git a/assests/logos set whites/anthropic (1).svg b/assests/logos set whites/anthropic (1).svg new file mode 100644 index 0000000000000000000000000000000000000000..5b81844cbdc94d180845f87cc8da7697f1fadc21 --- /dev/null +++ b/assests/logos set whites/anthropic (1).svg @@ -0,0 +1 @@ +Anthropic \ No newline at end of file diff --git a/assests/logos set whites/antigravity-color.svg b/assests/logos set whites/antigravity-color.svg new file mode 100644 index 0000000000000000000000000000000000000000..3ed10ab651023d4fa2e14f70a820a071fd83ebdb --- /dev/null +++ b/assests/logos set whites/antigravity-color.svg @@ -0,0 +1 @@ +Antigravity \ No newline at end of file diff --git a/assests/logos set whites/claude-color.svg b/assests/logos set whites/claude-color.svg new file mode 100644 index 0000000000000000000000000000000000000000..2585098ef05d2e25acd5508d3558f7d7b7e390a8 --- /dev/null +++ b/assests/logos set whites/claude-color.svg @@ -0,0 +1 @@ +Claude \ No newline at end of file diff --git a/assests/logos set whites/codex-color (1).svg b/assests/logos set whites/codex-color (1).svg new file mode 100644 index 0000000000000000000000000000000000000000..522a18d7452ab33496df004a8f692aa3424f8853 --- /dev/null +++ b/assests/logos set whites/codex-color (1).svg @@ -0,0 +1 @@ +Codex \ No newline at end of file diff --git a/assests/logos set whites/deepseek-color.svg b/assests/logos set whites/deepseek-color.svg new file mode 100644 index 0000000000000000000000000000000000000000..3fc2302406e22f064f3efda71d8a7bcf0fc1dd41 --- /dev/null +++ b/assests/logos set whites/deepseek-color.svg @@ -0,0 +1 @@ +DeepSeek \ No newline at end of file diff --git a/assests/logos set whites/gemini-color (1).svg b/assests/logos set whites/gemini-color (1).svg new file mode 100644 index 0000000000000000000000000000000000000000..62681dfa7cf3db2940b527ed3cbcee7bacbb1b9b --- /dev/null +++ b/assests/logos set whites/gemini-color (1).svg @@ -0,0 +1 @@ +Gemini \ No newline at end of file diff --git a/assests/logos set whites/grok.svg b/assests/logos set whites/grok.svg new file mode 100644 index 0000000000000000000000000000000000000000..efb1a6183cbd9d1b68471805dc6c663e2a6fd7ff --- /dev/null +++ b/assests/logos set whites/grok.svg @@ -0,0 +1 @@ +Grok \ No newline at end of file diff --git a/assests/logos set whites/huggingface-color.svg b/assests/logos set whites/huggingface-color.svg new file mode 100644 index 0000000000000000000000000000000000000000..dc1cf3ffb77fb795d2c2ec82efd58813ccd50b59 --- /dev/null +++ b/assests/logos set whites/huggingface-color.svg @@ -0,0 +1 @@ +HuggingFace \ No newline at end of file diff --git a/assests/logos set whites/kimi-color.svg b/assests/logos set whites/kimi-color.svg new file mode 100644 index 0000000000000000000000000000000000000000..83878fa284769ca2729c272a310cce3a375b5746 --- /dev/null +++ b/assests/logos set whites/kimi-color.svg @@ -0,0 +1 @@ +Kimi \ No newline at end of file diff --git a/assests/logos set whites/minimax-color.svg b/assests/logos set whites/minimax-color.svg new file mode 100644 index 0000000000000000000000000000000000000000..36bc72535b13e107c9fd179ac445173455d995b3 --- /dev/null +++ b/assests/logos set whites/minimax-color.svg @@ -0,0 +1 @@ +Minimax \ No newline at end of file diff --git a/assests/logos set whites/mistral-color.svg b/assests/logos set whites/mistral-color.svg new file mode 100644 index 0000000000000000000000000000000000000000..8e03e244bf1035d2d4ea81e1c226a4c8c4ebd3c4 --- /dev/null +++ b/assests/logos set whites/mistral-color.svg @@ -0,0 +1 @@ +Mistral \ No newline at end of file diff --git a/assests/logos set whites/openai.svg b/assests/logos set whites/openai.svg new file mode 100644 index 0000000000000000000000000000000000000000..336816ef2e384f1b7e6eda70b71a61a100ab70fb --- /dev/null +++ b/assests/logos set whites/openai.svg @@ -0,0 +1 @@ +OpenAI \ No newline at end of file diff --git a/assests/logos set whites/qwen-color.svg b/assests/logos set whites/qwen-color.svg new file mode 100644 index 0000000000000000000000000000000000000000..6acaec9c01c4f7a13d370bedb445923ffe66bc61 --- /dev/null +++ b/assests/logos set whites/qwen-color.svg @@ -0,0 +1 @@ +Qwen \ No newline at end of file diff --git a/assests/pingpong/index.html b/assests/pingpong/index.html new file mode 100644 index 0000000000000000000000000000000000000000..15d5592b196a0f58c89929627b23e7dfb5a1d6ca --- /dev/null +++ b/assests/pingpong/index.html @@ -0,0 +1,833 @@ + + + + + +PONG.EXE — An Infinite Match · SONYAOS PONG-1 + + + + + + + +
+
+ +
+ +
+
PONG.EXE  ·  A LIVE WALLPAPER IN THE FORM OF A SLIDE DECK
+
+ AUTOPLAY ON + +
+
+ +
▶ PLAYING · FOREVER
+ + + +
+ +
+
SLIDE 01 — TITLE / 05
+ +
+ + +
+

PONG.EXEAN INFINITE MATCH BETWEEN TWO MACHINES

+
+

“No one is watching, no one is winning, and it has been running since the page opened.”

+
+
CPU · A
0
+
:—:
+
CPU · B
0
+
+
RALLY
0
+
+

A cut-out terminal on a seamless gray wall, playing itself. Use ← → to move through the deck, or let it advance on its own while the match continues underneath.

+
+ + +
+

SONYAOS
PONG-1

+

A single-board terminal built for one program and never given a second one. The case has yellowed in the exact uneven way ABS does when it sits near a window.

+
+
Display
12″ P1 PHOSPHOR · 640 × 480 · 60 Hz
+
Case
INJECTION-MOULDED ABS, SUN-FADED BEIGE
+
Input
NONE. IT PLAYS ITSELF.
+
Players
TWO, BOTH SILICON, BOTH UNAWARE
+
Power
8 W CONTINUOUS · FOREVER
+
Sound
SPEAKER SEALED SHUT, 1987
+
+

Every key is decorative. It has never been typed on.

+
+ + +
+

The Match

+

Telemetry is read straight off the running loop — nothing here is scripted or pre-recorded.

+
+
Current rally0
+
Longest rally0
+
Ball speed0px/s
+
Points played0
+
Match uptime00:00
+
ResultDRAW
INEVITABLE
+
+

“The score climbs; the match does not end. Those are different ideas.”

+
+ + +
+

Why It
Never Ends

+
+

Imperfect search

Each paddle predicts the intercept and is wrong by a few pixels. The error breathes, so rallies swell and collapse instead of repeating.

+

Phosphor persistence

The tube is never fully cleared between frames. The ball drags a decaying green tail — that trail is the only part of the image with memory.

+

No finish line

Points accrue forever and nobody is declared. There is a scoreboard, not a winner — which is exactly why it can run as a wallpaper.

+
+
+ + +
+

Keep It

+
+
01

Open index.html in any modern browser.

+
02

Press F11 for a full-bleed screen.

+
03

Toggle BG → ALPHA to see the cut-out on a transparent checkerboard.

+
04

Walk away. It keeps playing whether or not you return.

+
+
+

Runs offline. No server, no account, no score worth keeping — only a match worth leaving on.

+

Two machines, one ball, no audience, no end.

+
+ +
+ +
+ + +
+ 01 / 05 + SPACE — PAUSE AUTOPLAY +
+
+ + +
+
+
+
+
+
+
+ +
+ CPU·A + 0 + — + 0 + CPU·B +
+
RALLY 0MODE: SELF PLAY0 PX/S
+
+
+
+
+
+
+ SONYAOS + PONG-1 + + + + +
+
+
+
+
+ + + + + +

FIG. 01 — SONYAOS PONG-1, shot against a seamless gray sweep and cut out. Transparent background; the wall is only there to catch the shadow.

+
+
+
+ + + + + + diff --git a/assests/profile-pic.png b/assests/profile-pic.png new file mode 100644 index 0000000000000000000000000000000000000000..eda3e6fe09039a5804a52cb6f2e0f78a1b530c20 --- /dev/null +++ b/assests/profile-pic.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:401652feeb4554e7bfa9b4512bd422b881eca2ef7713ce249154d851a728c808 +size 728296 diff --git a/assests/slide_wise_new/RAG_LOOP_Graph.svg b/assests/slide_wise_new/RAG_LOOP_Graph.svg new file mode 100644 index 0000000000000000000000000000000000000000..0ae0b55a110df7ea3e9027f27009f4ae97d82796 --- /dev/null +++ b/assests/slide_wise_new/RAG_LOOP_Graph.svg @@ -0,0 +1,4 @@ + + +RETRIEVAL-AUGMENTED GENERATION (RAG)From source documents to a grounded answerKNOWLEDGE INGESTIONSourcesGoogle Drive • Slack • NotionDocument LoadersDocumentsSplit into chunksCreate document embeddingsUser QueryQuery embeddingVECTOR STORERetrieverLLM uses retrieved contextAnswerStore vectorsDocuments are indexed once; each query retrieves relevant chunks for the LLM. \ No newline at end of file diff --git a/assests/slide_wise_new/React_chain_of_thought.png b/assests/slide_wise_new/React_chain_of_thought.png new file mode 100644 index 0000000000000000000000000000000000000000..d63dd4559ab5cbc926c0889e01b7b389e1391b7f --- /dev/null +++ b/assests/slide_wise_new/React_chain_of_thought.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dadfb237e9eee66f5ca048520c4a3f6c5baff391c3aeeae3d5e17927288ae12b +size 109271 diff --git a/assests/slide_wise_new/Though-Action-Observation.svg b/assests/slide_wise_new/Though-Action-Observation.svg new file mode 100644 index 0000000000000000000000000000000000000000..05cd21a088ced1b7293a748fa0075f6f3efb98da --- /dev/null +++ b/assests/slide_wise_new/Though-Action-Observation.svg @@ -0,0 +1,4 @@ + + +THE AI AGENT LOOPThought → Action → Observation01 THOUGHTReason • plan • choose next step02 ACTIONUse a tool or act on the environment03 OBSERVATIONCollect results and feedbackRepeat withnew contextLOOP UNTIL THE OBJECTIVE IS METEach observation informs the next thought. \ No newline at end of file diff --git a/assests/slide_wise_new/agent_loop_illustration.svg b/assests/slide_wise_new/agent_loop_illustration.svg new file mode 100644 index 0000000000000000000000000000000000000000..9d6623f8b76812f768f1cebb26bd1ebfa90e9c84 --- /dev/null +++ b/assests/slide_wise_new/agent_loop_illustration.svg @@ -0,0 +1,4 @@ + + +AGENTIC RAGReason • retrieve • evaluate • answerUser Input / QuestionAgent (LLM)Reason • decide • planNeed external info?Search using tool(s)Docs • web • APIs • databasesEnough to answer?Generate final answerReturn to userYesYesNoNoIterate if needed \ No newline at end of file diff --git a/assests/slide_wise_new/body_animationv1.svg b/assests/slide_wise_new/body_animationv1.svg new file mode 100644 index 0000000000000000000000000000000000000000..8d296f7f35d08cd2137145d7c8d64e813543e5ab --- /dev/null +++ b/assests/slide_wise_new/body_animationv1.svg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c9b39e4463c9b20fc01181cde5caba64742253672f2327d66b5d2db01517a28a +size 53670903 diff --git a/assests/slide_wise_new/bodyanimationv2.webm b/assests/slide_wise_new/bodyanimationv2.webm new file mode 100644 index 0000000000000000000000000000000000000000..b2f602caddd103b195a38bfea4307f8d8427caaa --- /dev/null +++ b/assests/slide_wise_new/bodyanimationv2.webm @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:376bb3819bdc37f3c09c0d8480ce589ce4ec4bac7f64fa8f6fc18587be301e96 +size 303667 diff --git a/assests/slide_wise_new/brain-1791631278192.svg b/assests/slide_wise_new/brain-1791631278192.svg new file mode 100644 index 0000000000000000000000000000000000000000..279d7bb9be14fb46fb3d30a7c771cf4ac73d1629 --- /dev/null +++ b/assests/slide_wise_new/brain-1791631278192.svg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b2d4ba75081b20d5eecc94622adef147e4e0add8d4539c1396f7c879577f705d +size 56733985 diff --git a/assests/slide_wise_new/brain-1791631695827.svg b/assests/slide_wise_new/brain-1791631695827.svg new file mode 100644 index 0000000000000000000000000000000000000000..58d2bd236e152730f9d61096daa26eed89cf88e6 --- /dev/null +++ b/assests/slide_wise_new/brain-1791631695827.svg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:05e373c79fb1b18eac64dde109477557758d5b047fd93edb18f0f8c3a5433bf5 +size 42565609 diff --git a/assests/slide_wise_new/embedding_model.gif b/assests/slide_wise_new/embedding_model.gif new file mode 100644 index 0000000000000000000000000000000000000000..4b33b99b8da90a34a7825d331c7178aa660a8d4d --- /dev/null +++ b/assests/slide_wise_new/embedding_model.gif @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6c900095194cfd4d941af9df7440b57fd56a80f92247213fd6991919930edd11 +size 747431 diff --git a/assests/slide_wise_new/mcp_architecture.png b/assests/slide_wise_new/mcp_architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..0612dc496bf58930481d05cbabfba226d0d9231e --- /dev/null +++ b/assests/slide_wise_new/mcp_architecture.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:756f4e95014aed5979d5f87c2da8ea56b75c516a1e6879becbf224de8c1c4803 +size 267523 diff --git a/assests/slide_wise_new/mcp_capabilities.png b/assests/slide_wise_new/mcp_capabilities.png new file mode 100644 index 0000000000000000000000000000000000000000..e80bebca36ddd11643aa677600ca50fbabcf1b66 Binary files /dev/null and b/assests/slide_wise_new/mcp_capabilities.png differ diff --git a/assests/slide_wise_new/mcp_componenet_illustration.png b/assests/slide_wise_new/mcp_componenet_illustration.png new file mode 100644 index 0000000000000000000000000000000000000000..23cbb9667d3fe5ef609c5f3843ab20fa32e1030a --- /dev/null +++ b/assests/slide_wise_new/mcp_componenet_illustration.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:92b5f03a879df7c7bc870a7b08fe1f93aa1cc9398f4de4128089c213c19df24f +size 342922 diff --git a/assests/slide_wise_new/streamable_https_stdio_example.svg b/assests/slide_wise_new/streamable_https_stdio_example.svg new file mode 100644 index 0000000000000000000000000000000000000000..c05d41473ea63f897f4d34f3d35da264b58fa464 --- /dev/null +++ b/assests/slide_wise_new/streamable_https_stdio_example.svg @@ -0,0 +1,4 @@ + + +MCP HostMCP HostMCP HostSTDIOSSEHTTP Streaming>_Local binaryRuns on samemachineHTTPEventStreamRemote serverHosted on a remoteserver, uses HTTPand EventStreamBidirectional streamRemote serverModern replacementfor SSE \ No newline at end of file diff --git a/index.html b/index.html index 8609a556d0fd8faa9a871a5039b852e6f206e4ce..0bca35cfc0dd8dad19dcd59f16e5f44977ff9ef5 100644 --- a/index.html +++ b/index.html @@ -11,30 +11,30 @@ - - +Return a concise answer with sources.`})})]})}function Jb({columns:i}){const a=[`{ "tool": "search", + "query": "weather NYC" }`,`result = search("weather NYC") +print(result)`,`create_event( + date="Fri", + time="10:00")`],o=["action.json","action.py","tool_call"];return M.jsx("div",{className:"code-action-examples",children:i.map((r,c)=>M.jsxs("article",{children:[M.jsx("span",{children:r.label}),M.jsx("h3",{children:r.title}),M.jsx(g1,{label:o[c],children:M.jsx("pre",{children:a[c]})}),M.jsx("p",{children:r.body})]},r.label))})}function $b({items:i}){return M.jsx("div",{className:"term-grid",children:i.map((a,o)=>{const[r,...c]=a.split(" — ");return M.jsxs("div",{className:"term-card",children:[M.jsx("span",{className:"term-index",children:String(o+1).padStart(2,"0")}),M.jsx("strong",{children:r}),M.jsx("p",{children:c.join(" — ")})]},a)})})}function ka({text:i,large:a=!1}){return M.jsx("div",{className:`formula-line${a?" formula-line-large":""}`,children:i.split(` +`).map((o,r)=>M.jsx("p",{children:o.split(/(\s[+=→]\s)/).map((c,l)=>/^\s[+=→]\s$/.test(c)?M.jsx("b",{className:"formula-op",children:c.trim()},l):M.jsx("span",{children:c},l))},r))})}function eT({text:i}){const[a,o]=i.split(" = "),r=a.split(" + ");return M.jsxs("div",{className:"recipe-equation",children:[r.map((c,l)=>M.jsxs(W.Fragment,{children:[M.jsx("span",{className:"recipe-chip",children:c}),lM.jsxs("article",{className:`bubble ${o%2===0?"bubble-dark":"bubble-accent"}`,children:[M.jsx("span",{children:a.label}),M.jsx("h3",{children:a.title})]},a.label))})}function nT({columns:i}){const[a,o]=i;return M.jsxs("div",{className:"panel-compare",children:[M.jsxs("section",{className:"panel-dark",children:[M.jsx("span",{children:a.label}),M.jsx("h3",{children:a.title}),M.jsx("ul",{children:a.body.split(` +`).map(r=>M.jsxs("li",{children:[M.jsx("b",{children:"✗"}),r]},r))})]}),M.jsxs("section",{className:"panel-accent",children:[M.jsx("span",{children:o.label}),M.jsx("h3",{children:o.title}),M.jsx("ul",{children:o.body.split(` +`).map(r=>M.jsxs("li",{children:[M.jsx("b",{children:"✓"}),r]},r))}),M.jsxs("div",{className:"panel-flow",children:[M.jsx("i",{children:"Question"}),M.jsx("em",{children:"→"}),M.jsx("i",{children:"Search your documents"}),M.jsx("em",{children:"→"}),M.jsx("i",{children:"Grounded answer"})]})]})]})}function iT({steps:i}){return M.jsx("div",{className:"evaluation-loop",children:i.map((a,o)=>M.jsxs("div",{className:"evaluation-loop-step",children:[M.jsx("b",{children:a.label}),M.jsx("strong",{children:a.title}),M.jsx("span",{children:a.body}),oM.jsx("div",{className:"learning-row",children:o.map(c=>M.jsxs("figure",{className:"learning-bubble",children:[M.jsx("span",{className:oT.has(c.title)?"is-photo":"",children:M.jsx("img",{src:c.image,alt:c.imageAlt??c.title,decoding:"async"})}),M.jsx("figcaption",{children:c.title})]},c.title))},r))})}function uT({steps:i}){return M.jsx("ol",{className:"slide-timeline",children:i.map((a,o)=>M.jsxs("li",{className:o===i.length-1?"timeline-final":"",children:[M.jsx("span",{className:"timeline-number",children:a.label}),M.jsxs("div",{children:[M.jsx("h3",{children:a.title}),M.jsx("p",{children:a.body})]})]},`${a.label}-${a.title}`))})}function cT({slide:i}){const a=i.source??i.note;return a?M.jsx("div",{className:"slide-copy-note",children:M.jsx("small",{children:a})}):null}function fT({slide:i,isLight:a,scheme:o}){const r=a?" slide-copy-light":"",c=M.jsx("h2",{className:"slide-copy-title",children:M.jsx(kc,{text:Vb(i.title)})}),l=M.jsxs(M.Fragment,{children:[i.tag?M.jsx("span",{className:"slide-copy-kicker",children:i.tag}):null,c,i.subtitle?M.jsx("p",{className:"slide-copy-subtitle",children:i.subtitle}):null]});let f;if(i.kind==="cover")f=M.jsx("div",{className:"slide-cover-content",children:M.jsx("h1",{className:"slide-cover-title",children:M.jsx(kc,{text:i.title})})});else if(i.kind==="tagline"){const d=i.title.replace(/^\s*["“]/,"").replace(/["”]\s*$/,""),x=d.length,y=x<=16?230:x<=28?180:x<=42?140:x<=58?112:96;f=M.jsxs("div",{className:"slide-tagline-content",style:{"--tag-fs":`${y}px`},children:[M.jsx("span",{className:"slide-quote-mark slide-quote-open",children:"“"}),M.jsx("span",{className:"slide-quote-mark slide-quote-close",children:"”"}),M.jsx("h1",{children:d})]})}else i.kind==="agenda"?f=M.jsxs("div",{className:"slide-layout slide-layout-agenda",children:[l,M.jsx("div",{className:"agenda-list",children:i.body?.map(d=>M.jsx("div",{className:"agenda-list-item",children:M.jsx("strong",{children:d})},d))})]}):i.kind==="quotes"?f=M.jsxs("div",{className:"slide-layout",children:[l,i.viewers?M.jsx("div",{className:"slide-viewers slide-viewers-3",children:i.viewers.map(d=>M.jsx(Is,{viewer:d},d.label))}):null,i.columns?M.jsx(Pa,{columns:i.columns}):null]}):i.kind==="viewer"?i.id===57?f=M.jsxs("div",{className:"slide-layout",children:[l,M.jsxs("div",{className:"gaia-layout",children:[M.jsx(aT,{}),M.jsx(sT,{})]})]}):(i.layout==="viewer-right"||i.layout==="viewer-left"||i.layout==="viewer-tall")&&i.viewers?.[0]?f=M.jsxs("div",{className:`slide-layout feature-layout feature-layout-${i.layout}`,children:[M.jsxs("div",{className:"feature-copy",children:[l,i.formula?M.jsx(ka,{text:i.formula}):null,i.columns?M.jsx(Pa,{columns:i.columns}):null]}),M.jsx("div",{className:"feature-viewer",children:M.jsx(Is,{viewer:i.viewers[0]})})]}):f=M.jsxs("div",{className:"slide-layout slide-layout-viewer",children:[l,i.formula?M.jsx(ka,{text:i.formula}):null,i.viewers?M.jsx("div",{className:`slide-viewers slide-viewers-${Math.min(i.viewers.length,3)}`,children:i.viewers.map(d=>M.jsx(Is,{viewer:d},d.label))}):null,i.columns?M.jsx(Pa,{columns:i.columns}):null]}):i.kind==="table"?f=M.jsxs("div",{className:"slide-layout",children:[l,i.id===8?M.jsx(Fb,{rows:i.rows??[]}):i.id===50?M.jsx(Kb,{rows:i.rows??[]}):i.id===53?M.jsx(Zb,{rows:i.rows??[]}):i.rows?M.jsx(kb,{rows:i.rows,header:i.header}):null]}):i.kind==="process"?f=M.jsxs("div",{className:"slide-layout",children:[l,i.formula?M.jsx(ka,{text:i.formula}):null,i.steps?i.id===49.5?M.jsx(iT,{steps:i.steps}):M.jsx(_b,{steps:i.steps}):null]}):i.kind==="timeline"?f=M.jsxs("div",{className:"slide-layout slide-layout-timeline",children:[l,i.steps?M.jsx(uT,{steps:i.steps}):null]}):i.kind==="split"?f=M.jsxs("div",{className:"slide-layout",children:[l,i.id===25&&i.columns?M.jsx(tT,{columns:i.columns}):i.id===37&&i.columns?M.jsx(Xb,{columns:i.columns}):i.id===52&&i.columns?M.jsx(Qb,{columns:i.columns}):i.id===26&&i.columns?M.jsx(nT,{columns:i.columns}):i.id===19&&i.columns?M.jsx(Wb,{columns:i.columns}):i.id===16&&i.columns?M.jsx(Jb,{columns:i.columns}):M.jsxs("div",{className:`slide-split ${i.viewers?"slide-split-with-viewer":""}`,children:[i.columns?M.jsx(Pa,{columns:i.columns}):null,i.viewers?M.jsx("div",{className:"slide-viewer-single",children:M.jsx(Is,{viewer:i.viewers[0]})}):null]}),i.formula?M.jsx(ka,{text:i.formula}):null]}):i.kind==="formula"?f=M.jsxs("div",{className:"slide-layout slide-layout-formula",children:[l,i.id===42?M.jsx(lT,{}):null,i.formula?i.id===18?M.jsx(eT,{text:i.formula}):M.jsx(ka,{text:i.formula,large:!0}):null,i.columns?M.jsx(Pa,{columns:i.columns}):null]}):i.kind==="list"?f=M.jsxs("div",{className:"slide-layout",children:[l,i.body?.every(d=>d.includes(" — "))?M.jsx($b,{items:i.body}):M.jsx("div",{className:"slide-list",children:i.body?.map(d=>M.jsx("div",{className:"slide-list-item",children:M.jsx("p",{children:d})},d))}),i.formula?M.jsx(ka,{text:i.formula}):null]}):i.kind==="cards"?f=M.jsxs("div",{className:"slide-layout",children:[l,i.title==="Keep learning"&&i.columns?M.jsx(rT,{columns:i.columns}):i.columns?M.jsx(Pa,{columns:i.columns,maxCols:i.id===57.8?5:4}):null]}):i.kind==="linkedin"?f=M.jsxs("div",{className:"slide-layout slide-layout-linkedin",children:[l,M.jsx(Pb,{})]}):i.kind==="craft"?f=M.jsxs("div",{className:"slide-layout slide-layout-craft",children:[M.jsxs("h1",{className:"craft-title",children:[M.jsx("span",{children:"CRAFT"}),M.jsx("span",{children:"TIME"})]}),M.jsx("div",{className:"craft-pc",children:M.jsx("iframe",{src:"/pong-pc.html",title:"Ping-pong on a retro PC",tabIndex:-1})})]}):i.kind==="media"?f=M.jsx("div",{className:"slide-layout slide-layout-media",children:M.jsx("div",{className:"media-slide-viewer","aria-label":"Demo",children:i.viewers?.[0]?M.jsx(Is,{viewer:i.viewers[0]}):null})}):f=M.jsx("div",{className:"slide-layout slide-layout-closing",children:M.jsx("h1",{className:"slide-closing-title",children:M.jsx(kc,{text:i.title})})});const p=i.kind!=="tagline"&&i.kind!=="cover"&&i.kind!=="closing"&&i.kind!=="craft"?M.jsx(cT,{slide:i}):null,g=p&&W.isValidElement(f)?W.cloneElement(f,{},f.props.children,p):f,v=i.title==="Keep learning"?" slide-copy-learning":i.title==="Certificates worth doing"?" slide-copy-certifications":i.title==="CHOOSE THE MODEL FOR THE JOB"?" slide-copy-arena":"";return M.jsx(PS,{mode:"wait",children:M.jsx(K4.div,{className:`slide-copy${r} slide-copy-${i.kind} slide-copy-${i.id}${v}`,style:{"--ag-a":o.c1,"--ag-text":o.glowLight},...Ub(i.kind),children:g},i.id)})}function dT(){const[i,a]=W.useState(Nb),[o,r]=W.useState([]),[c,l]=W.useState(0),[f,p]=W.useState(()=>{const ie=Number(new URLSearchParams(window.location.search).get("slide"));return Number.isInteger(ie)&&ie>=0&&ie{const ie=Math.min(window.innerWidth/Dt,window.innerHeight/Bt);return Math.round(Math.max(0,(window.innerHeight/ie-Bt)/2)/4)*4}),[S,b]=W.useState(!1),[T,w]=W.useState(!1),[N,B]=W.useState("outer"),[j,E]=W.useState("light"),[D,R]=W.useState(!0),[C,U]=W.useState(!1);W.useEffect(()=>{const ie=window.matchMedia("(prefers-color-scheme: dark)");R(ie.matches);const fe=ge=>R(ge.matches);return ie.addEventListener("change",fe),()=>ie.removeEventListener("change",fe)},[]);const L=j==="light"||j==="system"&&!D,z=W.useRef(i),V=W.useRef(null),q=W.useRef(new Map),ne=W.useRef(null),te=W.useRef(null),k=W.useRef(null),X=W.useRef([]),ee=W.useRef(!1),se=W.useRef(null),ce=rn[f],G=zb(ce),Q=o.length>0?o:gb;W.useEffect(()=>{const ie=cn=>[...(cn.viewers??[]).map(Le=>Le.src&&!$f(Le.src)?Le.src:void 0),...(cn.columns??[]).map(Le=>Le.image)].filter(Le=>!!Le),fe=rn.flatMap(ie),ge=rn.slice(Math.max(0,f-1),f+3).flatMap(ie);Pc(ge);const ve=window.requestIdleCallback,dt=window.cancelIdleCallback,De=ve?ve(()=>Pc(fe)):window.setTimeout(()=>Pc(fe),250);return()=>{dt?dt(De):window.clearTimeout(De)}},[f]),W.useCallback((ie,fe)=>{a(ge=>({...ge,[ie]:fe}))},[]),W.useCallback(()=>l(ie=>ie+1),[]);const ae=W.useCallback(ie=>{if(ee.current){se.current=ie;return}ee.current=!0,w(!0),p(ie);const fe=V.current;fe&&(fe.draining=!0,tt.Composite.remove(fe.engine.world,fe.floor),fe.blocks.forEach(ge=>{ge.released&&(tt.Sleeping.set(ge.body,!1),tt.Body.setVelocity(ge.body,{x:ge.body.velocity.x*.4,y:Math.max(ge.body.velocity.y,1.2+Math.random()*1.4)}))})),window.setTimeout(()=>{l(ve=>ve+1),ee.current=!1,w(!1);const ge=se.current;se.current=null,ge!==null&&ge!==ie&&(p(ge),l(ve=>ve+1))},Ob)},[]),le=W.useCallback(()=>ae((f+1)%rn.length),[ae,f]),he=W.useCallback(()=>ae((f-1+rn.length)%rn.length),[ae,f]),oe=W.useCallback(ie=>{ie.target.closest("button, input, label")||(te.current=ie.clientX)},[]),ye=W.useCallback(ie=>{if(ie.target.closest("button, input, label")){te.current=null;return}const fe=te.current;if(te.current=null,fe===null)return;const ge=ie.clientX-fe;if(Math.abs(ge)>48){ge<0?le():he();return}const ve=ne.current?.getBoundingClientRect();if(!ve||Math.abs(ge)>12)return;const dt=ie.clientX-ve.left;dtve.width*2/3&&le()},[le,he]);W.useCallback(ie=>{const fe=Array.from(ie.target.files??[]).filter(ve=>ve.type==="image/png"||ve.type==="image/svg+xml"||/\.(png|svg)$/i.test(ve.name));if(fe.length===0)return;const ge=fe.map((ve,dt)=>{const De=URL.createObjectURL(ve);return X.current.push(De),{id:`${ve.name}-${Date.now()}-${dt}`,label:ve.name.replace(/\.(png|svg)$/i,""),url:De}});r(ve=>[...ve,...ge]),ie.target.value=""},[]),W.useCallback(()=>{X.current.forEach(ie=>URL.revokeObjectURL(ie)),X.current=[],r([])},[]);const Re=W.useCallback(()=>{document.fullscreenElement?document.exitFullscreen():document.documentElement.requestFullscreen?.()},[]);return W.useEffect(()=>{z.current=i,V.current&&Dp(V.current,i)},[i]),W.useEffect(()=>{const ie=ne.current;if(!ie)return;const fe=()=>{const ve=ie.clientWidth/Dt,dt=ie.clientHeight/Bt,De=Math.min(ve,dt);x(De),m(Math.round(Math.max(0,(ie.clientHeight/De-Bt)/2)/4)*4)};fe();const ge=new ResizeObserver(fe);return ge.observe(ie),()=>ge.disconnect()},[C]),W.useEffect(()=>{const ie=fe=>{fe.target instanceof HTMLInputElement||(fe.key==="ArrowRight"||fe.key==="PageDown"||fe.key===" "?(fe.preventDefault(),le()):fe.key==="ArrowLeft"||fe.key==="PageUp"?(fe.preventDefault(),he()):fe.key==="Escape"?b(!1):fe.key.toLowerCase()==="f"&&(fe.preventDefault(),Re()))};return window.addEventListener("keydown",ie),()=>window.removeEventListener("keydown",ie)},[le,he,Re]),W.useEffect(()=>{if(!S)return;const ie=fe=>{k.current&&!k.current.contains(fe.target)&&b(!1)};return window.addEventListener("pointerdown",ie),()=>window.removeEventListener("pointerdown",ie)},[S]),W.useEffect(()=>()=>X.current.forEach(ie=>URL.revokeObjectURL(ie)),[]),W.useEffect(()=>{let ie=!1,fe=null;const ge=z.current.count;return Promise.all(Q.map(ve=>xb(ve.url))).then(ve=>{if(ie)return;const dt=f===0||f===rn.length-1,De=Bb(4001+c*977+ge*31),cn=jb(ge),Le=dt?cn*1.55:cn,$n=Bt+y,xn=Eb(Le,N),Et=dt?{mode:"outer",midY:$n+Le*.5,edgeY:$n+Le*.5,dipWidth:0}:{...xn,midY:xn.midY+y,edgeY:xn.edgeY+y};let fn;if(dt){const Ae=Math.floor(Dt/(Le*.98)),at=Math.ceil(Bt/(Le*.78))+3,Ve=[],Te=Math.min(Ae*at,240);for(let Mt=0;Mt250&&Je<1350&&wt>200&&wt<620||Ve.push({x:Je,y:wt,angle:(De()-.5)*.5,layer:Ct,edge:Math.abs(Je-Dt/2)/(Dt/2)})}fn=Ve}else fn=Rb(ge,Le,Et);const Dn=Lb(Array.from({length:fn.length},(Ae,at)=>at%Q.length),De),Sn=tt.Engine.create({positionIterations:8,velocityIterations:6,constraintIterations:4,enableSleeping:!0}),Ci=Cb(Et).map(Ae=>tt.Bodies.rectangle(Ae.x,Ae.y,Ae.length,Ae.thickness,{isStatic:!0,angle:Ae.angle,friction:.9,frictionStatic:1,restitution:.3})),ht=[tt.Bodies.rectangle(-60,Bt/2,120,Bt*3,{isStatic:!0,friction:.4}),tt.Bodies.rectangle(Dt+60,Bt/2,120,Bt*3,{isStatic:!0,friction:.4})],bn=fn.map((Ae,at)=>{const Ve=Dn[at],Te=ve[Ve],Mt=Te.hull.map(wi=>({x:wi.x*Le,y:wi.y*Le})),Pe=tt.Vertices.centre(Mt),Ct=Xs(Ae.x+Cn(De,-180,180),Le,Dt-Le),Je=-Le*Cn(De,.8,4.5)-Ae.layer*Le*.6,wt=tt.Bodies.fromVertices(Ct,Je,[Mt],{friction:.4,frictionStatic:.7,frictionAir:.006,restitution:.4});return tt.Body.setAngle(wt,Cn(De,-.3,.3)),tt.Body.setStatic(wt,!0),wt.collisionFilter.mask=0,{view:{id:`r${c}-b${at}`,url:Q[Ve].url,shape:Te,size:Le},body:wt,target:Ae,releaseAt:.05+Ae.layer*.18+Cn(De,0,.6),released:!1,densityBase:Cn(De,.00225,.0032),dragFactor:Cn(De,.82,1.17),windPhase:Cn(De,0,Math.PI*2),cx:Pe.x,cy:Pe.y}}),Xe={engine:Sn,blocks:bn,floor:Ci,draining:!1,disposed:!1,raf:0,startedAt:performance.now(),lastTime:performance.now(),accumulator:0};tt.Composite.add(Sn.world,[...Ci,...ht,...bn.map(Ae=>Ae.body)]),Dp(Xe,z.current),V.current=Xe,v(bn.map(Ae=>Ae.view));const ta=Ae=>{const at=z.current;for(const Ve of bn){const Te=Ve.body;if(!Ve.released){!Xe.draining&&Ae>=Ve.releaseAt&&(Ve.released=!0,tt.Body.setStatic(Te,!1),Te.collisionFilter.mask=4294967295,h1(Ve,at),tt.Body.setVelocity(Te,{x:Cn(De,-.35,.35),y:Cn(De,0,.2)}),tt.Body.setAngularVelocity(Te,Cn(De,-.02,.02)));continue}if(!Xe.draining&&Ae-Ve.releaseAt>Db){Te.frictionAir<.04&&(Te.frictionAir=.04);continue}const Pe=Te.velocity,Ct=(25e-8+at.air*12e-9)*Ve.dragFactor;tt.Body.applyForce(Te,Te.position,{x:-Pe.x*Math.abs(Pe.x)*Ct*Te.mass,y:-Pe.y*Math.abs(Pe.y)*Ct*Te.mass});const Je=(Math.sin(Ae*1.18+Ve.windPhase)*.72+Math.sin(Ae*.47+Ve.windPhase*.61)*.28)*(at.wind/100)*36e-7;if(tt.Body.applyForce(Te,Te.position,{x:Je*Te.mass,y:0}),Xe.draining)continue;const wt=Xs((Ae-Ve.releaseAt-.5)/3,0,1);if(wt>0&&Te.position.y>Ve.target.y-260){const wi=Xs(Ve.target.x-Te.position.x,-260,260),nr=Xs(Ve.target.y-Te.position.y,-220,220),Ri=1e-6+wt*24e-7,Oi=16e-6+wt*3e-5;tt.Body.applyForce(Te,Te.position,{x:(wi*Ri-Pe.x*Oi)*Te.mass,y:(nr*Ri-Pe.y*Oi)*Te.mass});let Bn=Ve.target.angle-Te.angle;Bn=Math.atan2(Math.sin(Bn),Math.cos(Bn)),Te.torque+=Bn*Te.inertia*(3e-6+wt*6e-6)-Te.angularVelocity*Te.inertia*(12e-6+wt*21e-6)}}tt.Engine.update(Sn,Gc)},Nn=Ae=>{if(Xe.disposed)return;Xe.accumulator+=Math.min(Ae-Xe.lastTime,40),Xe.lastTime=Ae;const at=(Ae-Xe.startedAt)/1e3;for(;Xe.accumulator>=Gc;)ta(at),Xe.accumulator-=Gc;for(const Ve of bn){if(!Ve.released)continue;const Te=q.current.get(Ve.view.id);if(!Te)continue;const{x:Mt,y:Pe}=Ve.body.position;Te.style.visibility="visible",Te.style.zIndex=String(Math.round(Pe/6)+200),Te.style.transform=`translate3d(${Mt}px, ${Pe}px, 0) rotate(${Ve.body.angle}rad) translate(${-Ve.cx}px, ${-Ve.cy}px)`}Xe.raf=requestAnimationFrame(Nn)};Xe.raf=requestAnimationFrame(Nn),fe=()=>{Xe.disposed=!0,cancelAnimationFrame(Xe.raf),tt.Composite.clear(Sn.world,!1,!0),tt.Engine.clear(Sn),V.current===Xe&&(V.current=null)}}),()=>{ie=!0,fe?.()}},[Q,c,i.count,N,y]),W.useEffect(()=>{const ie=()=>{U(!!document.fullscreenElement)};return document.addEventListener("fullscreenchange",ie),()=>document.removeEventListener("fullscreenchange",ie)},[]),M.jsx("main",{className:`fixed inset-0 overflow-hidden font-display transition-colors duration-700 ${L?"light-theme":""}`,children:M.jsxs("div",{className:`slide-frame relative overflow-hidden w-screen h-screen ${ce.kind==="cover"||ce.kind==="closing"?"slide-edge-free":""}`,ref:ne,onPointerDown:oe,onPointerUp:ye,style:{width:"100vw",height:"100vh"},children:[M.jsx($4,{isLight:L,scheme:G,shield:ce.kind==="cover"||ce.kind==="closing"?0:void 0}),M.jsxs("div",{className:"pointer-events-none absolute",style:{width:Dt,height:Bt,left:"50%",top:"50%",transformOrigin:"center center",transform:`translate(-50%, -50%) scale(${d})`},children:[f>0&&fM.jsx("div",{className:"icon-block",ref:fe=>{fe?q.current.set(ie.id,fe):q.current.delete(ie.id)},style:{width:ie.shape.width*ie.size,height:ie.shape.height*ie.size,visibility:"hidden"},children:M.jsx("img",{alt:"",draggable:!1,src:ie.url,style:{left:ie.shape.imgLeft*ie.size,top:ie.shape.imgTop*ie.size,width:ie.shape.imgSize*ie.size,height:ie.shape.imgSize*ie.size}})},ie.id))})]}),M.jsx("div",{className:"slide-indicators absolute bottom-3 left-1/2 z-40 flex -translate-x-1/2 items-center sm:bottom-4",children:rn.slice(1,-1).map((ie,fe)=>{const ge=fe+1;return M.jsx("button",{"aria-label":`Go to slide ${ge}: ${ie.title}`,title:ie.tag||ie.title,className:`slide-indicator ${ie.section?"section-start":""} h-1 cursor-pointer rounded-full transition-all duration-500 ${ge===f?L?"w-8 bg-slate-900":"w-8 bg-white":L?"w-2 bg-slate-900/20 hover:bg-slate-900/50":"w-2 bg-white/25 hover:bg-white/60"}`,onClick:()=>ge!==f&&ae(ge),type:"button"},ie.id)})})]})})}Py.createRoot(document.getElementById("root")).render(M.jsx(W.StrictMode,{children:M.jsx(dT,{})})); +
diff --git a/pong-pc.html b/pong-pc.html new file mode 100644 index 0000000000000000000000000000000000000000..cfb038b5d354723f6422880c7f159f732461f579 --- /dev/null +++ b/pong-pc.html @@ -0,0 +1,277 @@ + + +Craft Time · Pong + + + +
+
+
+
+
+ +
CPU·A0—0CPU·B
+
RALLY 0SELF PLAY0 PX/S
+
+
+
+
+
CRAFT TIMEPONG-1
+
+
+
+