CompuPhase projectinformatie

Spring naar de hoofdtekst (navigatiemenu's overslaan)






Programmatuur

 

Maatwerksoftware

CompuPhase ontwikkelt software naar specificaties van de klant. Dit kunnen applicaties voor op een PC zijn, of embedded systemen.

Voor wat betreft applicatie-ontwikkeling op PC's, onderscheidt CompuPhase zich vooral door een diepgaande expertise in systeemprogrammering onder Microsoft Windows (alle versies), Microsoft DOS of Linux. Daarnaast hebben wij een uitgebreide ervaring met grafische en multimediale technieken en gedetailleerde kennis van netwerkprotocollen.

Naast software voor PC's schrijven wij ook besturingscode voor elektronische apparatuur en meetsystemen. Deze “embedded software” vloeit veelal voort uit projecten waarbij wij ook de elektronica ontwikkelen, maar ook kunnen wij software schrijven voor embedded systems van andere partijen. Real-Time kernels en low-level communicatie-protocollen hebben geen geheimen voor ons.

Regelmatig vatten we de resultaten van intern onderzoek en ervaringen die we in projecten opdoen samen in technische rapporten of documenten. Enkele van die documenten hebben algemene waarde en zijn op deze homepage beschikbaar (de meeste van deze documenten zijn Engelstalig).

Wij ontwikkelden onder meer:

 

Programmaontwikkeling

U treft bij ons expertise aan voor programmering in Visual Basic, Delphi, C/C++ en Assembler language onder DOS, Windows (alle versies) en Linux, en zowel voor Intel processors als voor de ARM architectuur. Met een ontwikkelopdracht aan CompuPhase kunt u spoedig beschikken over effectieve, snelle en betrouwbare programma's. Die we bovendien voorzien van een degelijke en handige documentatie. Het desgewenst meeleveren van de broncode vormt voor ons geen probleem (exclusief broncode van modules van derde partijen).

Wel vraagt een degelijk programma om een goed voortraject: een grondige probleem- en systeemanalyse, een uitgewerkte synopsis, “prototyping” e.d. Wij denken (en werken) hier graag met u mee.

 

Programmatuur: software tools

Een programmeur gebruikt hulpmiddelen, van compilers tot tekstverwerkers. CompuPhase ontwikkelt ook (specifieke) hulpmiddelen, zowel zelfstandig als in samenwerking met anderen. De door CompuPhase ontwikkelde hulpmiddelen zijn zeer divers in gebruik en opzet; vaak zijn ze alleen van toepassing binnen één project of sluiten ze aan bij de ontwikkelmethodiek die CompuPhase hanteert.

Niet alle tools die CompuPhase ontwikkelt blijven intern. Enkele van onze programmabibliotheken zijn commercieel verkrijgbaar (zie "Software"). Wij nodigen u uit deze tools te evalueren; we vertrouwen er op dat u onder de indruk zult zijn van de kwaliteit.

 

Visualisatie en animatie

Met enige regelmaat zijn computer-animaties te zien in films, TV-producties en computerprogramma's (spellen en multimedia-producties). Werknemers van Walt Disney Studio's vatten de kunst en ambacht van het maken van animaties samen als het creëren van "de illusie van leven". Platte getekende figuren tot leven brengen vergt dat je in deze figuren gewicht en balans moet verbeelden, kracht en souplesse, actie en reactie. Het vergt ook dat je de "kijker" laat vergeten dat hij of zij naar een sequentie van tekeningen zit te kijken; het tot leven wekken van de animatie is zowel een zaak van geloofwaardige bewegingen, conform de natuurkundige wetten, als een goochel-act om de aandacht afwisselend te trekken en weg te leiden van specifieke aandachtspunten (ogen, gezicht, handen).

De meest waardevolle middelen voor het maken van animaties, zijn kennis en ervaring. Tekenen is een kunst; de bewegingsleer en de fysica die daarbij komt kijken is een wetenschap. Animatie is beschreven als een "exacte kunst", een mix van artisticiteit en de natuurkundige grondbeginselen van zwaartekracht en massatraagheid. Beide facetten zijn onmisbaar om, op een overtuigende wijze, "leven" in een schets te brengen.


Bij het draaien van een hoofd is het mooier om de ogen langs een boog te laten bewegen

Animatie is meer dan een truukje in een grafische editor. Helaas zien we vooral in computerspellen en multimedia-producties animaties die met een paar eenvoudige muiskliks in beweging zijn gezet. Het resultaat is er dan naar: de karakters zijn star, de bewegingen hoekig, de figuren lijken massa-loos... de illusie van leven is doorbroken. Dit is geen probleem van 2-D dat we oplossen door over te stappen op 3-D, maar eerder een kwestie van gewicht, momentum en bewegingsleer. Uiteraard vergt een goede animatie een grotere inspanning dan een simpele opeenvolging van standen of posities: meer tekenwerk is nodig en vooral een gedegen vooranalyse en een gedetailleerde planning. Met analyse en planning bedoelen we bijna "regisseren" en "choreografie": de positie en houding van elke animob ("animated object") ligt bijna per beeldje vast in de planning. —Hulpmiddelen voor de vooranalyze en de planning zijn "storyboards" en "exposure sheets" (ook wel "dope sheets" genoemd).

In spellen en in interactieve programma's moet een animob reageren op de acties van de gebruiker. Vooral hier is het belangrijk om, voor het bepalen van de volgende beweging, de historie van de vorige posities en bewegingen mee te nemen. In plaats van een complete "film" van enkele minuten, bouwen we nu een animatie op van korte segmenten die naadloos op elkaar aansluiten, gestuurd door een "script" dat de segmenten zó aan elkaar rijgt dat de beweging vloeiend en waarheidsgetrouw is. Dit script wordt vervolgens aangestuurd door de interactie tussen de gebruiker/speler en het programma (spel). Waar de plaatjes het uiterlijk van een geanimeerde acteur uitbeelden, geeft het script een indruk van diens fysieke eigenschappen. Synchronisatie en timing van de animaties op de externe en interne "gebeurtenissen" ("events") zijn een belangrijk punt van aandacht.

De volgende stap in computeranimatie is "kunstmatig leven": en brei van kunstmatige intelligentie, geprogrammeerd "karakter" van elke animob, leer-historie, gemoedsgesteldheid en toeval. Deze nieuwe technieken zijn intussen een "hot item" in de computerspellen-industrie.

CompuPhase heeft op het gebied van visualisatie en animatie veel ervaring opgebouwd. Een plaatje op het scherm zetten is tegenwoordig geen enkel probleem meer, maar denk echter ook aan:

Waar het gaat om het uiterste uit de machine te halen, bijvoorbeeld om tientallen animaties tegelijkertijd te tonen, specialiseren we ons in een gedegen kennis van algoritmes en gebruiken we hand-geoptimaliseerde Assembler waar nodig. Als ingenieursbureau, met oog voor detail, gaan wij eigen onderzoek en daadwerkelijke meting aan alle componenten van de software niet uit de weg.

Meer over animatie vindt u op de lijst met tips en resources (Engelstalig). Andere documenten over de technische kanten van visualisatie en animatie zijn de Microsoft Windows Palette Manager en een artikel over het vergelijken van kleurdiepte (beide Engelstalig).