[ GRAPHICS | QBASIC | ALGORITHMS | JAVA | JAPANESE ]
Last Update: May 6, 2022
Changes: Tom Forsyth's blog, Image processing, Akalin, The pixel factory, Useful programmer traits, BASIC Gaming Magazine, Demo algorithms, Architecture of Open Source Apps, Performance, GPGPU, Find the Bug, Sort Algos
This will serve as my "What's New" page, as I will be posting information about current interests and projects.
I have spent years making these programs but they may be yours free to
learn more about QuickBasic, Turbo Pascal, and low-level hardware programming.
Most of my files are for intermediate to advanced QBASIC programmers and trig
and calculus students who want to do their homework faster. Remember, your
computer is MUCH more powerful than a calculator so use it!
IMPORTANT: These programs are FREEWARE.
But please ask for my permission before selling my software or modifying it.
I assume no responsibility over ANY losses resulting from the use of these programs.
Art
GFXartist - art using
computer media.
DV Garage - visual media arts training
3D Cafe digital art tutorials
Tsugumo's Lair - author of The RPG,
has neat anime drawings and 3D models.
Win32 coding
Code Project - MFC, Win32 programming
Win32 SDK - GUI programming without MFC (in Japanese).
Drive Explorer - source code
Windows Programming using the Win32 API for beginners
Windows Programming FAQ
resources, and
links.
IPC in Win32, 2
Memory Mapped File - for MIME decoding
Code Guru - MFC and Win32 API programming. Lots of stuff, but the search engine sucks.
Windows Server
Insider - magazine in Japanese
Game Programming
FlipCode - GREAT! Game
development resources, knowledge. amazingly it's back after all these years!
Code Fortress - game programming tutorials (octree collision detection, motion blur)
Whiteblobs - game tech links
Stephan's GameDev Research, BSP and CSG tutorial.
Blackpawn Tutorials - cellular texture, metaball normals, PQ torus, lightmap packing.
Steel's Programming Resources- 3D programming intro.
Advanced
Character Physics - at GDC 2001. Verlet integration
multitexturing - using D3D, darkmapping and lightmapping
Charles Bloom - 3D tech documents
MSDN downloads - Direct X SDK, etc.
Winsock 2 API functions
Articles at Gamedev.net - really cool game programming tutorials.
Demoscene
Hugi diskmag - at one time, the
most popular demoscene diskmag. Get the coding articles!
PAiN - another cool demoscene diskmag
.
Scene
archive - interesting doc of the scene.
Scene Zine -
Issue 10
pouet.net - demo search engine
Demoscene News and other information.
RabidHamster - R2 winamp vis plugins
Valacar's
Programming Page- great demo programming info and links.
MODDOC - various Amiga module formats
FMOD, BASS Sound System - music playback libraries for Windows and Linux
VGA programming
Programmer's Lair - DOS hardware programming reference
Compression Algorithms tutorials by Arturo Campos.
Charles Bloom Compression
Source
Fun graphics links
Computational Geometry
Non-photorealistic Rendering - simulating how humans paint.
Non-photorealistic Animation and Rendering papers
Cel Shading - tutorial for cartoon rendering
Code - and graphics tutorials by Pierre Terdiman
EFG's Graphics - Links, Image processing links
Links - to AI, image processing, philosophy
Deep Learning
fast.ai - deep learning for programmers and scientists
Image Processing
Poisson Image Editing - for image inpainting (filling holes in images).
Segmentation - using active contour model (geodesic active contour) on distance transform of binarized black and white image. Realtime javascript demo at the end.
Reproducible Research - code for image processing, video codecs, etc.
University Research and courseware
OpenCourseWare - free online college education at MIT.
Stanford Engineering Everywhere - free CS and robotics classes
BIBS -
Berkeley Internet Broadcasting System (selected EECS lectures in RealVideo
format, dead link)
Academic Earth - online university video lectures
Coursera
Udacity
Kadenze
Stanford Encyclopedia of Philosophy
UC Berkeley Webcast - over 35 UCB courses available for free on video
EECS Course Notes - at UC Berkeley
University Video Collections - free lectures at Georgetown, Princeton, etc.
Continuous Collision Detection -
and other research by Stephane Redon
Graphics Research - at MIT
GRAIL - graphics research at University of Washington
Technical Reports - on computer graphics at Cornell.
IBR Publications at University of North Carolina (UNC).
Arxiv - electronic research paper
archive at Cornell.
New Kind of Science
- by Stephen Wolfram
E. W.
Dijkstra archive - computer science papers
DARPA research
Corporate research
Microsoft
Facebook
Google
Microsoft joint research
ACM TOG - transactions on computer graphics software
Baidu research
Tencent AI Lab
Sony Research
Visiting speakers
Microsoft
Google tech talks
TED
Xerox PARC Forum
Wavelet
Wavelet Lifting Scheme - nice introductory text for comp. sci. people
Wavelet CG Course - at Siggraph 96
wavelet course -
multiscale methods and applications tutorial
CG Notes - wavelets, spline surfaces, and stuff
Discrete Wavelet Transform - tutorial (programmer-oriented).
Wavelet Tutorial
Amara's Wavelet Page
wavelet tutorial
Wavelet cascade applet
DDJ Wavelet Link Page
Peroxide - Win32 graphics coding intro
QB FAQs 1,
2
QB Tuts 1,
2, 3,
QB 2D/3D Engines Xeno 3d
Dash
PB3D
Quixoft - democoding info, 3d graphics tutorial links
Ribbonsoft - NEW asm
tutorial and VOID game
GameCoding.co.uk - game programming using DX, OpenGL, and Dev-C++ or MSVC.
Game Programming info.
entropy's blog
Bresenham Algo - for drawing lines in graphics modes
VGA Paint 386, IPXfer, PC Speaker WAV player, etc.
UPX - the ultimate executable packer.
WareSoft- great gfx
and layout
YPI BASIC Homepage - OpenAVI,
BMP, OpenICO, etc. updated
3D Engines List - sorted links to tons of graphics engines.
DJGPP game stuff
Sunsite at University of North Carolina- famous UNIX ftp archive.
QBASIC Internals/ASM- excellent page on QBasic-DOS assembly programming
with a section on QBasic internals.
Alex Chalfin's Page
Bells, Whistles and Sound Boards 1.20a, BWSB 1.20b
- (get both) useful SoundBlaster library, Al
Physics
On the Electrodynamics of Moving Bodies - physics paper by Einstein.
Gravitational Lenses
Computer (Network) Security
RISKS - digest
CERT advisories
Peter Gutmann's Page
- including crypto tutorial
ASM Links
Digital Photography short course
QBWavePlayer- and other cool hardware oriented programs by Michael Sorensen, mirror
Linux - for Playstation 2 NEW - purchase now!
DirectX OpenGL wrapper - the easy way to port DirectX apps to non-Windows platforms
Winex - DirectX support for Wine (at sourceforge).
C++ compilers
clang - high performance compiler used at Google and Apple.
Intel C++ - the gold standard.
Microsoft Visual Studio
GCC C Extensions
GCC
C++ Extensions
LCC-Win32 - a retargetable C compiler with source
Open Watcom - first open source commercial C++ compiler
Blitz Basic - a game programming language (defunct)
Programming Perl Ch.18 - by Larry Wall
Sed
by Example - Part I, intro to the commandline unix batch stream
editor
Microsoft
Document Viewers (for Excel, Powerpoint, Visio, etc.)
Open Source Projects - at SGI
Ubuntu Linux
Debian Linux
Redhat Linux
Solaris
10, Redhat Linux
Solaris -
Free Binary License Program
Illumos Project - a fork of OpenSolaris
Illumos Distributions
Sybase - for Linux for
free
Darwin
Sources - source code to parts of the Mac OS X operating system kernel.
Email
Converters Howto
and
software
C++ and STL
Boost C++ Libraries - some of it
will become part of the next C++ standard.
Standard Template Library -
official page at SGI.
STLPort - a good
implementation of STL
STL
tutorial - at Brown University.
STL course
ANSI C standard - actual
C90 text and corrigendums
Mumit's
STL - Newbie Guide
STL book - free source code
C++ Reference - standard C and STL library quick reference, with sample listings
C++ Language Tutorial - by Juan Soulie
Embedded
OO Design Tips - NEW
Intro to C++ - from a C programmer's perspective
Hardware
Electronic Lives Manufacturing -
cool electronics projects (in Japanese).
DIY links
MIDI- MIDI programming
Via KT133a -
Northbridge issue
VIA 686 Southbridge Issue - causing system lockups and data corruption, more info
WebEE - Electrical engineering primers
IVTV [dead] - (Hauppauge WinTV 250
Linux driver) mailing list archives
June,
July,
August,
September,
FAQ
Partition Table Info - by Hale Landis, Partition Types identifiers.
Hardware Programming - at cubic.org.
COM port IO - by Gleb.
Netit Direct 3D tutorials
GameProg.com GameDev.net
LSPPP - packet driver for DOS.
Modem Help - troubleshooting dialup problems under Winxx, Modem info home
Beyond Logic - information on interfacing the PC keyboard, USB, LPT, etc.
USB docs at Intel
ECP - parallel port technical info
Parallel Port - programming in VB
Parallel Port Central- lots LPT applications and FAQs
technical data
interfacing
II.
Parallel Port Programming using BASIC.
Parallel
Port FAQ- comprehensive guide to the parallel port.
Archives of Netscape 4 and other older versions of Netscape Navigator.
Archives -
of Real Player
JPEG block dump source code. NEW!
GIMP- the GNU image manipulation program (Photoshop replacement).
Math
Cool Geometry and useful linear algebra by Paul Bourke
Eric Weisstein's World of Mathematics - finally back up. Nov 7, 2001! This is the best math encyclopedia in the world.
Math stuff
Geometry in Action delaunay triangulation, octree, mst, etc.
Convex hull of
a dynamic set of points
Comp
Graphics Notes at UC Davis
Linear Programming and
good links to LP solvers and linear algebra references.
LEDA combinational computing algorithms
Netlib - LinPack, LaPack, fast math software
Matlab Online Reference
Polar
curves and famous parametric curves shown with Java.
Marching Cubes algorithm - to extract a polygonal isosurface of a scalar field
JS Folder Tree- like Windows Explorer.
Wolf/Doom/Quake
Sources. NEW!
NP Completeness Page
Eugene Meyers -
papers on pattern matching, etc.
Java is not type-safe research paper by an AT&T researcher
Sharle Source code
- the magical musical instrument from the MIT Brain Opera.
Symantec trialware including Winfax and Visual Cafe
Linus talks about Linux 2.x at USENIX 1999.
Latest 80x86 processor technical info.
Netscape Communicator source code.
Oracle
8 reference
CGI Made Easy- learn it in an hour!
Research at Microsoft.
VRML and Java specifications and example code.
NT FAQ partition info
Color Quantization techniques
Ratlib links to
reusable source code in many languages
PC Tech - a column in PC Magazine
Visual
C++ 6.0 Updates - including the processor pack and SP6
Magazines
Plus Magazine - online
mathematics magazine
Technology Review e-magazine
I, Cringely Archive -
ideas and opinions on the electronics and computer industry
Make - magazine
for homebrew projects
Mac Programming
100 Days of SwiftUI - good for beginners
Mac Carbon Programming Wiki
Learn Cocoa tutorials
MacResearch.org scientific computing on Mac
Cygwin and gcc toolchain
Cygwin - awesome
UNIX emulator for Windows, download the install
utility now.
GNU Win32 C++ and Fortran compiler port for cygwin,
NT Emacs
gcc-2.95,
GNU
Win32 related sites
Pthreads-Win32 -
POSIX multithreading library for Windows applications
GNU software via FTP,software list
Sshd
SSH NT Links, installing
ssh
Parallel Programming
GCD Reference - grand central dispatch lets the OS manage the number of threads, and offers faster synchronization primitives.
Lock-Free Data Sharing at Dr. Dobb's Journal.
Fast x86 barriers - used in SPIRAL and Intel IPP.
Lock-free data structures with hazard pointers at DDJ.
Multithreaded
Programming Guide - has a producer consumer solution using pthreads
Parallel In-Place Radix Sort at DDJ.
Parallel
Search - going superlinear
False Sharing can kill multithread performance
Pthread
Usage Examples
Pthreads
Programming Book
POSIX Threads
Programming Tutorial - at LLNL
MPI
standard for parallel code,
MPICH
MPI
over ActiveMessage, book.
WMPI - unofficial binaries fom the portugese project
MPI forum - MPI documents
WMPI - commercial software demo
MPI-CH - performance
Condition Variables - implemented in Win32. Also talks about Win32 synchronization primitives
C++ Synchronization - primitives implemented in Win32 and Solaris
POSIX threads-Win32
CORBA
Server side web server code
Node.js - Server side Javascript library for highly scalable web services.
Operating Systems Development
Nachos - operating system for learning about OS coding.
Linux 2.4 -
kernel internals
HOWTO -
for Linux kernel compilation
OpenSolaris - Solaris source
code
Windows
Driver Development Kit - order the DDK
Operating System resource center
XFS
- file system's technical description
Books - about Linux
kernel programming
Linux -
2.5 kernel changes
The Art of
UNIX programming - book
Upgrading
- to Linux kernel 2.6
RISKS and computer security
Feynman's Appendix to the Rogers Commission Report on the Space Shuttle Challenger
Accident -
blog where I saw this
link.
NASA Toyota Study on sudden acceleration
Experimental Security Analysis of a Modern Automobile - vulnerabilities in the car area network.
RISKS digest
CVE - computer security flaws
Full Disclosure - mailing list
1201 and 1202 - program alarms during Apollo 11
History
Homebrew Computer Club
Ada Lovelace - the world's first computer programmer
Atanasoff-Berry Computer (ABC) - first electronic computer
First Personal Computer
C and C++ Tutorials
C++ Draft Standard
C++ Working Paper
C++/MFC programming for Windows
Top Ten C Bugs or ways
to get screwed.
Find the Bug: A Book of Incorrect Programs - learn ways to read code, understand it, and improve code. Written by Microsoft programmer Adam Barr.
C Programming Language Answers - to questions in the book by K&R
Incompatibilities between ISO C and C++.
N843 - ISO C89 FCD text
C++ Pitfalls
Top 20 C++
Tips
Contests
Intel Game Demo Contest 2008
Summer of Express -
programming contest sponsored by Microsoft
List of programming contests - at grokcode
Tree Drawing Program Contest - goal is to make a program in
pure Qbasic that calculates a tree (contest ends May 1, 2003)
ACM Collegiate Programming
Contest
ACM Programming
Contest - 2002
Problems Regional
Problems
The 5K - web design
contest
Internet Problem Solving Contest 2004 -
register before May 20
ICFP 2005 Contest
Google summer of
code
Google CodeJam - programmnig
contest New!
Dream Build
Play - game
programming contest New!
Al Zimmerman's contests - newer ones here (2011).
Apps for Development - organized by the World Bank
8 online programming contests
List of Programming Contests - in Google Directory
Al Zimmerman's contests - archives in rec.math.
The
Cell B.E. Challenge 07 Beyond Gaming
Project Euler - Project Euler is a series of challenging mathematical/computer programming problems that will require more than just mathematical insights to solve. Although mathematics will help you arrive at elegant and efficient methods, the use of a computer and programming skills will be required to solve most problems. It's also a good way to learn a new computer language
Topcoder - contest
sponsored by Sun Microsystems and nVidia, sample problems
TunedIT challenge
Programming Contest - called programmer of the month contest (1993 to 2000)
Programmer of the Month - 2004 to 2006.
Virtual Source - programming contests
Gridwars - sponsored by HP and ClusterWorld.
QB Caliber Contest - 3 categories: vertical shooter game,
arkanoid type game, and graphics demo
RPG Gold 2003 - game programming contest
International Obfuscated C Contest - Don't write code like this
C programming tutorial (for POSIX-based systems), another
course, tips, algorithms, links.
Call graph displayer (useful for
tracing static links)
Windows DLL list - with search engine, Another on
Numerical Recipes in C and Fortran.
Realtime CG Programming
Tom Forsyth's Blog
MJP Matt Pettineo, older posts
Sebastian Aaltonen
FilmicWorlds
Jendrik Ilner
Angelo Pesce - c0de517e notes about state-of-the-art rendering algorithms
Pixel, Too Many... blog - on graphics engine programming by Marco Salvi
Ambient Occlusion Techniques - used in the demo Frameranger
SSAO techniques compared
graphics blog summary from 2008
Particle system optimization
Simon Brown's blog - info on CUDA random number generators, global illumination, etc.
t-pot PROGRAMMING
- NEW DirectX vertex shader, raytracing, etc.
Zanir's - OpenGL and
DX 8.1 3D graphics projects
ogl-sample - SGI OpenGL sample
implementation NEW!
nVidia developer
page - with tutorials and tools
Bouncy Stretchy Graphics Page - NEW! a well-done tutorial by a realtime graphics
master Hugo Elias.
Graphics Programming- by Particle in all modern languages
Optimizing Refraction for Raytracing - using table lookup, in software
refractive raytracers
SIMD Packet raytracer - ideas by Jacco Bikker
Realtime Raytracing - tricks by lycium/quixoft
3D clipping, another tutorial
Parody's Demo Coding Page - educational and useful demo coders links!
CFXWeb Articles - tutorials on advanced graphics programming
3D Coding Blackhole - covers matrices, HSR, clipping, and scan conversion.
Tom Hammersley's Graphics Coding Page and Michael Abrash's articles (mirror)
Generalized Texture Mapping - s and o mapping by Watt
Lookat transform and three different ways of making 3D rotation matrices.
Fast Ray Triangle Intersection - using minimum storage.
Jaap's Docs - on beamtrees, octrees, collision detection, and more
Shadow generation algorithms - research papers and links to OpenGL source.
Polygon Rendering - (flat, gourard, phong, envmap, bumpmap) article by Nathan Whitaker.
Perspective Projection - matrices
Fast Affine Texture Mapping - well-written article with plenty of source code and diagrams.
Subdivision Tutorial - with interactive java applets
Matrix FAQ - covers quaternions too
DirectX tutorial section including DOS to Windows porting code
Driving DirectX column at MSDN.
Game Programming with Direct X, lots of nice advice
Andre LaMothe's tutorials on voxels, neural nets, compiled sprites, DirectX, etc.
Perspective Texture Mapping tutorial by Chris Hecker
Hin Jang's - GFX page is back
with articles on antialiasing and surface patches
Chris Schlick - publications
Shadow Volumes - using stencil buffers
Render to Texture - using DirectX 7.
Projective Texture Mapping - in OpenGL
Gustafsson's OpenGL page, demos, source code
Sulaco - OpenGL projects
Shadow mapping - by Charles Bloom
HW Shadow Mapping - papers and source code at nVidia
Soft Shadow Texture Calculation - using convolution.
Fast Shadows and Lighting Effects using Texture Mapping - by Segal '92 (.pdf format)
Fundamentals of Texture Mapping and Image Warping - by Paul Heckbert '89
Michael Herf - graphics tricks, code, and ideas.
AltDev blog mirror - on game programming and debugging
technical
hacks - and commodore 64 hacks
Gamasutra Programming Page
Jos Stam - publications (advanced CG stuff)
Mr. McCool's - computer graphics papers (shadow volume)
Romka - OpenGL source code and tutorials
OpenGL - and graphics articles at Delphi3D
Parims - CG algorithms
Octree Space subdivision - for speeding up a heightfield engine
tutorials at flipcode
Lyapunov Exponents Lab Report
Chaikin's Algos for Curves - rendering b-splines using corner-cutting
Per pixel lighting
Steering Behaviors For Autonomous Characters - path following, flocking, more.
SIGGRAPH 97 course notes - on physically based modeling.
Game Developers Conference 2001 - proceedings (papers in MS Word format)
Siggraph 2001 - papers, other siggraph papers
Game Dev Links
B isosurface engine - uses marching cubes and triangles to render 3D metaballs.
Wolfgang Heidrich's web site with papers on global illumination, reflections, LOD, and more
Cornell Box Data - measured light data of the famous radiosity test scene
Intro - to setting up Direct 3D z-buffer, HAL, etc.
Getting Started with Direct3D - using Visual Basic.
Interpolating Subdivision for arbitrary meshes and topology
Raycasting - a complete tutorial for the raycasting technique a la Wolfenstein.
FlipCode - NEW! Game development resources, knowledge.
Graphics Research Papers - archive with search engine
Graphics Gems- by Paul Heckbert. C source code for many CG algorithms.
TrueType Glyph rendering, Freetype
Virtual Terrain Project,
Voronoi Diagrams
Midnight Q and A archives - excellent info on 3D graphics algorithms.
Light maps
Radiosity - best radiosity simulation tutorial by Hugo Elias.
Radiosity Intro,
Other Tutorials at Flipcode
Procedural Textures - ways of synthesizing textures (Perlin noise, Brownian motion, etc)
Nvidia Developer Site - tutorials and source code on hardware-accelerated rendering techniques
Intel Developer Services - contains fast algorithms using Intel processors.
Intel 3D Graphics algorithms and implementations
Intel Games algorithms and fast implementations
Demo Algorithms
Quadratic curves and procedural shape generation and physics engines - explained using nicely interpolated graphs. Steve Witten's talk for Full Frontal 2012
WebGL for demos - talk on pouet.net
Font rendering on GPU
Rendering vector art on the GPU
Ellipse rendering in a pixel shader
GPU Antialiased Circle Drawing with a pixel shader (archive.org)
Inigo's awesome democoding articles
Altdevblogaday mirror - at jahej.com
Rendering Worlds with Two Triangles with raytracing on the GPU in 4KB
Universal Design Pattern - using prototypes or properties
Straight Radix Sort - a fast but specialized sorting algorithm. Requires a temporary buffer for storing the histogram and permutation array
Smoothsort - an adaptive in-place comparison sort. invented by Dijkstra based on Leonard heaps, and explained by Keith Schwarz
Smoothsort vs. Timsort - smoothsort is slower than timsort
Radix Exchange Sort - in-place sorting algorithm that sorts in a constant number of passes by swapping elements based on checking the key one bit at a time.
Archive of interesting code - implementations of many algorithms and data structures in C++.
Iterate and Delete - in one pass by chaos
ryg homepage and blog and twitter
GPGPU radix sort
CUB - derived from back40, GPU sort
SOL::Tutorials
Data Structures slides and demo applets
Cubic team's demo coding info.
Chris Dragan's blog - NEW!! interesting thoughts on multithreading in scripting languages, C++, interviewing, etc.
Midpoint Algorithm for drawing lines, circles, and perspective t-mapping
Ice-Digga's ASM Tutorial collection
CFXWeb - demo coding site
Pouet.net - demo executable download
scene.org - demo code download
Hornet's Demo Page - Intro to oldskool demoscene
Modern Demoscene and its creations.
Demo FX tutorial and src.
C++
C/C++ Snippets source code archive
Snippets home page (where you can download the whole collection of portable C/C++ code
C++ Tutorial List
C++ Annotation, Ch 6
Operator Overloading in C++
Member function pointers for C++, for C.
Function Pointer - tutorial
site NEW
C++ structs - nitty gritty details
How C works - part of
the series How Stuff Works
Pascal
SWAG - Pascal Source Code Archives. THE answer to your "How do I... in Pascal?" questions.
Turbo Pascal Programmer's Page- the biggest and best pages for Turbo Pascal source code.
3D modeling
Terragen - a cool high
quality virtual landscape generator. gallery
Blender - free, GPLed powerful 3D modeling tool.news
Rhino3D - NURBS modeler
Milkshape
3D - low polygon count 3D modeler
Gmax - another modeling tool
from Discreet
Wings 3D - simple 3D polygon modeller, tutorial
Maya
- learning edition download for free!
Clayworks 3D - 3D modeller
Bryce Tutorials
John Caponigro - master class in digital art
SoftImage XSI - for free
Realistic Lighting - Global Illumination and Final Gathering
Cool Visual Hacks in Java
comp.lang.java.programmer FAQ- very comprehensive!
Winsock FAQ- NEW! HTTP Made Easy
BSP FAQ at SGI
comp.graphics.algorithms FAQ
FAQSYS 2 - the most complete archive of indexed demo and graphics programming tutorials.
Graphics Programming Black Book - online version of the classic, by Michael Abrash
Programmer's Heaven - a very well-organized, complete programmming archive.
Programmer's Oasis- has some tutorials.
Fluid Studios - publications
Spyko's Demo Coding Site - Demo Coding secion is the best section (kinda like x2ftp with index)
Dr. Dobb's
Programmer's Vault- the best collection of programming tutorials (outdated).
MAGIC - collection of computer graphics algorithms cleanly implemented in C++
3DICA- 3D Programming Tutorial (phong, HSR, quantising)
3D coding - tutorial links
Volumetric rendering - using simple alpha-blended texturemapping
Computer Architecture
HOT CHIPS - archives of presentations
OpenSPARC T1 - from Sun Microsystems
RaPiD - coarse grained adaptable architectures for embedded systems platforms
RAMP - project at Berkeley (check back later)
PS2 Dev
VIA Isaiah Processor
MIT H.264 Baseline Profile Decoder - open source hardware design
Architecture
DSP
SPIRAL Project - automatic optimized
DSP code generation
ASCOT
Publications - on dsp optimization, automatic vectorization
DSP Theory
128kbps
multiformat audio codec listening test - results: tuned Vorbis
wins!
audio codec - quality listening test
Audio codec comparison - MP3 vs. VQF vs. WMA
MP3 Listening Test - 2008
Old AAC
Listening Test results
LAME
- MP3 encoder source code.
PICOLA - audio time stretching algorithm
Gogo no coda - SSE-optimized mp3 encoder based on LAME
Digital Audio - research papers on mp3, and AAC encoders.
MP3 Tech - technical info on .mp3, .aac, .vqf
MP3 - good links to reference material for developing an mp3 codec.
DSP Tutorial at Bores- basics of DSPs.
Recording
Cher's Believe - how they lied that they used vocoders when it was autotune
audio
correction
Digital Waveguide
Modeling of Musical Instruments - online book
Digital
Sound Synthesis - and related stuff by Julius Orion Smith III
AES implementation - survey (AES replaces DES crypto)
Introduction
to AC-3 - surround sound coding (requires account)
DSP Dimension - Must-read introductory DSP introduction.
MusicDSP - audio signal procesing source code and tutorials
DSPGuru - tutorials
DSP Guide - a good book in PDF format
Fast
sinusoid - generators
DSP VLSI - data structures, algos, MMX
Data compression - pictures and text about of how GIF, JPEG, and MPEG compression works.
FFT Demystified - explaining the various algorithms
FFT Explanation - by Bartosz Milewski
Best intro to MPEG algorithms
Computer-Human Interface
Video Browsing - by direct manipulation by the Visual Analytics Group at INRIA, video and article
Dynamic Graphics Project - at the University of Toronto
Homebrew Minority Report - style UI
GP GPU
GPGPU.ORG
Modern GPU - great explanation of prefix scan and other GPPGU primitives using CUDA
Michael Garland - GPGPU
algorithms (implemented in CUDA)
OpenCL registry - specification to be implemented in MacOS X SnowLeopard.
AMD Stream SDK
nVidia CUDA
nVidia
research publications
CUDA background subtraction using Gaussian Mixture Model
Collision Stream GPU based collision detection for deformable models
Video Coding
H.263 Video Encoder - MMX performance compared to scalar instructions.
ITU
BT.601, BT.656, BT.709, and BT.1543 standards - for broadcast digital
video (HDTV colorspace, etc.)
H.264 video coding standard,
reference code
ATI Avivo Video Converter - 6x realtime H.264 transcode
x264 sources
x264 development blog
FFMPEG git repository libav.org
ffmpeg-devel archives
X264 Developers
List - post your H.264 encoder questions here,
2005 archives
MBAFF Temporal Direct Mode diagram when direct_8x8_inference_flag is set.
B-frames in AVI - NULL frames, packed B frames 11/30.
x264 vs. JM RD performance graphs, meaning of command line options.
x264 threading on 7/21 entry, deblocking filter info.
Open GOP vs. closed GOP
RD Theory with diagram, Part 2 on 9/29.
Motion estimation algorithms
Videolan mailing lists
Sliceless threading - for H.264 encode
W6RZ - YCbCr 709, 601 color bars and other test patterns
Alliance For Open Media AV1 Codec
H.265 standard - same as HEVC or ISO 23008-2 or MPEG-H Part 2.
H.264 standard - same as ISO MPEG-4 Part 10.
H.263 standard - related to MPEG-4 Part 2
H.262 standard - same as MPEG-2
H.261 standard - same as ISO MPEG-1.
WebM VP9 - used by YouTube for 4K content?
JPEG 2000 - description and links to source code
ENST - MPEG-4 systems test streams
MPEG-4 - software video codec comparison (April 2003)
MPEG-4 overview and software codec comparison (June
2001)
Video Codec Shootout - March 2004
MPEG 4 - Codecs
compared (requires registration) June 2002 DV Mag.
XviD-developer's archives - mpeg-4 encoder improvement ideas
FFMPEG mailing list archives
Mp4-tech archives - mpeg-4 technical notes archives
MPEG-4 video - latest reference software
MPEG 4 Structured Audio - book and tools, links
SAOL - Reference
Schedule - for MPEG-4 standards
MPEG-4 Licensing - Terms by MPEG-LA
WEMP 2002 - Tutorials download
MPEG-4 - interoperability at Real
MPEG-4 Audio - introduction
MPEG Audio - links, conformance streams, etc.
Audio codec - comparisons at 64kbps
64kbps Listening Test - showing no audio codec at 64kbps can claim 128kbps mp3 quality
Standards for Multimedia Streaming - communication over Wireless Networks
MPEG 4 audio - standard (committee draft), more, software.
MPEG 4 player source code at ISO (no binaries).
Envivio TV - MPEG 4 player plugin for Quicktime and Real. Supports BIFS, object coding and interactivity.
Mpegable - advanced simple profile .mp4 player
AMD Performance Library
(Framewave) -
contains H.264
decoder functions
Quicktime - format developer's tutorial
fourcc - definite reference on FOURCCs found in video files.
MPEG-1 video player in Java
UCB MPEG,
video soft
audiocoding.com - AAC stuff
ffmpeg - collection of video codecs used in mplayer
libmpeg2 - MPEG-2 video encoder
faac - MPEG-4 AAC audio codec.
mpeg4ip - MPEG-4 systems implementation
VirtualDub - video capture and editing for Win32
Xvid - GPL educational MPEG-4 visual
ASP encoder.
ffdshow-tryout - directshow multi-standard video decoder filter.
x264 - open source H.264 High Profile encoder.
ARIB Standards - Japanese technical standards ARIB B25 v6.5 and other broadcast standards.
Performance optimization
Rico Mariani, older articles at Microsoft - strategy for performance optimization.
Bryan Cantrill - dtrace performance analysis blog
Adam Leventhal's Blog - with interesting dtrace tricks
Brendan Gregg's Blog - with info on actual performance wins made using dtrace and analysis
ACM
Queue articles on performance
Data Oriented Design and C++ - data structures for efficiently using of your computer's memory cache and cache lines (use flat, contiguous array-like structures for hot data when possible)
Performance advice from Rico Mariani - Use batch APIs, avoid data structures that are forests of pointers, cache with policy for aging
Thinking Clearly about Performance - variance in latency, cost-benefit
analysis, the knee in the performance curve, importance of
good monitoring code and performance testing.
Cary Millsap - hard-won advice on performance tuning
Multicore Software Design Rules
Cell Programming
- recipes
Atomic Cache Unit - on PS3
vImage reference
vDSP reference
OpenCV reference
Cache optimizations
Data oriented design - increase cache hits by splitting hot data from cold data, and packing hot data tightly, don't branch in inner loop or do redundant work.
Cache sensitive - programming for x86.
Cache oblivious data structures - that perform well on modern memory architectures with caches
Learning redis part 3
Taming the Jaguar - console CPU optimization
Intermediate SIMD optimization - how to solve the compaction problem (aka left packing problem) using x86 PSHUFB (vector shuffle/permute instruction)
Optimizing the graphics pipeline with compute on GPU - including the compaction problem with the ballot instruction and prefix sum
Assembly level optimizations
Intel Software Developer Manuals
SSE 4 Optimization
Intel ISA A-M,
N-Z,
Optimization,
IA64 Memory Ordering,
Basic Arch
AMD SSE2+ Instructions with nice diagrams of shuffles (unpacks),
MMX and 3DNow!
Paul Hsieh's Pentium optimizations page
Asm Gems- fast math using x86 CPU tricks, tiny demos, etc.
Intel
AppNotes - on MMX and SSE DSP examples
ASM Community Wiki
book - interesting chapter on string processing
Daniel Lemire - SSE parser and string processing expert
Mac
sound synthesizer optimization
Assembly Language for Linux
Assembly Programming Journal (APJ) - Online assembly coding magazine 1998-2001.
Insanely Low-Level
- blog by the author of the diStorm x86 disassembler
APJ
2007
ASM Sources- links page
Protected Mode - description
Intel x86 Optimization - guide by Agner Fog
Intel Processor - limitations and optimization techniques
SIMD and SSE instructions - applied to video codecs
App Tuning for Intel SIMD Extensions - history, using structures of arrays.
Randall Hyde's Art of Assembly Language Programming - for learning x86 asm from the ground up.
Intel - microprocessor errata and
workarounds
x86 - assembler code for fast memcopies
AMD Developer Connection - some utilities for profiling and tutorials on optimization
Extensions to the x86 architecture - history of MMX, EMMX, SSE, 3DNow, along with manuals.
x86 assembly language
x64 asm programming
c++, asm and math blog
Advanced asm optimizations 40 - for x86 architecture (Japanese),
41,
42,
43,
44,
45
Fred Akalin - Notes on math, tech, and everything in between.
Articles on computer science and optimization at locklessinc.com
SSE2 optimizations - for numerical analysis
SSE - Apple documentation of differences between Altivec and SSE.
3dNow - docs in Japanese
Optimizing MMX
Asm Gems- fast math using x86 CPU tricks, tiny demos, etc.
HLA compiler and other resources
PowerPC
Assembly Tutorial
Assembly
Language for Power Architecture
PowerPC Compiler Writer's Guide
Altivec
PIM - includes vec_mradds
Hacker's Delight - clever bit twiddling code
General References
Architecture of Open Source Applications
TinEye - reverse image search
PicSearch - image search
Google Translate - translate lots of languages
Babelfish - translation software
English - Japanese translation at goo
Wotsit's File formats.
PC Webopaedia - search for quality info on anything on computers.
Ziff Davis net - check out their computer magazines
Win32 Programming Tutorials
NT Perl programming
MVPS Win32 samples
Behind the Code - interviews of great MS engineers
Tools
Doxygen - source code documentation system for C, C++, Java, and more
Stripe - tool for converting polygon data into triangle strips
WinCVS - version control system for Windows
SDL - Simple DirectMedia Layer, a cross platform multimedia library.
VNC - remote graphical
terminal access program
Graphviz a
graph visualisation package by North et. al.
System Internals - get
Filemon and Regmon.
OpenGL API
OpenGL articles - at excamera.com
Render to
Texture - for radial blur using OpenGL
OpenGL Optimizer Programmer's Guide
OpenGL Frustum Culling
- for faster framerates
OpenGL Graphics programming - with physics (Japanese)
GLUT 3.7.6 for
Win32 - toolkit for doing platform-independent control and windowing
for OpenGL.
OpenGL
- window and pixel format setup in Win32.
Working
Samples,GameDev FAQ
Setup in VC++ 5, setup in VC++ 6, troubleshooting,
template code, tips
, GLUT DLLs
Game Tutorials - at game tutorials.com
Free Books - on software engineering.
OpenGL official site
Nehe at gamedev useful beginners tutorials for OpenGL
Seuma's Prog Page at Longbow Digital Arts (final page).
OpenGL
introduction at Tulane University - talks about MESA, OpenGL
commands, etc.
Artificial Intelligence
Genetic Programming - in C++ implementation issues
Generation 5 - artificial intelligence programming.
AI Depot - tutorials on AI
algorithms
Herself's Artificial Intelligence
Game AI Page- has neat
links on artificial intelligence.
AI Horizon
Links
Neural
Network Java demos
Java
Java Data Structures
Java 1.2
Unleashed
Java sound
APIs
Threads Mutexes in Java
Java in a Nutshell v2 example source code, v1,QRef,other src.
Java Threads tutorial at JavaOne. (excellent)
Core Java source code (password protected).
Thread safe classes with examples
John Hopkins University Java Resources List
Core Java Source code and sample chapter on graphics.
winsock2 download
WinXP Setup - boot disk for people with non-bootable CD-ROM drives
WinXP
Setup Disk
soda constructor Spring-based interactive robot modeler (very cool!)
Interactive Fourier Synthesis - see how to mix tones to get different waveforms
JAVA Lirc
Voxel
WAV player
Just Java Software
audio classes,
Tips
Tools
Applet Reviews
Howto
Anfy's incredible Java applet demos. See Anfy3d!
JZoo good applets for web pages
Java graphing calc, search
engine
Java
Data Structures
Parallelizer for Java bytecode
TowerJ optimizing native Java compiler
Kaffe - cleanroom JVM implementation
MS Java SDK - a fast JVM.
TOBA Java to C translator (even does AWT!)
Mars filter in QB, DOSEMU, etc.
JIKES fast Java compiler
Java and Javascript - by Real Gagnon. The best online tutorial and source code reference for Java, indexed version.
Signing Applets - how to break out of the applet sandbox
Thinking in Java Java book by Bruce Eckel
Java Tutorial, mirror by Richard Baldwin.
Java Coffee Break - looks like another Java book
Q&A Forum for lots of programming languages
Java course at UNC.
Miscellaneous
Synthetic
Life - article at Scientific American
Digital
Photography Composition Tips
NOMAD
- open source internet speech streaming tool
Image Processing Guide and demos. matrix ops color FAQ
GRAFICA Obscura cool artistic graphics stuff
AOL CD Recycling - make personal Christmas gifts using recycled CDs
DHTML Zone
Cross-browser
Paul Bourke's 3D graphics/math page
Have Your
Say - discussion and debate on current events by BBC listeners.
Planet
Under Pressure - environmental damage and what it means to us
Text
Translator - for many languages
Daylight
Savings - history
Theoretical
Neuroscience - lectures
Multimedia Coding
Diaries - in Japanese.
Google Android Project
source.
Miscellaneous
Useful programmer traits - 1) feels what needs to be done to get the solution, in the big picture, 2) can cut features, etc. 3) freaking fast coder 4) figures out any complex problem real fast 5) can keep a ton of context in his/her head 6) not satisfied with the status quo 7) does boring work to get others more productive
Engineer Anti-Patterns - the thinker, the talker, the entitled, the owner, the recluse
Movie Industry
2008
ACE Equipment Survey -
full results
James
Cameron on 3D film making