J

Jacob Seidelin

nihilogic.dk · Personal blog · on HN since 2008

Jacob Seidelin writes about JavaScript and HTML5 canvas experiments, including Wolfenstein and Super Mario Kart recreations and visualizations.

What HN saysHN commenters link his canvas tools and demos, including a Wolfenstein port, Canvas2image, a WebGL cheat sheet and an early JS-in-image technique.
22HN people shared it
11linked it in comments
11stories submitted
185story points
13 years agolast shared
2008people per year2026

Most-shared posts

  1. 1
    The Original Wolfenstein game in JavaScript
    3 people · 3 points · first shared 2008 · discussion on HN
  2. 2
  3. 3
    Experiments with HTML5 <canvas> and <audio>
    2 people · 19 points · first shared 2010 · 6 comments on HN
  4. 4
    20 Lines JavaScript Super Mario Tribute
    2 people · 5 points · first shared 2009 · discussion on HN
  5. 5
    Nihilogic: Strange Attraction
    2 people · 1 points · first shared 2010 · discussion on HN
  6. 6
    Canvas2image
    2 people · first shared 2008
  7. 7
    JavaScript Super Mario Kart
    1 people · 74 points · first shared 2011 · 17 comments on HN
  8. 8
    Canvas Visualizations of Sorting Algorithms
    1 people · 14 points · first shared 2009 · 4 comments on HN
  9. 9
    Evolving Images with JavaScript and canvas
    1 people · 1 points · first shared 2010 · discussion on HN
  10. 10
    Canvas music visualization
    1 people · first shared 2010
  11. 11
    HTML5 Canvas Cheat Sheet.png
    1 people · first shared 2010
  12. 12
    Officespace.jsvid
    1 people · first shared 2008
  13. 13
    Mit license
    1 people · first shared 2009
  14. 14
    Canvascompress
    1 people · first shared 2014
  15. 15
    Id3
    1 people · first shared 2010

What HN people wrote when they linked it

rsxzi · 2014-02-06
This technique has been around since prior to 2008 at least, the biog entry below introduced the code[1], along with providing a tool to compress your js into an image using ruby [2]. The technique has a legitimate use as a suave compression method and was termed "super packing" in 2011 [3] [1]http://blog.nihilogic.dk/2008/08/imageinfo-reading-image-metadata-with… [2]http://www.nihilogic.dk/labs/canvascompress/ [3]http://daeken.com/superpacking-js-demos
roschdal · 2012-05-09
This has already been done long ago, here: http://www.nihilogic.dk/labs/wolf/
1880 · 2011-07-31
Very nice! A suggestion: make mockups exportable to images. It shouldn't be hard with something like this: http://www.nihilogic.dk/labs/canvas2image/
ootachi · 2011-06-18
WebGL is OpenGL ES. The deprecated stuff in GL 1.0 is not present. See for yourself: http://www.nihilogic.dk/labs/webgl_cheat_sheet/WebGL_Cheat_Sheet.htm
aberkowitz · 2010-12-14
Raphael.js and protoviz exist to lower the barrier of entry of SVG to canvas level [0]. The only advantage they have over canvas is interactivity. Certain libraries like impactjs [1] are aiming to fix that. [0] Just about the entirety of canvas can be contained in a page: http://www.nihilogic.dk/labs/canvas_sheet/HTML5_Canvas_Cheat_Sheet.png [1] http://impactjs.org/ - used in http://www.phoboslab.org/biolab/
Thinking about it a bit more, it's actually worse than that. http://www.nihilogic.dk/labs/imageinfo/ shows how to extract EXIF data from JPEG files, so using EXIF + the cache hack is possible for sure. http://www.nihilogic.dk/labs/id3/ shows how to extract ID3 metadata from MP3s in Javascript, so you could do a similar thing like that. Can anyone think why just using the cache hack + a JSON data file wouldn't work?
e1ven · 2009-08-06
The CANVAS tag allows per pixel placement. It's what makes things like this possible. From the Source- This file is part of the article series by Jacob Seidelin about creating a ray casting engine with JavaScript, DOM and Canvas. If you have questions or comments, please contact the author at either [email protected] or http://blog.nihilogic.dk/ The code samples here are freely available under the MIT license. See: [http://www.nihilogic.dk/licenses/mit-license.txt] The graphics for sprites and walls are property of id Software.
bootload · 2008-05-09
"... Processing ported to JavaScript ..." My project just got a lot more interesting. One of the things I was having trouble with is generating an image from data with severe constraints on modules & processing time. Processing.js fills the gap of PIL which I couldn't use. I'm finding more and more interesting JS modules. Take this one for instance ~ http://www.nihilogic.dk/labs/canvas2image/ Converts the canvas to a binary image.
apgwoz · 2008-04-21
I can't believe someone didn't realize that you could eliminate so much duplicate data! see: http://www.nihilogic.dk/labs/jsvideo/video/officespace.jsvid
patio11 · 2009-07-08
the overhead of the interpreted language is going to slow things down as compared to something compiled down to the metal Welcome to the Java vs. C debate, previously the C vs. assembler debate, previously the assembler versus hand-coding machine code debate. Computers these days, even netbooks, are fast. Very, very breathtakingly fast. There has also been a significant amount of work done in VMs, much related to Java, which has delivered tremendous performance boosts to interpreted languages. Google has a very talented VM team working on Chrome's JS execution engine (SpiderMonkey or something, can't remember off the top of my head). But really, after you get past Wolfenstein done in Javascript (http://www.nihilogic.dk/labs/wolf/ ) how more does the typical user actually need? After that it isn't a matter of CPU cycles, its the programmers coming up with non-painful ways to develop software to use them.
Whenever "vector look" is not what you aim for. One huge example is games - vast majority of games use bitmap graphics. Or if you want to do some pretty data visualizations like heatmaps. ---- Edit: Here are some examples showing what fast canvas bitmap graphics can do (and what would be very very hard to do with SVG): http://29a.ch/2010/3/24/normal-mapping-with-javascript-and-canvas-tag http://mrdoob.com/lab/javascript/effects/fire/01/ http://mrdoob.com/lab/javascript/effects/water/00/ http://www.nihilogic.dk/labs/canvas_music_visualization/ http://www.nihilogic.dk/labs/strange_attractors/ http://www.p01.org/releases/512b_jspongy/jspongy.htm http://www.p01.org/releases/20_lines_hypno_trip_down_the_fractal_rug/ http://www.p01.org/releases/20_lines_dynamic_hypnoglow/ http://www.ehkä.fi/

Keyboard shortcuts

/Search
j kNext / previous blog
EnterOpen selected blog
vVisit the blog site
fFollow / unfollow
lSwitch grid / list view
dSwitch dark mode
g hHome
g pTop posts
g tTopics
g fFollowing
g lLiked
g yHistory
g qFAQ
EscBack / close