Hardware Abstraction Layer: Un’interfaccia software che permette di scrivere applicazioni che usino funzioni hardware senza conoscerne in dettaglio la natura o le caratteristiche. In tal modo la stessa applicazione puo’ essere utilizzata su personal computer configurati in modo differente. Nel mondo delle applicazioni 3D, rappresenta l’interfaccia tra l’applicazione e il particolare hardware usato sul quel computer per generare le immagini tridimensionali.
Quella particolare porzione di API che, in ambiente Windows, si colloca tra il nucleo del sistema operativo e l’hardware vero e proprio e che rappresenta le funzioni di quel particolare hardware in modo che l’API le riconosca e le utilizzi in modo sempre uguale, anche quando l’hardware viene modificato. Nel caso dell’API Direct3D di Microsoft, realizzata per i giochi con effetti tridimensionali, l’Hal rappresenta un acceleratore 3D virtuale che contiene tutte le funzioni di accelerazione fornite da una particolare scheda video o dalla scheda madre, nel caso in cui queste funzioni sia integrate